Compare commits
4078 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 713d3412d8 | |||
| f07b387e67 | |||
| 3dfc6cf9c1 | |||
| c42b1f028c | |||
|
|
c58c4634ba | ||
|
|
00128ef5f5 | ||
|
|
0ccdf86a50 | ||
|
|
8659213ab2 | ||
|
|
bcfe397138 | ||
|
|
2ac956341a | ||
|
|
f9ee2bc9e7 | ||
|
|
d8d7f34b11 | ||
|
|
5e3301d021 | ||
|
|
522d1a4f9c | ||
|
|
1a06aa0b30 | ||
|
|
e34bf53933 | ||
|
|
1fd6a90089 | ||
|
|
746653149b | ||
|
|
0d664a406e | ||
|
|
5049d3bd2d | ||
|
|
e95bea06d5 | ||
|
|
10789cf557 | ||
|
|
c02833452e | ||
|
|
79499f0e2e | ||
|
|
63f9c3ec97 | ||
|
|
20210dd3af | ||
|
|
a6d5a50467 | ||
|
|
550bfcacdf | ||
|
|
c71de4f80a | ||
|
|
656a0ddd40 | ||
|
|
eaa5a6f1e3 | ||
|
|
e9d54fc60b | ||
|
|
0396e3bb62 | ||
|
|
eafa30a5f7 | ||
|
|
41274d4020 | ||
|
|
442d7b5fed | ||
|
|
57468cc10a | ||
|
|
4b6355a222 | ||
|
|
adec57490c | ||
|
|
4a021b7ed6 | ||
|
|
38b6eb9523 | ||
|
|
8d05f56064 | ||
|
|
233679ca30 | ||
|
|
bec1074718 | ||
|
|
205460c44c | ||
|
|
bb1d46fc9f | ||
|
|
1aa899f895 | ||
|
|
19d5891fab | ||
|
|
7fa14d3ed2 | ||
|
|
a68cb59770 | ||
|
|
89bc04e740 | ||
|
|
3930ba371d | ||
|
|
d93484867a | ||
|
|
16d7539120 | ||
|
|
b488938ac4 | ||
|
|
76336ec3ca | ||
|
|
5d1a7bc4b5 | ||
|
|
4fd317673d | ||
|
|
2d2b800ef6 | ||
|
|
d08ccc5135 | ||
|
|
0393a837d0 | ||
|
|
b51fba378d | ||
|
|
e74599a50c | ||
|
|
1e5943497e | ||
|
|
64d017517d | ||
|
|
7503c95555 | ||
|
|
583f3de5a1 | ||
|
|
42d265808b | ||
|
|
86004ac483 | ||
|
|
4209a40789 | ||
|
|
db623bef74 | ||
|
|
430a520ad2 | ||
|
|
8f6ee76a01 | ||
|
|
f0ca350b6d | ||
|
|
5b6ecd549f | ||
|
|
2bf8ee180f | ||
|
|
845d9ea4ca | ||
|
|
dfd48aae09 | ||
|
|
2a65edfeeb | ||
|
|
6115efee3c | ||
|
|
1038e20155 | ||
|
|
a896370a31 | ||
|
|
b880ffbe71 | ||
|
|
3adc9289ad | ||
|
|
40e0fa1489 | ||
|
|
d6b97be09f | ||
|
|
72447d92d3 | ||
|
|
ed6a623544 | ||
|
|
2bc31e17b3 | ||
|
|
f9ab61b9f2 | ||
|
|
b13840b2c9 | ||
|
|
815ab27965 | ||
|
|
57a14db97e | ||
|
|
4cae2bf7f9 | ||
|
|
8cdae86edb | ||
|
|
2b63914f22 | ||
|
|
51a61e8ad3 | ||
|
|
490d809d04 | ||
|
|
5d7bf7334b | ||
|
|
ef3a62f69f | ||
|
|
cf700ca621 | ||
|
|
d9e1842ac4 | ||
|
|
19b24c9b36 | ||
|
|
74c59ea855 | ||
|
|
4a8af793ba | ||
|
|
b73576af3c | ||
|
|
533639dfa5 | ||
|
|
45b31ad5c9 | ||
|
|
2a8fba40c9 | ||
|
|
0a6e7b38a2 | ||
|
|
b4cad0ecec | ||
|
|
6c6d7f7319 | ||
|
|
6d4bce84a1 | ||
|
|
eab240e7e0 | ||
|
|
94d8d0aa46 | ||
|
|
ce8783bee8 | ||
|
|
0b6914221e | ||
|
|
4c62b9a62a | ||
|
|
d1f942e315 | ||
|
|
809a86918f | ||
|
|
bb37a9f008 | ||
|
|
201f378335 | ||
|
|
42745107f3 | ||
|
|
b056f3cb60 | ||
|
|
e89a9c5a82 | ||
|
|
431401db4e | ||
|
|
54f51abbf8 | ||
|
|
ea704485be | ||
|
|
a441202e84 | ||
|
|
a8eb0c1938 | ||
|
|
15937b5ea7 | ||
|
|
c8b1ddace1 | ||
|
|
01d9781fdf | ||
|
|
c53adf27c0 | ||
|
|
1f8b33d5a7 | ||
|
|
149142c0f2 | ||
|
|
8337da74c0 | ||
|
|
0652ed6e65 | ||
|
|
b720e271ef | ||
|
|
71deec52ca | ||
|
|
1c5ab11d99 | ||
|
|
f05f336aef | ||
|
|
7414d2208c | ||
|
|
4645f6d4a0 | ||
|
|
0b3ad690a0 | ||
|
|
2b03b1a61f | ||
|
|
e12737ef0d | ||
|
|
f0e868e0f5 | ||
|
|
88869fbbd8 | ||
|
|
6dc37aa7b4 | ||
|
|
0a877d8dad | ||
|
|
70c669e682 | ||
|
|
11b2e2c5b9 | ||
|
|
b1b64f7648 | ||
|
|
8fc279b377 | ||
|
|
80c74516f0 | ||
|
|
b25c11dc2d | ||
|
|
673b3e7aa2 | ||
|
|
e53541c508 | ||
|
|
f7b1ddf92d | ||
|
|
4ff53b23a4 | ||
|
|
acbf309e97 | ||
|
|
21d58a3c77 | ||
|
|
f171eb2568 | ||
|
|
190084db72 | ||
|
|
565a3c10ff | ||
|
|
beee5a473d | ||
|
|
97445709db | ||
|
|
99c1fb6b48 | ||
|
|
920c8004ad | ||
|
|
6ddcba1bb4 | ||
|
|
49c7186be7 | ||
|
|
cce9bc0136 | ||
|
|
256e0acbbe | ||
|
|
6bdb88f7e4 | ||
|
|
474670a277 | ||
|
|
f9e9c9f321 | ||
|
|
7f9d197992 | ||
|
|
7bdf5624c7 | ||
|
|
400a9bfde5 | ||
|
|
abf7ae9f14 | ||
|
|
658be5e907 | ||
|
|
347020933e | ||
|
|
ad39627f6d | ||
|
|
49974b0a9f | ||
|
|
3716c61011 | ||
|
|
b803051f7f | ||
|
|
06b31dcaee | ||
|
|
74ef402640 | ||
|
|
dcdd1c60be | ||
|
|
aa02743a36 | ||
|
|
440d7e2563 | ||
|
|
2ccfa5a220 | ||
|
|
41be045f7e | ||
|
|
73d2fc81e1 | ||
|
|
5bfa4460c6 | ||
|
|
19151a11a6 | ||
|
|
bbad46a8bc | ||
|
|
684b62cd84 | ||
|
|
344b0ae8ec | ||
|
|
3dd87d317f | ||
|
|
eb129c44d6 | ||
|
|
83c11a4db7 | ||
|
|
fe91befa4e | ||
|
|
ada7756a62 | ||
|
|
10e1536450 | ||
|
|
97add7887f | ||
|
|
3cadd2c6db | ||
|
|
f2b731d343 | ||
|
|
ca8dc1224a | ||
|
|
511340475b | ||
|
|
462144010d | ||
|
|
6c38ba296c | ||
|
|
36c4665cb8 | ||
|
|
7a973a11a9 | ||
|
|
64c348033f | ||
|
|
1a586ef33c | ||
|
|
23445200bf | ||
|
|
6f4aa32609 | ||
|
|
af9c57c27e | ||
|
|
fcd68a8fcb | ||
|
|
d0489958e0 | ||
|
|
516e67b43c | ||
|
|
4cfce5945b | ||
|
|
692a87ba9f | ||
|
|
b39d622fb9 | ||
|
|
9107857b45 | ||
|
|
ec954fd152 | ||
|
|
1af5cab681 | ||
|
|
6cf02f43e5 | ||
|
|
d9c2610607 | ||
|
|
6aeeb8f267 | ||
|
|
b342b73167 | ||
|
|
1889c2ca2b | ||
|
|
2d66d756e2 | ||
|
|
e8bead0bf8 | ||
|
|
747a3cb7b3 | ||
|
|
a49d296d7e | ||
|
|
5985d62a3f | ||
|
|
f985f761ab | ||
|
|
7a98184863 | ||
|
|
097c84610b | ||
|
|
0b4181e947 | ||
|
|
f12b9cdac3 | ||
|
|
17511e0931 | ||
|
|
cd23d5657f | ||
|
|
5d3f91c372 | ||
|
|
1ad1f4adce | ||
|
|
4dc0537c75 | ||
|
|
8f4a52034c | ||
|
|
5e6ae834f4 | ||
|
|
9150837a6e | ||
|
|
09532152da | ||
|
|
f2364838da | ||
|
|
b4bd054c0e | ||
|
|
23406c690e | ||
|
|
e9ff3b42e4 | ||
|
|
5e5ddde1a7 | ||
|
|
950a15f9e6 | ||
|
|
80d5fdc1bc | ||
|
|
d4db287b14 | ||
|
|
fdbdcfadce | ||
|
|
0e8b4c334d | ||
|
|
193b37060f | ||
|
|
03a9799b4a | ||
|
|
26b69a2b48 | ||
|
|
e6a222dfd8 | ||
|
|
fc4f4c0264 | ||
|
|
950104bb26 | ||
|
|
fcac7b7e4c | ||
|
|
c5aecc3690 | ||
|
|
522c880a78 | ||
|
|
bdb7c35bbc | ||
|
|
a011002b1e | ||
|
|
6033df941a | ||
|
|
bf34ffaacd | ||
|
|
43f37ccf69 | ||
|
|
ed3fd6913e | ||
|
|
d7448e0bcb | ||
|
|
e11d83fb6d | ||
|
|
cd8db3cf13 | ||
|
|
8f27fce0e8 | ||
|
|
367f2ce02e | ||
|
|
4e6e47ebc8 | ||
|
|
a0a72c45b2 | ||
|
|
f257934f4f | ||
|
|
56d791a337 | ||
|
|
07c4d38200 | ||
|
|
3e0ae38a2d | ||
|
|
916e86c754 | ||
|
|
54bc6cb39d | ||
|
|
9490207ad0 | ||
|
|
92a6ed7b45 | ||
|
|
4ecab82af9 | ||
|
|
b4c146aaec | ||
|
|
9b24f1fb2b | ||
|
|
c5bf556e19 | ||
|
|
bf1368d472 | ||
|
|
132f08173d | ||
|
|
8c803d979e | ||
|
|
627ff3df53 | ||
|
|
7866729818 | ||
|
|
f6d44721ae | ||
|
|
868450df40 | ||
|
|
3853d4e04d | ||
|
|
746855e758 | ||
|
|
fa72e9f890 | ||
|
|
776a3db355 | ||
|
|
21b6701ef6 | ||
|
|
7120061c61 | ||
|
|
e2753f5b6c | ||
|
|
4b862defc1 | ||
|
|
36bcd8d5ed | ||
|
|
49a382ddbe | ||
|
|
e67d78b633 | ||
|
|
e9f717d082 | ||
|
|
0dcf2fe6aa | ||
|
|
510fe0f23f | ||
|
|
4af223367d | ||
|
|
32dcaed94b | ||
|
|
96e1253b3f | ||
|
|
f53263737f | ||
|
|
ff6f4d583f | ||
|
|
052fc2d3e6 | ||
|
|
f25b226795 | ||
|
|
bfba3a3fe1 | ||
|
|
adc315400e | ||
|
|
b33bf9e334 | ||
|
|
a8b0a5dc85 | ||
|
|
b1af6fa6eb | ||
|
|
12bf2aaa17 | ||
|
|
e65546481a | ||
|
|
923c03c157 | ||
|
|
f20a2442fc | ||
|
|
ce656e1962 | ||
|
|
1267782ca5 | ||
|
|
2784871efd | ||
|
|
3603a68e44 | ||
|
|
b67bb95874 | ||
|
|
df2de0c2bc | ||
|
|
a554520391 | ||
|
|
fa6dc693d9 | ||
|
|
a235c70747 | ||
|
|
ce6511bd5b | ||
|
|
edb72fc293 | ||
|
|
1ded3c3d33 | ||
|
|
3d67876250 | ||
|
|
0746ef6446 | ||
|
|
a3f7f7070a | ||
|
|
53c5fbe3cf | ||
|
|
4b5a24a039 | ||
|
|
16455f29b6 | ||
|
|
e6599b72e5 | ||
|
|
2b6a87a8b2 | ||
|
|
1f191c4afc | ||
|
|
48e82e2254 | ||
|
|
aa4e682fd9 | ||
|
|
26a72c278f | ||
|
|
ce93847448 | ||
|
|
66ecbd04f3 | ||
|
|
26791c9915 | ||
|
|
2b91988fce | ||
|
|
9baea86b5b | ||
|
|
de46b2a234 | ||
|
|
501cbdf5ea | ||
|
|
708c6965da | ||
|
|
458c1a0ce9 | ||
|
|
309c5d9258 | ||
|
|
541ded2221 | ||
|
|
c1b9d671f7 | ||
|
|
3ce971740c | ||
|
|
76e7b7fec7 | ||
|
|
c0a716b9d8 | ||
|
|
e49f8d975c | ||
|
|
10f784c2c2 | ||
|
|
8d63d9bacb | ||
|
|
98e4ddd9bc | ||
|
|
8bb96399ab | ||
|
|
f85500e7b5 | ||
|
|
e4e360a46d | ||
|
|
b787f7bb51 | ||
|
|
ae270b85e8 | ||
|
|
ec664102db | ||
|
|
325dbfeb27 | ||
|
|
166fcdcf6e | ||
|
|
80a72ce799 | ||
|
|
ef81821bd9 | ||
|
|
304cf1b986 | ||
|
|
4fee0bc55d | ||
|
|
480a5baaab | ||
|
|
3a09335766 | ||
|
|
2e094bb97a | ||
|
|
33fc9b378d | ||
|
|
2930fded74 | ||
|
|
02fbcbc76a | ||
|
|
3b0e6abed5 | ||
|
|
d96760a807 | ||
|
|
cb21799228 | ||
|
|
1b082f0b2b | ||
|
|
2dee584616 | ||
|
|
9d3a64c452 | ||
|
|
dea7467da3 | ||
|
|
da949fd8f2 | ||
|
|
0a86aacfd4 | ||
|
|
75c7eef53b | ||
|
|
18d87bdec4 | ||
|
|
f8b28c5a44 | ||
|
|
fc96dcf562 | ||
|
|
0a35976667 | ||
|
|
ef57577f98 | ||
|
|
f1124d47ed | ||
|
|
a3a44d0500 | ||
|
|
2a00b7cc55 | ||
|
|
b52233e29f | ||
|
|
28c6548b72 | ||
|
|
eb92937c15 | ||
|
|
27a4748779 | ||
|
|
9aa6d516c3 | ||
|
|
865bb65944 | ||
|
|
ff8745aa0e | ||
|
|
86e4fbffb5 | ||
|
|
dd27717321 | ||
|
|
fc37bb97d9 | ||
|
|
28ef968655 | ||
|
|
9aebb8d7da | ||
|
|
09209b75fb | ||
|
|
6be84e0068 | ||
|
|
fb48616f7b | ||
|
|
a51f94cfd2 | ||
|
|
16f0b639f0 | ||
|
|
f0f4bb04cb | ||
|
|
80d55581bd | ||
|
|
dcdaadcc0d | ||
|
|
1a3ebceb9d | ||
|
|
10cceb2511 | ||
|
|
3aac4d9190 | ||
|
|
df95b2927b | ||
|
|
cd87e9a4f5 | ||
|
|
c8e496de97 | ||
|
|
4f4b3b7028 | ||
|
|
b49ff2e052 | ||
|
|
e273b4c859 | ||
|
|
ab732b49f4 | ||
|
|
edd9433395 | ||
|
|
d53d33245c | ||
|
|
5d9e1c6e89 | ||
|
|
deb373ae6b | ||
|
|
79e4055d12 | ||
|
|
0238f529de | ||
|
|
a0ac20b504 | ||
|
|
204b0c6f8d | ||
|
|
d320fe4476 | ||
|
|
7782bd9acd | ||
|
|
80071ed586 | ||
|
|
4ae7b16e41 | ||
|
|
358f150827 | ||
|
|
a46e8b588f | ||
|
|
24f6ca89c0 | ||
|
|
844d9f0bbc | ||
|
|
edd835a04b | ||
|
|
3a98802c0a | ||
|
|
6fd085d046 | ||
|
|
fbda8ff08c | ||
|
|
080ebb71e8 | ||
|
|
70bb37921f | ||
|
|
ed096a3dab | ||
|
|
0b5aa80030 | ||
|
|
91c75cd5f8 | ||
|
|
8e3ea212f9 | ||
|
|
b61f2286db | ||
|
|
88b98b17e1 | ||
|
|
484f8c14f6 | ||
|
|
32f8dfe8ee | ||
|
|
af31566f93 | ||
|
|
0f99327011 | ||
|
|
d5640fd5a1 | ||
|
|
131dab2e94 | ||
|
|
161aca3b5d | ||
|
|
f1b69af284 | ||
|
|
22c6d79106 | ||
|
|
dd3f40b717 | ||
|
|
0afa0949c5 | ||
|
|
40539b10d3 | ||
|
|
5a2bf3dcae | ||
|
|
bc16aac51c | ||
|
|
11e77a658d | ||
|
|
03bbe7e3e8 | ||
|
|
447be2c0fa | ||
|
|
6e6161362b | ||
|
|
a52bfa1810 | ||
|
|
d7e9ca23b8 | ||
|
|
be3e775b01 | ||
|
|
a32780532d | ||
|
|
4f1ccabaff | ||
|
|
4078220ebc | ||
|
|
84fd6f7395 | ||
|
|
0e72c50d33 | ||
|
|
6503d8ecea | ||
|
|
59a572eef3 | ||
|
|
e41fbf3657 | ||
|
|
6d3fb40560 | ||
|
|
1bd3721bcf | ||
|
|
c76d7fa6b4 | ||
|
|
9be2a35c1a | ||
|
|
4c274d2d78 | ||
|
|
8d900a3e3a | ||
|
|
70f67478c5 | ||
|
|
2ff3ebd237 | ||
|
|
5c3da62f19 | ||
|
|
6d029785aa | ||
|
|
dbd15b94fd | ||
|
|
bcf7843e63 | ||
|
|
209f06e28d | ||
|
|
97fd563e77 | ||
|
|
8f74653eef | ||
|
|
748ee5659d | ||
|
|
5c9294ecf4 | ||
|
|
4b67305e06 | ||
|
|
c242ea95f7 | ||
|
|
f0559237e5 | ||
|
|
42a70f7a3f | ||
|
|
3a7053e49d | ||
|
|
5e3bb67e5d | ||
|
|
e4b345de7e | ||
|
|
a3462db646 | ||
|
|
76b071ce32 | ||
|
|
61da51e404 | ||
|
|
4050e9a808 | ||
|
|
d035cd3564 | ||
|
|
8119e86cca | ||
|
|
cfad907472 | ||
|
|
1925098d4e | ||
|
|
a5808785c0 | ||
|
|
f276902199 | ||
|
|
1326e3161c | ||
|
|
3f8f3f8559 | ||
|
|
44caca3d7b | ||
|
|
df692987dc | ||
|
|
47211f1fb2 | ||
|
|
89678ca049 | ||
|
|
0bd0821176 | ||
|
|
36c5d91efa | ||
|
|
c39b90b626 | ||
|
|
9125e51f2e | ||
|
|
fa766d5d86 | ||
|
|
4624ff2cd6 | ||
|
|
a984a1fceb | ||
|
|
9df553a589 | ||
|
|
8ecad5dd19 | ||
|
|
1bf595c9a0 | ||
|
|
f70b32cfd1 | ||
|
|
0304ee3202 | ||
|
|
6b4156c885 | ||
|
|
d4ee76de27 | ||
|
|
a9fd465f2f | ||
|
|
3a273d4e7f | ||
|
|
cc66c1adfe | ||
|
|
6582dcdf8a | ||
|
|
57630f3de8 | ||
|
|
8728b856c3 | ||
|
|
7a8aa08b66 | ||
|
|
fcbd86d47a | ||
|
|
748fbc8b1e | ||
|
|
162820e29e | ||
|
|
ea79e0aa03 | ||
|
|
c6544f9eed | ||
|
|
a58dd5b125 | ||
|
|
f6d8c7660e | ||
|
|
d29699fe44 | ||
|
|
a7bdf5204b | ||
|
|
318143c986 | ||
|
|
35d8bfb569 | ||
|
|
2f47dd3505 | ||
|
|
e61dad78b9 | ||
|
|
21b407e6d2 | ||
|
|
1e0dd854f6 | ||
|
|
afd34a17f6 | ||
|
|
e3d6eba02a | ||
|
|
c859c9a871 | ||
|
|
8661dc853e | ||
|
|
0ecfb0e64f | ||
|
|
a71aa7a263 | ||
|
|
da6c2f1af1 | ||
|
|
3c3887ef13 | ||
|
|
960a47c800 | ||
|
|
d238db710b | ||
|
|
1954da7fd0 | ||
|
|
a1bf34bfee | ||
|
|
a0b0281d0c | ||
|
|
226cb36186 | ||
|
|
cd0d18ecf5 | ||
|
|
8516200159 | ||
|
|
c076ff0fb0 | ||
|
|
afebda57aa | ||
|
|
7eccf662f6 | ||
|
|
ebf5d8b114 | ||
|
|
5a0bbc534b | ||
|
|
b8bf58c50f | ||
|
|
4c4c669a6a | ||
|
|
46a0b45863 | ||
|
|
162c15c456 | ||
|
|
2285b07298 | ||
|
|
f6796b127b | ||
|
|
edb4ff8e7e | ||
|
|
20e8dc4f57 | ||
|
|
2751f1c28c | ||
|
|
481d67d7b6 | ||
|
|
48b8c5f2f3 | ||
|
|
028cc9a459 | ||
|
|
541b0c3557 | ||
|
|
810dccaf24 | ||
|
|
26d0314832 | ||
|
|
8f80bd3ca0 | ||
|
|
f9a99f8320 | ||
|
|
c888c079b3 | ||
|
|
1036ad1bbb | ||
|
|
1dc792933b | ||
|
|
0c0858283c | ||
|
|
0df874d4fa | ||
|
|
d5bcf6e4dc | ||
|
|
3b4b7b5259 | ||
|
|
444ad64bc9 | ||
|
|
5c3272e205 | ||
|
|
f5d2a9a969 | ||
|
|
18885f5565 | ||
|
|
25b52a0ae4 | ||
|
|
6bc6d142b2 | ||
|
|
680d3fad51 | ||
|
|
6dba44f9f7 | ||
|
|
57b73c0a50 | ||
|
|
95a2c28bfc | ||
|
|
a38af64daf | ||
|
|
40697f4e0c | ||
|
|
7af5529267 | ||
|
|
00ca90c4c0 | ||
|
|
e050e642d0 | ||
|
|
22737bfb80 | ||
|
|
139f15c285 | ||
|
|
e9c9ac2eb8 | ||
|
|
a25ae191b0 | ||
|
|
5c404f6e9e | ||
|
|
917795a359 | ||
|
|
5621c900ae | ||
|
|
d7c9f2b2ce | ||
|
|
475b56f177 | ||
|
|
432bd9cc2f | ||
|
|
e8813011c3 | ||
|
|
e2ef4dea2a | ||
|
|
0d10c6d2d9 | ||
|
|
c9e4cb0c25 | ||
|
|
092adb24f3 | ||
|
|
6e415dd37c | ||
|
|
4a55873703 | ||
|
|
a32bebd6b3 | ||
|
|
760dac69db | ||
|
|
76ccf0534a | ||
|
|
2bbb469c14 | ||
|
|
149262525f | ||
|
|
50e480948b | ||
|
|
b2dcac4c80 | ||
|
|
12850581ea | ||
|
|
6ce539b5f5 | ||
|
|
9416950472 | ||
|
|
40eda024a4 | ||
|
|
0a2631946f | ||
|
|
22d3a3e071 | ||
|
|
a3894e4e1f | ||
|
|
f3d4abcba9 | ||
|
|
cba8b21b0e | ||
|
|
83eaad25b3 | ||
|
|
57f0549ddf | ||
|
|
faf49001c3 | ||
|
|
60f8b0d6f5 | ||
|
|
088a182a8b | ||
|
|
41fa5c226a | ||
|
|
af296cecbd | ||
|
|
e1cbe2628b | ||
|
|
17d58df175 | ||
|
|
6cecb47120 | ||
|
|
cfb625d10f | ||
|
|
acb8708ac6 | ||
|
|
b6b702795d | ||
|
|
c1c32c7acf | ||
|
|
83e4baa109 | ||
|
|
2694ed5ce4 | ||
|
|
9dee309f1b | ||
|
|
c73a259bfe | ||
|
|
81a0343f72 | ||
|
|
9b48b60b3e | ||
|
|
3143c56c85 | ||
|
|
8535fe7cdb | ||
|
|
855d900342 | ||
|
|
5a6981e1b3 | ||
|
|
b460651321 | ||
|
|
c2b1fcb1e2 | ||
|
|
9c27e9f5bc | ||
|
|
393e0a0f68 | ||
|
|
3c4e23c67f | ||
|
|
a6e703e3e0 | ||
|
|
8dd0112aa8 | ||
|
|
dfbb52379d | ||
|
|
c7ea7227ab | ||
|
|
54a896f76d | ||
|
|
b3a60ca377 | ||
|
|
4d09123fd7 | ||
|
|
f252b031be | ||
|
|
9a1081608e | ||
|
|
16f9a140b2 | ||
|
|
1064106c30 | ||
|
|
1fe59ab73e | ||
|
|
c9a64232e4 | ||
|
|
12bb757ec2 | ||
|
|
48435e6f4c | ||
|
|
92572baf71 | ||
|
|
22d04c0ea9 | ||
|
|
a123d8b5af | ||
|
|
e597290235 | ||
|
|
7ec1c24c64 | ||
|
|
577886b392 | ||
|
|
a5e1201a0e | ||
|
|
9096423557 | ||
|
|
1f9b033580 | ||
|
|
d075bfebcb | ||
|
|
e70747d3f9 | ||
|
|
7c52c7c717 | ||
|
|
badadbfc38 | ||
|
|
813aff191e | ||
|
|
80a154e2a2 | ||
|
|
a6452d3d8c | ||
|
|
9c26a245a7 | ||
|
|
eca198cd22 | ||
|
|
bffea03541 | ||
|
|
f04501a7ee | ||
|
|
5c1dc5d3a9 | ||
|
|
c3ef7a32a7 | ||
|
|
a8a450536d | ||
|
|
97beeef5f5 | ||
|
|
d0570f5e4b | ||
|
|
a85df67074 | ||
|
|
332b3b51f7 | ||
|
|
22ffcaa59e | ||
|
|
7a4ca37a91 | ||
|
|
1ff112cbc2 | ||
|
|
343b7195e0 | ||
|
|
c3354744a6 | ||
|
|
ed90f2fd74 | ||
|
|
22de0e546c | ||
|
|
91ef761cbf | ||
|
|
d129eaf48b | ||
|
|
e2063688be | ||
|
|
3c6080177c | ||
|
|
554341c627 | ||
|
|
165dd705b3 | ||
|
|
170a6fbce2 | ||
|
|
e5142ce5c8 | ||
|
|
bcee2b1ca7 | ||
|
|
c51758ec3d | ||
|
|
8ec739d276 | ||
|
|
255ed92f43 | ||
|
|
022fc2ea6e | ||
|
|
f2bf4bb352 | ||
|
|
2156408bcf | ||
|
|
46882e099b | ||
|
|
eb9d680b83 | ||
|
|
1439df81f6 | ||
|
|
f2f5af50ab | ||
|
|
fa52feaefd | ||
|
|
cd3c551fc2 | ||
|
|
b9e8ac4758 | ||
|
|
ef26bb9cb6 | ||
|
|
1516d715b3 | ||
|
|
726bd67c80 | ||
|
|
9766aab150 | ||
|
|
0e7a2c98bd | ||
|
|
988e7a38e6 | ||
|
|
0dffd43672 | ||
|
|
106d401c45 | ||
|
|
9f813308bb | ||
|
|
9a7e21b7c0 | ||
|
|
32b0f3a975 | ||
|
|
4bbcbacc0d | ||
|
|
181b0bacd8 | ||
|
|
06a60f3eb7 | ||
|
|
0d3b43fa0f | ||
|
|
85bec81a27 | ||
|
|
8a3b534edb | ||
|
|
b4f7e21450 | ||
|
|
7474ea6e8e | ||
|
|
3fd5229403 | ||
|
|
8e62672501 | ||
|
|
c1e28ab004 | ||
|
|
5e80bca965 | ||
|
|
ceac6cbf19 | ||
|
|
c6a22c5bae | ||
|
|
48ca3b4b28 | ||
|
|
e86f06fd8d | ||
|
|
f94ca17596 | ||
|
|
85c3b833ce | ||
|
|
de21e4ab6e | ||
|
|
c073530450 | ||
|
|
52d80e0c25 | ||
|
|
6f3961eb9e | ||
|
|
4f0e94fa38 | ||
|
|
230e519808 | ||
|
|
cbd3b87805 | ||
|
|
a8ea9420e2 | ||
|
|
0ee707340a | ||
|
|
9c6b4cd9fa | ||
|
|
4aaf474d7b | ||
|
|
26d5ac3f4b | ||
|
|
13c40bd0d3 | ||
|
|
39a8519073 | ||
|
|
90ebe22392 | ||
|
|
95377dc455 | ||
|
|
b0b55319e0 | ||
|
|
88c6335622 | ||
|
|
3879652482 | ||
|
|
3bcb5ed21c | ||
|
|
778f976e3c | ||
|
|
57405dc377 | ||
|
|
84ec2e10c6 | ||
|
|
5b04e8228f | ||
|
|
27dcf58bc9 | ||
|
|
e59697f677 | ||
|
|
7bf5e19a5e | ||
|
|
2064f1f494 | ||
|
|
5399a1e73b | ||
|
|
a1402b4dc7 | ||
|
|
1c09439b33 | ||
|
|
4615d7ffd8 | ||
|
|
bf603dd758 | ||
|
|
e0f565d081 | ||
|
|
e844e3d2c0 | ||
|
|
5f07a58618 | ||
|
|
3530a79bd8 | ||
|
|
56837a3819 | ||
|
|
c33fce4132 | ||
|
|
01a1379095 | ||
|
|
0a6ec14f54 | ||
|
|
89bd361e8a | ||
|
|
4121d366a0 | ||
|
|
ca222aa9ee | ||
|
|
d2ceb49762 | ||
|
|
8c81cf8acc | ||
|
|
d8fee78667 | ||
|
|
2c6318e02b | ||
|
|
04d6ba6b13 | ||
|
|
b77e75c1ea | ||
|
|
aa24ce422c | ||
|
|
c4aa402ce2 | ||
|
|
9928dcca96 | ||
|
|
0f0b085525 | ||
|
|
76ce99382c | ||
|
|
75d98ba736 | ||
|
|
27a318b35f | ||
|
|
f91545654e | ||
|
|
4bd6582bc0 | ||
|
|
6950e8e9c3 | ||
|
|
0d0086602e | ||
|
|
7cff71bedb | ||
|
|
a592ff3fec | ||
|
|
3bd8783529 | ||
|
|
fac8055c8a | ||
|
|
da7fd05e76 | ||
|
|
07e2709863 | ||
|
|
e6c64b2a3f | ||
|
|
44b4df6699 | ||
|
|
30d690b082 | ||
|
|
2d7327864f | ||
|
|
5dd4e12364 | ||
|
|
317a3a32c5 | ||
|
|
34e250830b | ||
|
|
b2b16f6543 | ||
|
|
3a7395e810 | ||
|
|
ad00075c9a | ||
|
|
50db709452 | ||
|
|
6bef3e4588 | ||
|
|
e82cc68740 | ||
|
|
e6774be5c9 | ||
|
|
28d14d7c1e | ||
|
|
0fcf59581a | ||
|
|
fe2bf0f32e | ||
|
|
2913ee8c4e | ||
|
|
4b9ef797ba | ||
|
|
1084f2ba2f | ||
|
|
fdc8f40ca0 | ||
|
|
705ef0eadf | ||
|
|
fa7950e1ed | ||
|
|
ac5ae35f5c | ||
|
|
c5b7399d66 | ||
|
|
fdb47f120f | ||
|
|
75a1ef9a3b | ||
|
|
d3e32ea81b | ||
|
|
8d37caefa7 | ||
|
|
6eb92857bb | ||
|
|
b832388bb5 | ||
|
|
cfe0bc4f49 | ||
|
|
6276bb43c9 | ||
|
|
079190a9ea | ||
|
|
6dbfc9ea44 | ||
|
|
4dd8a86417 | ||
|
|
9a2ab16028 | ||
|
|
4ecbeebf16 | ||
|
|
b7b67bc42a | ||
|
|
cc05c05b08 | ||
|
|
d236629854 | ||
|
|
23e1dbe0fb | ||
|
|
6c894fe354 | ||
|
|
6783491742 | ||
|
|
9e47fd3c38 | ||
|
|
3e573af672 | ||
|
|
0cb4643f39 | ||
|
|
49dcd55168 | ||
|
|
2b9a0fad98 | ||
|
|
ff198876ce | ||
|
|
23ea07195a | ||
|
|
1888070fbb | ||
|
|
c1bf8abfdf | ||
|
|
01104309c5 | ||
|
|
8e18d56d3d | ||
|
|
9116689e85 | ||
|
|
4c97ccf970 | ||
|
|
723421f199 | ||
|
|
0ea57932ca | ||
|
|
f95330cb15 | ||
|
|
76b462474a | ||
|
|
27aa0fe74b | ||
|
|
8e1fe3850f | ||
|
|
4a7695146c | ||
|
|
875cf2f43a | ||
|
|
f729bb13a9 | ||
|
|
fe1da66c34 | ||
|
|
949b5bf7c6 | ||
|
|
5f78211d6a | ||
|
|
f029d7bd81 | ||
|
|
9c83b64b52 | ||
|
|
cc1125aafe | ||
|
|
339217e776 | ||
|
|
c5b98e5dd6 | ||
|
|
b4c3abbc7f | ||
|
|
9b076359bd | ||
|
|
7e2bec1c40 | ||
|
|
cd69bcf875 | ||
|
|
ea497ee0b2 | ||
|
|
5be46886d0 | ||
|
|
d0c41ff68f | ||
|
|
da384c7149 | ||
|
|
7ee9189b3d | ||
|
|
7b0e4b3160 | ||
|
|
e6be690968 | ||
|
|
fc0cbc0c53 | ||
|
|
3fa01cbc1b | ||
|
|
5332287bff | ||
|
|
0ce40de42e | ||
|
|
d3f5d0e236 | ||
|
|
117de2820b | ||
|
|
8bee886130 | ||
|
|
3e7fcaef4f | ||
|
|
8e3b7ec3f9 | ||
|
|
5aa9655737 | ||
|
|
c9f1f4ce13 | ||
|
|
549fbda0fb | ||
|
|
1d823a5082 | ||
|
|
c8f0c00a72 | ||
|
|
676e7aa731 | ||
|
|
279c463599 | ||
|
|
178830b3e0 | ||
|
|
3dbdeb2e1c | ||
|
|
64526a3c62 | ||
|
|
f499d36691 | ||
|
|
03db902246 | ||
|
|
0daa8cae84 | ||
|
|
b13e26feb0 | ||
|
|
0495c0aa7e | ||
|
|
f13c0fe7c1 | ||
|
|
1d00a4f04b | ||
|
|
937ea5830d | ||
|
|
18cd1f223e | ||
|
|
fc85093f70 | ||
|
|
cea7685170 | ||
|
|
f5d8d2afcd | ||
|
|
606f493fe8 | ||
|
|
8b0f9b6ab4 | ||
|
|
891fc1f519 | ||
|
|
8d37068427 | ||
|
|
14f3658aa6 | ||
|
|
5f06f26340 | ||
|
|
b01e419427 | ||
|
|
876b83ee70 | ||
|
|
d2986b6c1e | ||
|
|
cd0e0879db | ||
|
|
66dfc3ecd2 | ||
|
|
5e4a43eac4 | ||
|
|
81f073c5ea | ||
|
|
074f2fc8f0 | ||
|
|
54acc0b0f1 | ||
|
|
37c848d5b7 | ||
|
|
53fc60bc54 | ||
|
|
374babdb5f | ||
|
|
e87c770913 | ||
|
|
11030fc396 | ||
|
|
c271bad024 | ||
|
|
095c1b8039 | ||
|
|
febf93d190 | ||
|
|
c11cdf9a93 | ||
|
|
ee46c52bcf | ||
|
|
1f64988c6c | ||
|
|
ff08e89a70 | ||
|
|
aff05dbfa0 | ||
|
|
bbe7d1ae6c | ||
|
|
a3c8c29bfd | ||
|
|
05eb59c951 | ||
|
|
2405e7f8ee | ||
|
|
24325a4397 | ||
|
|
278dc2b7fa | ||
|
|
0b1fee5c67 | ||
|
|
0ec6e3d9bc | ||
|
|
df4535b252 | ||
|
|
47273806b4 | ||
|
|
4aea65415a | ||
|
|
4fe5a5d23d | ||
|
|
7c0e1f3a19 | ||
|
|
d43db187f5 | ||
|
|
6de4ae4828 | ||
|
|
8f955392fe | ||
|
|
834fe92a1b | ||
|
|
eb77059c8c | ||
|
|
e678f91b39 | ||
|
|
c3da86d4db | ||
|
|
25d2677870 | ||
|
|
2024315478 | ||
|
|
48a628d4e8 | ||
|
|
582a06f7eb | ||
|
|
98e71ce00d | ||
|
|
fc2ea706d4 | ||
|
|
d5ae20804c | ||
|
|
eaf32a598a | ||
|
|
db698c5b64 | ||
|
|
e3833995f3 | ||
|
|
ef75dcac8b | ||
|
|
9dc69630d6 | ||
|
|
391f5d4732 | ||
|
|
be9daf5bc9 | ||
|
|
7fb40cd0fb | ||
|
|
7a2bfebbad | ||
|
|
b7a85e924a | ||
|
|
0a11cc1ef6 | ||
|
|
6812a0f5e8 | ||
|
|
ca2b5a866e | ||
|
|
c765adc319 | ||
|
|
dd44e9aa78 | ||
|
|
6721209456 | ||
|
|
3210ed39ec | ||
|
|
58f0bff6dd | ||
|
|
e776cccfce | ||
|
|
1659ccd302 | ||
|
|
316376bcf8 | ||
|
|
6508f56ebb | ||
|
|
10bb6d7d9e | ||
|
|
69423e383c | ||
|
|
c120fdb8f8 | ||
|
|
e381f3ac7e | ||
|
|
350fe8e13d | ||
|
|
0e2f73aa38 | ||
|
|
18989b0d25 | ||
|
|
c5cb32ad10 | ||
|
|
293455ce36 | ||
|
|
9c7e8cab41 | ||
|
|
f1abbb30d3 | ||
|
|
b6cbe8b0e2 | ||
|
|
10765b9d14 | ||
|
|
0c2f1bd8dd | ||
|
|
a22a62b5f5 | ||
|
|
fa483119c5 | ||
|
|
81251c945e | ||
|
|
9fd2d9c427 | ||
|
|
eaaf4ecb68 | ||
|
|
5cbee3ef49 | ||
|
|
ac04c1c31a | ||
|
|
ce134b9dd2 | ||
|
|
2f939769c1 | ||
|
|
357fd29126 | ||
|
|
2662b8e38c | ||
|
|
d83da60aea | ||
|
|
8d4c542d9d | ||
|
|
0cd6b30473 | ||
|
|
6a1e58214c | ||
|
|
39648e65c8 | ||
|
|
3058d53278 | ||
|
|
723bd21c84 | ||
|
|
8bea570ae0 | ||
|
|
96b1922043 | ||
|
|
091c8d683b | ||
|
|
d5696b0520 | ||
|
|
af352b3371 | ||
|
|
56d0f59116 | ||
|
|
3d42a1ce11 | ||
|
|
1ceca9a00f | ||
|
|
039b332926 | ||
|
|
418fbc1916 | ||
|
|
2d9dc71a60 | ||
|
|
68ff4a35d6 | ||
|
|
ad625e42a5 | ||
|
|
1758c998d3 | ||
|
|
21d0b326b9 | ||
|
|
c685d64e62 | ||
|
|
b7edf05911 | ||
|
|
8c017552c1 | ||
|
|
8014b883fd | ||
|
|
daf713631f | ||
|
|
0ee0c85715 | ||
|
|
2e4bea2d4d | ||
|
|
79bda30586 | ||
|
|
ef6f57ec2d | ||
|
|
6e284a0adf | ||
|
|
87d3e89592 | ||
|
|
875d1c7127 | ||
|
|
25d088d0e2 | ||
|
|
76c1f8d2db | ||
|
|
185df380c5 | ||
|
|
3382254d0d | ||
|
|
aae93e1731 | ||
|
|
85bc0dcc65 | ||
|
|
118733374a | ||
|
|
0f19e5ee76 | ||
|
|
3a8d60f37a | ||
|
|
9039d0c1b9 | ||
|
|
06f6c78bcf | ||
|
|
ee273cbab3 | ||
|
|
5be868da13 | ||
|
|
a39e57314a | ||
|
|
23025e2dca | ||
|
|
62ca0ed740 | ||
|
|
59e9c99c4e | ||
|
|
df13c81062 | ||
|
|
49e624278c | ||
|
|
0f1f9dece8 | ||
|
|
b5dbc995c4 | ||
|
|
b3e89dc93b | ||
|
|
53bac405df | ||
|
|
c2a9d9e961 | ||
|
|
4e821e8107 | ||
|
|
5a958e53c1 | ||
|
|
e74c638fca | ||
|
|
0d2e893f64 | ||
|
|
373dabc44b | ||
|
|
90733638cf | ||
|
|
ecbdc6e98a | ||
|
|
5732726f36 | ||
|
|
5693e87c98 | ||
|
|
fd773b697f | ||
|
|
cb6982683c | ||
|
|
6014a0e8f9 | ||
|
|
8f7cbb71c7 | ||
|
|
ac5605f8a1 | ||
|
|
c4f2b30f2b | ||
|
|
1758ea1510 | ||
|
|
c21aad6834 | ||
|
|
beed4347e8 | ||
|
|
378439b369 | ||
|
|
a53c6bb9ea | ||
|
|
0feec71490 | ||
|
|
8b2dd23b93 | ||
|
|
553bfe377e | ||
|
|
4e2cf6a1f3 | ||
|
|
843c0050e4 | ||
|
|
fdad331da8 | ||
|
|
5435d9e1ed | ||
|
|
31e6434ee9 | ||
|
|
08495395f1 | ||
|
|
947d50caf8 | ||
|
|
0c3ccf5bf3 | ||
|
|
01682e7909 | ||
|
|
007288af21 | ||
|
|
e76c28d252 | ||
|
|
63f266465a | ||
|
|
d6da7c0326 | ||
|
|
4c69dc31ec | ||
|
|
ea7ca01a48 | ||
|
|
8a72bb1a6b | ||
|
|
20acfae4f1 | ||
|
|
3dd2ce3d36 | ||
|
|
1b7adbe9c5 | ||
|
|
ea8da90c20 | ||
|
|
c662c952b7 | ||
|
|
1a83823150 | ||
|
|
6b1ad1126a | ||
|
|
56c00ff56c | ||
|
|
a4cb4a9a7b | ||
|
|
d9d364dfa5 | ||
|
|
02365e66fd | ||
|
|
19337124f4 | ||
|
|
4b99fa3a56 | ||
|
|
83c8207467 | ||
|
|
525ab7d428 | ||
|
|
ac5a95ed87 | ||
|
|
967b841271 | ||
|
|
4f736cd632 | ||
|
|
154423e09c | ||
|
|
cff40b5a89 | ||
|
|
d17722df78 | ||
|
|
5cba946ba0 | ||
|
|
b7ab3b2669 | ||
|
|
a3e6e5d4ac | ||
|
|
497a6c1942 | ||
|
|
9938d2930e | ||
|
|
260011994c | ||
|
|
b2bb49b1a3 | ||
|
|
4c466d6c1c | ||
|
|
cf8d410921 | ||
|
|
a59da8d6d2 | ||
|
|
a7a06b31cf | ||
|
|
387f32b13f | ||
|
|
bdd60f6b4a | ||
|
|
62dae7073c | ||
|
|
bdda0f2f9f | ||
|
|
13b2280f51 | ||
|
|
96c6804d67 | ||
|
|
dcb562cb11 | ||
|
|
6e00606366 | ||
|
|
bab8619e44 | ||
|
|
ac399e59e9 | ||
|
|
509f919bc6 | ||
|
|
a03bad664f | ||
|
|
cf5b646047 | ||
|
|
abd5de2fab | ||
|
|
66ae60ffba | ||
|
|
8ffa7caf54 | ||
|
|
a5844d92d0 | ||
|
|
cac694b755 | ||
|
|
bf09e8cd19 | ||
|
|
05ddb0cfc1 | ||
|
|
2d64585fce | ||
|
|
d4e62ea00f | ||
|
|
b8a4345263 | ||
|
|
acd1d8955c | ||
|
|
22f7d3222e | ||
|
|
1ae35b5399 | ||
|
|
b35322596a | ||
|
|
09cc12c877 | ||
|
|
8a7e6e73b6 | ||
|
|
64a1f290e5 | ||
|
|
5c2b3824b3 | ||
|
|
e6b9f38bdd | ||
|
|
04c37ee0de | ||
|
|
59eb99a1e0 | ||
|
|
dcfa44461f | ||
|
|
77cf8819f6 | ||
|
|
978eb70115 | ||
|
|
3203a8b518 | ||
|
|
c8ece5d5f7 | ||
|
|
9ef42f6b94 | ||
|
|
a489982443 | ||
|
|
4bb6dc3436 | ||
|
|
0a4232aefb | ||
|
|
dc4dfd2449 | ||
|
|
8d2ec579f3 | ||
|
|
0b2ce4b330 | ||
|
|
721e2eac2f | ||
|
|
c750ea7ad6 | ||
|
|
cec90edbbd | ||
|
|
da7a496970 | ||
|
|
aca6c8580d | ||
|
|
accb759e63 | ||
|
|
8ee546173c | ||
|
|
a109eafc8e | ||
|
|
4967ea47de | ||
|
|
ed5879a8e4 | ||
|
|
954629897c | ||
|
|
8d29cf9138 | ||
|
|
59af6aa431 | ||
|
|
6e5bac1ccd | ||
|
|
bbdd2d3fc0 | ||
|
|
4ab8106d63 | ||
|
|
929924c14b | ||
|
|
72f10336d1 | ||
|
|
2b20f986cf | ||
|
|
b3ecb8a169 | ||
|
|
edbe758b0c | ||
|
|
7fb957d06d | ||
|
|
af8ab96c95 | ||
|
|
2c0594c873 | ||
|
|
3d4a14166c | ||
|
|
bf3dc5a578 | ||
|
|
c0cf13e4a9 | ||
|
|
042883dffa | ||
|
|
3552a31505 | ||
|
|
90f2af8239 | ||
|
|
d24901026d | ||
|
|
42d7d7a7af | ||
|
|
abb396d11a | ||
|
|
94e94f7444 | ||
|
|
00c8e5a2ad | ||
|
|
1c309e7919 | ||
|
|
67e45e4b3b | ||
|
|
fce2a0043c | ||
|
|
561f73dbc7 | ||
|
|
9df2bcdffa | ||
|
|
b0ce115fe1 | ||
|
|
e6fa7cf264 | ||
|
|
f0a52a45f7 | ||
|
|
23a6688898 | ||
|
|
827cc5a1a4 | ||
|
|
71d752eca7 | ||
|
|
0799abbab2 | ||
|
|
3176859679 | ||
|
|
6634d8af9a | ||
|
|
1c40a62497 | ||
|
|
f14099c8b2 | ||
|
|
e6452b6b05 | ||
|
|
fb9a4949ab | ||
|
|
3cc63309f5 | ||
|
|
dde3882d43 | ||
|
|
97a6f80453 | ||
|
|
8068667713 | ||
|
|
c2928ab110 | ||
|
|
8f68edde6c | ||
|
|
03834cb2ec | ||
|
|
2c26a34043 | ||
|
|
57b25d06dc | ||
|
|
8e76570280 | ||
|
|
630d1f2249 | ||
|
|
d503c2fcdc | ||
|
|
0ccafcce7d | ||
|
|
d76273f497 | ||
|
|
f4b9c8b7f7 | ||
|
|
e63ddac7f5 | ||
|
|
7a133bb27f | ||
|
|
e0304cc58c | ||
|
|
f553878cff | ||
|
|
55d77446e4 | ||
|
|
0a82ec2a9b | ||
|
|
dabacefa7c | ||
|
|
8303aee85c | ||
|
|
461ab4d6fa | ||
|
|
c9fc58ad1b | ||
|
|
779b973171 | ||
|
|
308697dff3 | ||
|
|
fdf74b40a1 | ||
|
|
7ed5abda1b | ||
|
|
86d348b286 | ||
|
|
91536bd7c6 | ||
|
|
d6d3fb9cb7 | ||
|
|
a803f9ee7d | ||
|
|
b33c86e8e5 | ||
|
|
a137a2dae1 | ||
|
|
b6e8f34627 | ||
|
|
8993f0804a | ||
|
|
58aef677e7 | ||
|
|
396d73d75e | ||
|
|
37e599eb90 | ||
|
|
4f34026846 | ||
|
|
b84cc9cfdd | ||
|
|
dabf3bf548 | ||
|
|
6d81c963e5 | ||
|
|
f1665e689c | ||
|
|
c694c11b6c | ||
|
|
19aaeed198 | ||
|
|
311dbf07bb | ||
|
|
feb868f3b1 | ||
|
|
aba4030708 | ||
|
|
3f96f36403 | ||
|
|
a01a826fe2 | ||
|
|
1ef0cde6c6 | ||
|
|
fc56723a13 | ||
|
|
9ca7ccdb54 | ||
|
|
7eda8a6b17 | ||
|
|
50a1e97e82 | ||
|
|
4038541c70 | ||
|
|
540bfeb1fc | ||
|
|
4318f432f3 | ||
|
|
0bb4af6374 | ||
|
|
b4165929e5 | ||
|
|
1366899204 | ||
|
|
1c8e54a237 | ||
|
|
9fb2bdfeb4 | ||
|
|
742071d5de | ||
|
|
1de1c6b330 | ||
|
|
3080855226 | ||
|
|
07a8cc5852 | ||
|
|
8ac4f5fe0b | ||
|
|
58d26bf1bf | ||
|
|
18ad07bdff | ||
|
|
1806bf7a09 | ||
|
|
54dfc4b8b1 | ||
|
|
8e7909554a | ||
|
|
5dea18d35f | ||
|
|
adf4bcf223 | ||
|
|
58e8d27ca3 | ||
|
|
a959325c22 | ||
|
|
88f423a51d | ||
|
|
ae8babddc3 | ||
|
|
1b71b691b1 | ||
|
|
ca3bf32d85 | ||
|
|
915cce661b | ||
|
|
2c9cde0767 | ||
|
|
231c2554be | ||
|
|
ec4ff020a3 | ||
|
|
9624026e76 | ||
|
|
251925c324 | ||
|
|
0c5f377716 | ||
|
|
5292ca62ce | ||
|
|
2d8d7bee6e | ||
|
|
163fec0358 | ||
|
|
bdf9d40182 | ||
|
|
46c394acb1 | ||
|
|
889b542886 | ||
|
|
b461e45143 | ||
|
|
82d626babd | ||
|
|
a7dbb76850 | ||
|
|
e60e1a7be7 | ||
|
|
f230630377 | ||
|
|
3b2829170c | ||
|
|
e40d360f4a | ||
|
|
2fe07c1a25 | ||
|
|
78de121a98 | ||
|
|
14adba8b47 | ||
|
|
e12b2fc8d7 | ||
|
|
aead49a33e | ||
|
|
fe9ceff535 | ||
|
|
1ef3c4cc56 | ||
|
|
97c5563ee8 | ||
|
|
2e606e58e4 | ||
|
|
8250fa8a1d | ||
|
|
db48662579 | ||
|
|
126713f6ed | ||
|
|
75f63a9b8a | ||
|
|
1a9e95a54d | ||
|
|
e76051dced | ||
|
|
eacd008fc0 | ||
|
|
caf1239788 | ||
|
|
8b2f99c988 | ||
|
|
1b3007e752 | ||
|
|
1092bae2c0 | ||
|
|
57a1796544 | ||
|
|
4a7d3a03f9 | ||
|
|
3e3c3cd4b2 | ||
|
|
46e8cb12d9 | ||
|
|
37017f111d | ||
|
|
d1c45ba2c3 | ||
|
|
39eaad5b2b | ||
|
|
7552b74c79 | ||
|
|
ab485850dd | ||
|
|
17be268771 | ||
|
|
131b1f2e2b | ||
|
|
2df269ea89 | ||
|
|
57268d7ae5 | ||
|
|
06f441d8ac | ||
|
|
e9a91467fe | ||
|
|
8127750130 | ||
|
|
b0aafe079d | ||
|
|
ec71eafbec | ||
|
|
b640eebab1 | ||
|
|
7b755fbc94 | ||
|
|
ad52864622 | ||
|
|
55d1a0d490 | ||
|
|
e8cd9fa759 | ||
|
|
7ef0cab15c | ||
|
|
bcf0a23729 | ||
|
|
88b2763c15 | ||
|
|
86a7c69060 | ||
|
|
d3d2fd83f2 | ||
|
|
66e8a49857 | ||
|
|
0f63c8f862 | ||
|
|
45a310e7e5 | ||
|
|
ca39d16e9c | ||
|
|
00eeeaccbf | ||
|
|
f81f604ba6 | ||
|
|
a67624de7a | ||
|
|
89ab33e856 | ||
|
|
47606b8318 | ||
|
|
4782300283 | ||
|
|
e79b4ffd01 | ||
|
|
f9857eaf6f | ||
|
|
f669a35900 | ||
|
|
5c2405ba1b | ||
|
|
f77d5a824e | ||
|
|
5681d2dff3 | ||
|
|
b0813e6900 | ||
|
|
22acb72f56 | ||
|
|
e63b611e04 | ||
|
|
6e354eb05c | ||
|
|
7f35ff8fd8 | ||
|
|
733a7a452c | ||
|
|
fc841f0b0c | ||
|
|
b65406655a | ||
|
|
3dd7573363 | ||
|
|
86cc3cc8a9 | ||
|
|
b6d43c55ad | ||
|
|
1adca7a37d | ||
|
|
ee2fdbbcb8 | ||
|
|
9077fa4fa4 | ||
|
|
c262863228 | ||
|
|
e61d2bce95 | ||
|
|
47af2282ac | ||
|
|
6e0ba451d6 | ||
|
|
bc0ef23acd | ||
|
|
8e7d87d7d9 | ||
|
|
5aa6fce68d | ||
|
|
b32280ef9f | ||
|
|
663f1846c9 | ||
|
|
7d523c5e11 | ||
|
|
2df8b390e4 | ||
|
|
db48ca850b | ||
|
|
3725f3badd | ||
|
|
407e2fac23 | ||
|
|
5df322525d | ||
|
|
a34fe5e4e4 | ||
|
|
261b3e8344 | ||
|
|
3d0cff8b23 | ||
|
|
db3471b8e2 | ||
|
|
4d6a5bb209 | ||
|
|
6d768d00ad | ||
|
|
e68b60c23b | ||
|
|
933d901b73 | ||
|
|
940f7c933d | ||
|
|
3670a155d5 | ||
|
|
44c957b050 | ||
|
|
812414f9aa | ||
|
|
427a4ba1f8 | ||
|
|
30f701ced4 | ||
|
|
e775638152 | ||
|
|
e4c6685b25 | ||
|
|
a3e0921919 | ||
|
|
a37adaf2cd | ||
|
|
319ac6db1b | ||
|
|
d3ee726abb | ||
|
|
155099b933 | ||
|
|
c0f0cc10c8 | ||
|
|
17f7050c87 | ||
|
|
bfaeae661c | ||
|
|
f414c2b36b | ||
|
|
49fc68a7b5 | ||
|
|
7dd6b00997 | ||
|
|
e2007518e7 | ||
|
|
e7a0697a01 | ||
|
|
553babea3e | ||
|
|
b32f1a6ba3 | ||
|
|
a1e891b39f | ||
|
|
7495ce0c44 | ||
|
|
d5117ba1aa | ||
|
|
34fb7ec19c | ||
|
|
7b11404206 | ||
|
|
e1b3895dcd | ||
|
|
89b6c71a06 | ||
|
|
4d45c6cca9 | ||
|
|
4cdfc765fb | ||
|
|
acb8dfa0a1 | ||
|
|
8d2f7da003 | ||
|
|
248347b8ef | ||
|
|
05d718ca0b | ||
|
|
7972addc30 | ||
|
|
75d5a21802 | ||
|
|
8a69e1db13 | ||
|
|
2dd37b759b | ||
|
|
f623fa7c43 | ||
|
|
ddbbdcdaea | ||
|
|
69ec53c9e9 | ||
|
|
dc4d176995 | ||
|
|
602c2b5e74 | ||
|
|
1e5b7b6b5d | ||
|
|
1a51b64975 | ||
|
|
53f358a551 | ||
|
|
dc041803c5 | ||
|
|
8b2347b743 | ||
|
|
4a043e72e1 | ||
|
|
6f65b01229 | ||
|
|
35d8a3720e | ||
|
|
4ff921d9a8 | ||
|
|
f56e80cb9a | ||
|
|
19df93f28e | ||
|
|
dc88de8d55 | ||
|
|
59ab11ba4e | ||
|
|
0e43e4b078 | ||
|
|
511ffb5af0 | ||
|
|
d8c4013c71 | ||
|
|
281bb5cfa7 | ||
|
|
1dbc358f07 | ||
|
|
a4ed66824e | ||
|
|
7905757358 | ||
|
|
941b2d44e9 | ||
|
|
4da253604c | ||
|
|
fac3dc7fd2 | ||
|
|
001a7d07e0 | ||
|
|
1a027fbfe2 | ||
|
|
0ecc14973c | ||
|
|
5b8d84f7fb | ||
|
|
6a471fd907 | ||
|
|
fc69addfe2 | ||
|
|
146546a386 | ||
|
|
f7ebea1511 | ||
|
|
c96f965b0e | ||
|
|
5c9445879b | ||
|
|
7b43d0a0b5 | ||
|
|
e2eca9b596 | ||
|
|
224a280b33 | ||
|
|
667ba7a155 | ||
|
|
1639c40d05 | ||
|
|
c72a008872 | ||
|
|
e404e6a53a | ||
|
|
ee9bcc7eb0 | ||
|
|
944f529924 | ||
|
|
bb738752b5 | ||
|
|
4464d40e0e | ||
|
|
2c9cd6f590 | ||
|
|
dca379fe3a | ||
|
|
4a2ff4b0f0 | ||
|
|
e9686c5970 | ||
|
|
58226c81ac | ||
|
|
07e6b20619 | ||
|
|
6f17cb210a | ||
|
|
21955c7cbd | ||
|
|
a07c29b4e2 | ||
|
|
26cdbb83ac | ||
|
|
e9b5823c1c | ||
|
|
9a1d0e3a52 | ||
|
|
be3b23f7f8 | ||
|
|
8538ac16e4 | ||
|
|
63bd830325 | ||
|
|
54d684f011 | ||
|
|
b7e6c60201 | ||
|
|
cb6fcfd9ce | ||
|
|
2a313b2efe | ||
|
|
5965da1ae4 | ||
|
|
91740c8fd1 | ||
|
|
858abc0a69 | ||
|
|
a7c0f41cfc | ||
|
|
88aa30cc81 | ||
|
|
76bfe22c6e | ||
|
|
9e03c4ec7d | ||
|
|
cd3d3081f9 | ||
|
|
4a90c17b2e | ||
|
|
7506a3b7ab | ||
|
|
bbd8a0dfce | ||
|
|
f21010fd18 | ||
|
|
41fa32e8e2 | ||
|
|
002cdff32a | ||
|
|
b1bfd12e1c | ||
|
|
12c1dea98b | ||
|
|
0b4c607d70 | ||
|
|
f00681297d | ||
|
|
44122f5963 | ||
|
|
aec3c52ad1 | ||
|
|
32773a31ff | ||
|
|
7ad39b79ad | ||
|
|
c36f509227 | ||
|
|
5d67f711e9 | ||
|
|
f55ffdd8e2 | ||
|
|
d690a911a3 | ||
|
|
f040548fc0 | ||
|
|
0cc34e8372 | ||
|
|
4410ce6f63 | ||
|
|
7d6b97fd68 | ||
|
|
a1b4a1141e | ||
|
|
f18017e415 | ||
|
|
2dde00d430 | ||
|
|
3e30b4b2f6 | ||
|
|
e0cbb68ec4 | ||
|
|
85dc086300 | ||
|
|
845e664b40 | ||
|
|
457c8b4f6d | ||
|
|
e0b1592f01 | ||
|
|
1de2b8d5e9 | ||
|
|
7e0dce958e | ||
|
|
c437d5e799 | ||
|
|
dc6d735cbe | ||
|
|
86889a571e | ||
|
|
1f85640b17 | ||
|
|
ad63b67bbb | ||
|
|
2d1fdcafb8 | ||
|
|
bd1bf188d6 | ||
|
|
78faa43eb0 | ||
|
|
a703ad6c5d | ||
|
|
f53ae205b1 | ||
|
|
5632c3327a | ||
|
|
68d20b428f | ||
|
|
ff611f4c8b | ||
|
|
c657c6e7f1 | ||
|
|
9d3cc68307 | ||
|
|
2e02f67502 | ||
|
|
ff9d0a5216 | ||
|
|
1ccd7e9108 | ||
|
|
b1b1901dd4 | ||
|
|
dac873d8cb | ||
|
|
816f23068c | ||
|
|
d53eef1603 | ||
|
|
c5d4624a84 | ||
|
|
a71a81cabe | ||
|
|
7af410c693 | ||
|
|
1907dcf14c | ||
|
|
70956374e3 | ||
|
|
8a933d89cc | ||
|
|
92aca09cd4 | ||
|
|
1d914a8646 | ||
|
|
c2c83f5bf1 | ||
|
|
0a1e03d1bf | ||
|
|
f4d4cc7b8e | ||
|
|
917ceb4464 | ||
|
|
ef3869255d | ||
|
|
4b80187aa5 | ||
|
|
44674a8ef3 | ||
|
|
72af1e4423 | ||
|
|
21797172ec | ||
|
|
d31fb7c848 | ||
|
|
efd667bf65 | ||
|
|
2727846cc4 | ||
|
|
a1a181a74a | ||
|
|
44eb3cec86 | ||
|
|
a1ebf2a868 | ||
|
|
b7714ccf87 | ||
|
|
5efd5257a5 | ||
|
|
ac49401955 | ||
|
|
b5c1fa6dbb | ||
|
|
d4989c4636 | ||
|
|
fb3847d3a0 | ||
|
|
b5d9f2afd9 | ||
|
|
3f2acc41d5 | ||
|
|
2888a5d533 | ||
|
|
1728de878a | ||
|
|
a6fbba97dd | ||
|
|
6e1951da91 | ||
|
|
a87468d92f | ||
|
|
148c2edb81 | ||
|
|
75fa756040 | ||
|
|
05359f5d0b | ||
|
|
9df3377146 | ||
|
|
1f689e2924 | ||
|
|
f104066112 | ||
|
|
c2b1e617b9 | ||
|
|
07fbff246e | ||
|
|
b897f2e9d2 | ||
|
|
7f36c90df0 | ||
|
|
2e391de7c6 | ||
|
|
4dd22d47d0 | ||
|
|
42accc6768 | ||
|
|
b33d06625c | ||
|
|
4aa80d7b21 | ||
|
|
147d2503c6 | ||
|
|
a149b6d07a | ||
|
|
bd034369bb | ||
|
|
45bcd38168 | ||
|
|
f7b7b946cb | ||
|
|
61a7819bf2 | ||
|
|
91dc37f338 | ||
|
|
01158b8d41 | ||
|
|
30865d54a0 | ||
|
|
74645512c1 | ||
|
|
0a17336c7f | ||
|
|
d930ef187b | ||
|
|
c9e77ed73f | ||
|
|
08857b7931 | ||
|
|
d187251092 | ||
|
|
6993af6320 | ||
|
|
ca20e9b77b | ||
|
|
73b647ac31 | ||
|
|
c258d9aeb7 | ||
|
|
2f4f11f836 | ||
|
|
f84882dd8c | ||
|
|
40c5f4d13b | ||
|
|
7be0117f71 | ||
|
|
c0960e46f2 | ||
|
|
5965ab7cf3 | ||
|
|
6b30db4a78 | ||
|
|
9d60b31509 | ||
|
|
9a550d54da | ||
|
|
128f3e211d | ||
|
|
54268b61f1 | ||
|
|
490cf28cac | ||
|
|
43fff8e0be | ||
|
|
79933a8075 | ||
|
|
6304720da4 | ||
|
|
afde6e3038 | ||
|
|
d230452084 | ||
|
|
cc18cb1d5b | ||
|
|
b01c08ae54 | ||
|
|
2c7806677c | ||
|
|
521034fc9e | ||
|
|
d3343c1ec1 | ||
|
|
0c021d046b | ||
|
|
d4da6fa4e6 | ||
|
|
0a50c716f2 | ||
|
|
872d7657e5 | ||
|
|
9f8b9fb500 | ||
|
|
667861561b | ||
|
|
45bd4f60dc | ||
|
|
b7776b6a75 | ||
|
|
61fceea368 | ||
|
|
698c8f39ec | ||
|
|
8a59ec0ca0 | ||
|
|
1c92874d8d | ||
|
|
2367317768 | ||
|
|
a54f8e2fba | ||
|
|
1fa31a92d6 | ||
|
|
6c2f09a89b | ||
|
|
dc8b6b6ab7 | ||
|
|
f2c21c55bb | ||
|
|
1a039e28a0 | ||
|
|
39d849ac92 | ||
|
|
f12c4c97be | ||
|
|
c55cb8b8c2 | ||
|
|
16c72f4716 | ||
|
|
8959fef7a2 | ||
|
|
e0503c9752 | ||
|
|
d8eec163cd | ||
|
|
789c4e5459 | ||
|
|
2d3d524bcf | ||
|
|
fb6640fe43 | ||
|
|
d49fb254b8 | ||
|
|
5d76fc4ae5 | ||
|
|
f710b560e5 | ||
|
|
d454c28cce | ||
|
|
bc4cf5e39f | ||
|
|
35371662ea | ||
|
|
1fd3a2f510 | ||
|
|
de62401af2 | ||
|
|
16e5642eec | ||
|
|
798a510de3 | ||
|
|
c2182b294f | ||
|
|
d2e2f8126d | ||
|
|
689a7f8e3d | ||
|
|
ed61b4bb0c | ||
|
|
bda92be5b9 | ||
|
|
1a37fadc23 | ||
|
|
71cf9f5c67 | ||
|
|
ad9fbdefdd | ||
|
|
0cad53aa82 | ||
|
|
ab11fbc782 | ||
|
|
0e0315c8bd | ||
|
|
4a55be26aa | ||
|
|
3e83212fc6 | ||
|
|
3aa07312be | ||
|
|
6a52f3a497 | ||
|
|
e93b6fe2e8 | ||
|
|
b2f12bfa59 | ||
|
|
cbf137b8e7 | ||
|
|
c0879c78d8 | ||
|
|
2a8f3e4e08 | ||
|
|
3e3f3538e9 | ||
|
|
b684827fac | ||
|
|
b95a28c942 | ||
|
|
0431938c04 | ||
|
|
42fab5efb0 | ||
|
|
cb688bb06b | ||
|
|
0cb4f114d8 | ||
|
|
8338feafcd | ||
|
|
5dea8394a2 | ||
|
|
524e38ba8d | ||
|
|
ea2e779666 | ||
|
|
edff5a1931 | ||
|
|
6a361bca35 | ||
|
|
403fab5c74 | ||
|
|
9405b855f9 | ||
|
|
37feb9693f | ||
|
|
cbca38a5a0 | ||
|
|
be7d44b159 | ||
|
|
52024c7ac2 | ||
|
|
a7a813bdd9 | ||
|
|
2ffdbbeb49 | ||
|
|
3d04238262 | ||
|
|
00c41fed80 | ||
|
|
83857b8f08 | ||
|
|
110c1607cf | ||
|
|
ca0c4504cf | ||
|
|
a44b39247a | ||
|
|
fd0f61b0f3 | ||
|
|
7576827ff9 | ||
|
|
4fe7d6e6b9 | ||
|
|
edf7e3ccc2 | ||
|
|
ec25e29faf | ||
|
|
13d0dd0631 | ||
|
|
cdebdf5bfe | ||
|
|
e5cf48ec82 | ||
|
|
94fa1842ec | ||
|
|
306616cbc8 | ||
|
|
ccded31186 | ||
|
|
c9f26f475f | ||
|
|
a92431261b | ||
|
|
11649784ad | ||
|
|
a2b411fa12 | ||
|
|
ec6d4af8a5 | ||
|
|
589ea385a5 | ||
|
|
677bb42737 | ||
|
|
12c130435e | ||
|
|
9276569fa1 | ||
|
|
f2facd5351 | ||
|
|
63c9995669 | ||
|
|
67702e15c3 | ||
|
|
b081e965bc | ||
|
|
bb127ef221 | ||
|
|
6a307c62f6 | ||
|
|
053382dc09 | ||
|
|
086abc4cef | ||
|
|
c43c188aad | ||
|
|
3afb78bd40 | ||
|
|
21b89237a5 | ||
|
|
ac1a811852 | ||
|
|
ee22bb3f76 | ||
|
|
654a24bbc8 | ||
|
|
10d88e1df1 | ||
|
|
644dd48dff | ||
|
|
b9fe0e4e61 | ||
|
|
e141431b4d | ||
|
|
8cf040d6b5 | ||
|
|
8e1c0d28de | ||
|
|
c80aa23f76 | ||
|
|
e7cd36c728 | ||
|
|
3133c45ed4 | ||
|
|
9799a8048c | ||
|
|
ba2ab3f30b | ||
|
|
1a53d6c745 | ||
|
|
69cbc2efa5 | ||
|
|
b926b85b6e | ||
|
|
d77600a3a6 | ||
|
|
fe2068c818 | ||
|
|
dc65371933 | ||
|
|
928f98d2c5 | ||
|
|
386e355be0 | ||
|
|
4c775b7fbe | ||
|
|
e5b9bdb245 | ||
|
|
2fc9771765 | ||
|
|
229c105323 | ||
|
|
9fca079910 | ||
|
|
f054d16e16 | ||
|
|
39df8663f6 | ||
|
|
7f27163b13 | ||
|
|
0cb4377855 | ||
|
|
b3e793702b | ||
|
|
5551d051c2 | ||
|
|
a79efe725f | ||
|
|
47938ecde2 | ||
|
|
981196b999 | ||
|
|
98e56837eb | ||
|
|
4224463d59 | ||
|
|
18d73bb554 | ||
|
|
218a0f439d | ||
|
|
c6ac9a9080 | ||
|
|
5d42f95f18 | ||
|
|
5a907b0ba3 | ||
|
|
dfd410405e | ||
|
|
9d85e6a264 | ||
|
|
40b359cfde | ||
|
|
1a88fdfb1e | ||
|
|
d837f81943 | ||
|
|
370581146e | ||
|
|
ea12a5d524 | ||
|
|
20e216dccc | ||
|
|
9508958c89 | ||
|
|
521f2a4d63 | ||
|
|
5a25ad7667 | ||
|
|
cec3fa8fff | ||
|
|
edf0556424 | ||
|
|
f461893ef2 | ||
|
|
8528e56279 | ||
|
|
1975e818d2 | ||
|
|
4107524904 | ||
|
|
353f823911 | ||
|
|
b84df480b8 | ||
|
|
c88e217717 | ||
|
|
2030a3befb | ||
|
|
f40bba809f | ||
|
|
133709deaf | ||
|
|
3d5ab5bc61 | ||
|
|
bf29c51c18 | ||
|
|
b5c1346cc0 | ||
|
|
9bb1753b68 | ||
|
|
3004b570ee | ||
|
|
6fd0ffdc35 | ||
|
|
1437cf2b6c | ||
|
|
4d73ebe71c | ||
|
|
b94e04cf19 | ||
|
|
bb34bc11ba | ||
|
|
69cb6d5e6f | ||
|
|
eabfe33b4f | ||
|
|
53c15247ed | ||
|
|
eea9798f80 | ||
|
|
fbf479729a | ||
|
|
f02e677e14 | ||
|
|
5b5c8ffc86 | ||
|
|
9f24005d3c | ||
|
|
29567a5ea2 | ||
|
|
10d8289e09 | ||
|
|
ec5f0151dd | ||
|
|
91d4cdb0aa | ||
|
|
2e1b2ee393 | ||
|
|
754d00052f | ||
|
|
e92778a43b | ||
|
|
fcf094afe8 | ||
|
|
aa1407ab53 | ||
|
|
b52726abd7 | ||
|
|
cad2e9bf3d | ||
|
|
f503567453 | ||
|
|
e6966f7508 | ||
|
|
67236138ba | ||
|
|
1ca9257298 | ||
|
|
e91fd54647 | ||
|
|
30ecfe580a | ||
|
|
0546db5178 | ||
|
|
0f5bf510df | ||
|
|
1c3cf7e704 | ||
|
|
a40bf624f0 | ||
|
|
a7df96e36a | ||
|
|
d52bae8d6f | ||
|
|
63306e9a5f | ||
|
|
9c0f923875 | ||
|
|
382a87107a | ||
|
|
41ce55dfbb | ||
|
|
0dc3d98b5c | ||
|
|
ce5700b02d | ||
|
|
8ccdd35ff1 | ||
|
|
d6cd5d9460 | ||
|
|
b4c9f950bb | ||
|
|
64cbe1eb89 | ||
|
|
34148dcf3e | ||
|
|
01d673a2a9 | ||
|
|
18aa677e16 | ||
|
|
1df0bc649b | ||
|
|
626167621d | ||
|
|
c1ab315e93 | ||
|
|
01357cc09a | ||
|
|
b3baacf4fc | ||
|
|
410705d8cc | ||
|
|
4b985ef8c6 | ||
|
|
33cd861ed7 | ||
|
|
487109d8e1 | ||
|
|
70af05aede | ||
|
|
437d2fad70 | ||
|
|
3124596bdb | ||
|
|
4c05c3842c | ||
|
|
491eea7518 | ||
|
|
b3dc0db891 | ||
|
|
a071ef5d07 | ||
|
|
666532cbb0 | ||
|
|
36230e0847 | ||
|
|
a3fa68f613 | ||
|
|
8d7e659b3f | ||
|
|
ad19da858b | ||
|
|
b32f8332f2 | ||
|
|
0039cf024f | ||
|
|
2b696e3e04 | ||
|
|
34973ecb1e | ||
|
|
a36cd941da | ||
|
|
32713d089c | ||
|
|
7e8ccec670 | ||
|
|
3b65d886e7 | ||
|
|
dac034e4bc | ||
|
|
6841189f4a | ||
|
|
72f8a3dd1e | ||
|
|
8ecbe1eabd | ||
|
|
2035afc6f2 | ||
|
|
60bba80782 | ||
|
|
d58421b3f0 | ||
|
|
d24b71ed26 | ||
|
|
dee3718282 | ||
|
|
92db86b083 | ||
|
|
293f0ee9e4 | ||
|
|
48b8872cf3 | ||
|
|
f49921ef2c | ||
|
|
9c625bf5e9 | ||
|
|
e6d98933fc | ||
|
|
6b510ac0bf | ||
|
|
4a7f24a724 | ||
|
|
7e4fc3cabc | ||
|
|
4d4e2123b0 | ||
|
|
394bce1ddc | ||
|
|
788dbe9e3a | ||
|
|
d56b107576 | ||
|
|
54cb5e4466 | ||
|
|
e67f9f1306 | ||
|
|
aaeafb4b66 | ||
|
|
e238743b4c | ||
|
|
6dd0ca6aa8 | ||
|
|
f5d18f08ee | ||
|
|
3c05b1f774 | ||
|
|
4876323ac5 | ||
|
|
d4f2abf364 | ||
|
|
00e47bbb33 | ||
|
|
71911ebe3c | ||
|
|
fffbc9dbb4 | ||
|
|
6db50d28a4 | ||
|
|
3dc72d3a5c | ||
|
|
fd805829e1 | ||
|
|
94b06437bc | ||
|
|
4b4833a8a7 | ||
|
|
85de5012d8 | ||
|
|
0720f213fd | ||
|
|
145ce91aaf | ||
|
|
895bbc590c | ||
|
|
ee99e485c7 | ||
|
|
ef7230eca4 | ||
|
|
ad53b91327 | ||
|
|
3516ee7a44 | ||
|
|
82904fcac6 | ||
|
|
83f2cfd5dd | ||
|
|
128eba983c | ||
|
|
b750c96e6f | ||
|
|
0fcc690e6e | ||
|
|
cba6cda36d | ||
|
|
682e8b29e7 | ||
|
|
d123321672 | ||
|
|
bf147975a4 | ||
|
|
77daee6562 | ||
|
|
f37aa4bc02 | ||
|
|
f979aa23a2 | ||
|
|
14767bce52 | ||
|
|
669bdac5f1 | ||
|
|
180d2e9945 | ||
|
|
9e770b236e | ||
|
|
117c11d1dd | ||
|
|
58bed79609 | ||
|
|
16c292998c | ||
|
|
ed5893e897 | ||
|
|
9322b5b782 | ||
|
|
c81da23b9a | ||
|
|
99e28a85fe | ||
|
|
3500ac7bd2 | ||
|
|
416fb8b01a | ||
|
|
76f14933a3 | ||
|
|
2286ef3715 | ||
|
|
6e5432325a | ||
|
|
84ed914501 | ||
|
|
08281924c6 | ||
|
|
fcc7a0ac7b | ||
|
|
3b7a2ec88d | ||
|
|
75a6e93ebf | ||
|
|
4a8b17ead8 | ||
|
|
0b1dd3c68b | ||
|
|
cc5050c5b3 | ||
|
|
9dcf293664 | ||
|
|
7e6f9dde37 | ||
|
|
a36a0fe148 | ||
|
|
d7f9dfa307 | ||
|
|
9b6bbded2a | ||
|
|
0080064ff9 | ||
|
|
f92c695634 | ||
|
|
51c4ddba09 | ||
|
|
a3a54b309b | ||
|
|
00757bd720 | ||
|
|
cc45d91d42 | ||
|
|
4e9554066a | ||
|
|
5b905c2d34 | ||
|
|
56b51bddb3 | ||
|
|
4819e9a477 | ||
|
|
ae0d6aff6f | ||
|
|
36f19f22a8 | ||
|
|
e87cdf8681 | ||
|
|
7c2cbb280a | ||
|
|
4e8cee6f6e | ||
|
|
5cc08d171f | ||
|
|
559d8a1a50 | ||
|
|
a16aed7746 | ||
|
|
4eba3cf3bd | ||
|
|
16998dbe6d | ||
|
|
9f8ee811f4 | ||
|
|
23f48ca0cd | ||
|
|
edbd96b7d6 | ||
|
|
deb094a74e | ||
|
|
1f76db37fa | ||
|
|
669539ad1e | ||
|
|
524631b31b | ||
|
|
f0ad8bebc3 | ||
|
|
e3c0d287a6 | ||
|
|
1bf291c099 | ||
|
|
0100fdb51f | ||
|
|
f61bed0de0 | ||
|
|
2e3a61352f | ||
|
|
a47c26cc00 | ||
|
|
9c82ff6299 | ||
|
|
f80ea5c5cc | ||
|
|
7e75a25581 | ||
|
|
08ba01e86f | ||
|
|
5ca4b14be6 | ||
|
|
2591874ae3 | ||
|
|
374dd4df2f | ||
|
|
31f6ce3e5e | ||
|
|
58ba77d3b0 | ||
|
|
6059678129 | ||
|
|
42dd9fc65c | ||
|
|
a9bc847362 | ||
|
|
7aa0e8e03e | ||
|
|
51857315e1 | ||
|
|
2195fe7071 | ||
|
|
4e28945428 | ||
|
|
be5bedf38a | ||
|
|
7e9ce2cadc | ||
|
|
de1a28a09d | ||
|
|
ab8df22628 | ||
|
|
2ef6f86ddc | ||
|
|
fb88f82829 | ||
|
|
eeaf7ad650 | ||
|
|
6e366ee702 | ||
|
|
3abc1d774e | ||
|
|
eaccb89d68 | ||
|
|
85ac1be5a9 | ||
|
|
fa67b962af | ||
|
|
709d0d87ec | ||
|
|
1d26132b76 | ||
|
|
e82a34c179 | ||
|
|
b2e4351818 | ||
|
|
051d8c5b74 | ||
|
|
88886fb945 | ||
|
|
bb6cbddbb9 | ||
|
|
9e56a77273 | ||
|
|
c466c2f9f4 | ||
|
|
8bc12f5f0e | ||
|
|
5d878e1c74 | ||
|
|
efe8cf2c2c | ||
|
|
46facfc6af | ||
|
|
ad18741082 | ||
|
|
402ef55b9a | ||
|
|
beac0943fb | ||
|
|
d9310e8d0c | ||
|
|
eb90db66b1 | ||
|
|
1008cee928 | ||
|
|
911356a547 | ||
|
|
3d35a4ecea | ||
|
|
457cae25af | ||
|
|
f0b34cbc4c | ||
|
|
12cd0d1c32 | ||
|
|
a8c41eb0cb | ||
|
|
4a269285b0 | ||
|
|
2f7b2a3dc4 | ||
|
|
e6d53f3b8f | ||
|
|
22f876e259 | ||
|
|
3271c2f115 | ||
|
|
99e7046e2a | ||
|
|
9c84a52fec | ||
|
|
a961d0700b | ||
|
|
d247c64a20 | ||
|
|
0116f04e0b | ||
|
|
656125d128 | ||
|
|
de267d4afc | ||
|
|
f3eccb47a0 | ||
|
|
acb87aeef3 | ||
|
|
ca3b2c9f33 | ||
|
|
30ebc041dc | ||
|
|
ddc91075ff | ||
|
|
c8f41a5995 | ||
|
|
47dfa45613 | ||
|
|
bcd99673e5 | ||
|
|
1708b7acaf | ||
|
|
d792ce15e1 | ||
|
|
62d1a653ed | ||
|
|
08e614091b | ||
|
|
157f22534c | ||
|
|
dec37b3950 | ||
|
|
02894f9d6f | ||
|
|
c63a1820b8 | ||
|
|
e58a06f13f | ||
|
|
1006d06470 | ||
|
|
28c82a81cb | ||
|
|
405c3c91d3 | ||
|
|
ca269031cb | ||
|
|
1afc32056a | ||
|
|
d3a85f9e98 | ||
|
|
39600187b6 | ||
|
|
401f1f0f4c | ||
|
|
e0d5879509 | ||
|
|
a709bd20ab | ||
|
|
1f59cebda1 | ||
|
|
4ead34a4e1 | ||
|
|
6cbfe77e30 | ||
|
|
a7301951ef | ||
|
|
5a78b5fbbd | ||
|
|
d48ad7fff9 | ||
|
|
7b4fcf577b | ||
|
|
59ab2593c7 | ||
|
|
7fed8c0a87 | ||
|
|
58568cc396 | ||
|
|
83c9b057ba | ||
|
|
5cb9ea1552 | ||
|
|
d7756378bf | ||
|
|
865e651d6c | ||
|
|
a9a90a6a93 | ||
|
|
c69d047cb9 | ||
|
|
04c3f818ae | ||
|
|
881833c6b5 | ||
|
|
783c0c7d81 | ||
|
|
daf4e7814d | ||
|
|
8fde4ef35e | ||
|
|
7b46923f88 | ||
|
|
2009fabf65 | ||
|
|
54f0fde1d4 | ||
|
|
5da518eb65 | ||
|
|
f9780a329f | ||
|
|
62ce4402d7 | ||
|
|
e176c75125 | ||
|
|
8ac5fc3988 | ||
|
|
e975fe72b1 | ||
|
|
25f8a0d47a | ||
|
|
4c9738abeb | ||
|
|
c868f985f0 | ||
|
|
d53869c1ad | ||
|
|
30b8a3750d | ||
|
|
ba7085b955 | ||
|
|
f44d328854 | ||
|
|
e0fc217749 | ||
|
|
09da469c87 | ||
|
|
d35b64a629 | ||
|
|
3ed244cbd6 | ||
|
|
3b224d63a5 | ||
|
|
c4da9b9077 | ||
|
|
e28b2694eb | ||
|
|
8a98d010b3 | ||
|
|
effb68f34b | ||
|
|
e8ee5e7bd7 | ||
|
|
0b31ee3d36 | ||
|
|
dfcbe4e68b | ||
|
|
d6df953ff2 | ||
|
|
5c3183d94e | ||
|
|
22cc2ee9a6 | ||
|
|
398643ddb3 | ||
|
|
15a36d8f28 | ||
|
|
320432603b | ||
|
|
1834582e26 | ||
|
|
63369cc1d6 | ||
|
|
dcfd0f461a | ||
|
|
49761e7a5a | ||
|
|
32b008f10a | ||
|
|
7b49695252 | ||
|
|
a692323aaf | ||
|
|
a5304cb5ca | ||
|
|
aa7aa5c9b9 | ||
|
|
d09809fd5d | ||
|
|
762465b176 | ||
|
|
eebb7faf6a | ||
|
|
1010713b89 | ||
|
|
d0ed57ac6d | ||
|
|
5acc61ef98 | ||
|
|
b697200a34 | ||
|
|
213c31b7f0 | ||
|
|
f86b7141af | ||
|
|
4a984396ec | ||
|
|
49e440bdf4 | ||
|
|
d8120dbd39 | ||
|
|
46fcd2641b | ||
|
|
8e0e673f3b | ||
|
|
d291a31024 | ||
|
|
3085ebf842 | ||
|
|
4fdcc8048a | ||
|
|
f56258cc3b | ||
|
|
650f63e8f0 | ||
|
|
6689137836 | ||
|
|
f3c05030c4 | ||
|
|
d125ccc2b5 | ||
|
|
b5373045e6 | ||
|
|
6a37813f1a | ||
|
|
1f17edd889 | ||
|
|
b727cb4e02 | ||
|
|
6df5d1bf31 | ||
|
|
68379f3611 | ||
|
|
54ca0b8fa9 | ||
|
|
45f88d752b | ||
|
|
2bdc7d368f | ||
|
|
5d1017fe95 | ||
|
|
372546ab03 | ||
|
|
fc95d7ee50 | ||
|
|
e06d160c41 | ||
|
|
62241b2b74 | ||
|
|
39b403195d | ||
|
|
025e78ae5c | ||
|
|
17a61279f0 | ||
|
|
138fd69bd0 | ||
|
|
b9f81d822c | ||
|
|
df7bac2376 | ||
|
|
5261533be1 | ||
|
|
b7eb34948a | ||
|
|
31365d01dc | ||
|
|
3ddfbc6a1d | ||
|
|
e302417ecd | ||
|
|
381dceb809 | ||
|
|
29f85c3ec2 | ||
|
|
a02c9db5ce | ||
|
|
c5a3a22ad7 | ||
|
|
624801ce3a | ||
|
|
5f75ade0a9 | ||
|
|
a55c4243b7 | ||
|
|
5c544b4f1a | ||
|
|
8f5e6bcb85 | ||
|
|
3b5989ba8b | ||
|
|
949b510589 | ||
|
|
578bba453b | ||
|
|
e739e182be | ||
|
|
b8eabc004a | ||
|
|
f63a4f3e76 | ||
|
|
0720e93ed2 | ||
|
|
e031f6f965 | ||
|
|
c6fbcbea6e | ||
|
|
38833ea902 | ||
|
|
8881119e79 | ||
|
|
100ebb54f8 | ||
|
|
c4e8a402d4 | ||
|
|
6ed71d7369 | ||
|
|
6db480f173 | ||
|
|
d2271800c1 | ||
|
|
f757557dc5 | ||
|
|
81eb40d45f | ||
|
|
2abda86bb5 | ||
|
|
f5e9671999 | ||
|
|
530a0aa899 | ||
|
|
a4fed0377e | ||
|
|
20751d7619 | ||
|
|
55a43c02a7 | ||
|
|
811e056dc5 | ||
|
|
a3643d4ac9 | ||
|
|
b285377ce4 | ||
|
|
16e1dd822c | ||
|
|
7e2ce2df0b | ||
|
|
9d0ba1d6f6 | ||
|
|
c45071a4ec | ||
|
|
ea599aa6d8 | ||
|
|
44e146367e | ||
|
|
6976726042 | ||
|
|
0d4db6e728 | ||
|
|
f4afde1500 | ||
|
|
94bc332902 | ||
|
|
68e6afa2de | ||
|
|
4701e8364e | ||
|
|
f49b133f9b | ||
|
|
9f4f08f7a0 | ||
|
|
14d5168832 | ||
|
|
5880d94f10 | ||
|
|
c052af35e3 | ||
|
|
eed08b2f72 | ||
|
|
9f308ef508 | ||
|
|
f5a6df44b3 | ||
|
|
915f6878cf | ||
|
|
0afeeaa7a3 | ||
|
|
3feb176eeb | ||
|
|
6a128e6fda | ||
|
|
8d23e84227 | ||
|
|
17114d2968 | ||
|
|
28a255f545 | ||
|
|
a2512f7af7 | ||
|
|
eb62b9ce92 | ||
|
|
8b9600c443 | ||
|
|
d274b812f4 | ||
|
|
e2305b7b10 | ||
|
|
8c29a7a1e1 | ||
|
|
d5b03ea9a7 | ||
|
|
27514e933f | ||
|
|
2b6e6fc2fe | ||
|
|
c09e5de0bb | ||
|
|
94f43f02bf | ||
|
|
8608fec2e1 | ||
|
|
07b475c6d2 | ||
|
|
9d2e11464d | ||
|
|
ceed17a139 | ||
|
|
e2d5c3d38b | ||
|
|
273d7ae1ac | ||
|
|
0d8effb4e3 | ||
|
|
72b274d5e8 | ||
|
|
8b53654206 | ||
|
|
f9de5c2137 | ||
|
|
8a874ef212 | ||
|
|
46d8748a62 | ||
|
|
88b98b07d3 | ||
|
|
2fbc109dcc | ||
|
|
fcc80a815b | ||
|
|
42132cfd69 | ||
|
|
80c18965c0 | ||
|
|
dc05a35fff | ||
|
|
64a787f9d0 | ||
|
|
2153d22a30 | ||
|
|
c23e051583 | ||
|
|
7c49acdad0 | ||
|
|
18ebb71357 | ||
|
|
fbcc097138 | ||
|
|
c77acbb3a3 | ||
|
|
4d18c58189 | ||
|
|
e64f0650d3 | ||
|
|
b7ebef32b6 | ||
|
|
cefc288ff4 | ||
|
|
363f50d38a | ||
|
|
b8b94af118 | ||
|
|
461cd5b8ad | ||
|
|
e556dfac72 | ||
|
|
31320ee427 | ||
|
|
5a5aef369a | ||
|
|
33b660095e | ||
|
|
664fac1176 | ||
|
|
0c4041a134 | ||
|
|
1a186f9972 | ||
|
|
d689638eba | ||
|
|
b1cd00a21b | ||
|
|
c0d81ca21f | ||
|
|
e32010b1dc | ||
|
|
fb203acdc7 | ||
|
|
1442381017 | ||
|
|
a128904eb8 | ||
|
|
bf01fa444e | ||
|
|
ea25df5af7 | ||
|
|
3c653d581f | ||
|
|
b26ac93d08 | ||
|
|
b6e23f3fdf | ||
|
|
7bc4eb7630 | ||
|
|
ca4ca839a1 | ||
|
|
f9902ab797 | ||
|
|
3d5d6bea82 | ||
|
|
daed59e7a9 | ||
|
|
3da7e1d962 | ||
|
|
19bcf84926 | ||
|
|
54b7aee52c | ||
|
|
c9df173b72 | ||
|
|
0882d1ae5f | ||
|
|
6bb500d7ab | ||
|
|
ace8513ddf | ||
|
|
d2e415786f | ||
|
|
29606081c2 | ||
|
|
cc365ba78c | ||
|
|
a75d0202c7 | ||
|
|
469c9dc8ed | ||
|
|
563a4b3d93 | ||
|
|
4003d69e2c | ||
|
|
6ec85d5776 | ||
|
|
fcb82780ef | ||
|
|
e3ec5c3641 | ||
|
|
875a9ce3f9 | ||
|
|
126a897829 | ||
|
|
8665001b62 | ||
|
|
5a37f4a314 | ||
|
|
7c93113b4a | ||
|
|
f176e64725 | ||
|
|
53e65e2655 | ||
|
|
7342f15b5c | ||
|
|
fe48ae2ca6 | ||
|
|
ddcf6f1577 | ||
|
|
508edb0cb2 | ||
|
|
248449a420 | ||
|
|
b9e170ec44 | ||
|
|
6bad5a3f38 | ||
|
|
b6d2ec4b76 | ||
|
|
3472298dda | ||
|
|
b3baf4b6f1 | ||
|
|
d26ebbb671 | ||
|
|
0db97a80ca | ||
|
|
845a826c03 | ||
|
|
8cf8d7e958 | ||
|
|
78dafc9739 | ||
|
|
b45eda6524 | ||
|
|
955ad8dbb3 | ||
|
|
413e3f9a80 | ||
|
|
7307edec5c | ||
|
|
dc416a91d1 | ||
|
|
3268dc07da | ||
|
|
67aab3a515 | ||
|
|
1d9a0bca3d | ||
|
|
5d2d88ec84 | ||
|
|
7ae7a9354e | ||
|
|
516cfb7790 | ||
|
|
9b944e00b8 | ||
|
|
ea54ef0a40 | ||
|
|
9a4e6cac66 | ||
|
|
dbe761876b | ||
|
|
3267c2a204 | ||
|
|
f290668c58 | ||
|
|
104452c411 | ||
|
|
4f76923227 | ||
|
|
979b7e2864 | ||
|
|
4f25011560 | ||
|
|
69aae05b63 | ||
|
|
4cf71a83eb | ||
|
|
e40a088e63 | ||
|
|
b372189746 | ||
|
|
dd2699e7c6 | ||
|
|
ef85fb87fa | ||
|
|
4026252ba1 | ||
|
|
67f30730c5 | ||
|
|
578d9bd805 | ||
|
|
a84d133806 | ||
|
|
3e9133e642 | ||
|
|
7662ab408c | ||
|
|
c8d663b26d | ||
|
|
b855d5a8c9 | ||
|
|
3cdc81ddfd | ||
|
|
750e6f0013 | ||
|
|
d993b717b8 | ||
|
|
c38d8c4a8b | ||
|
|
685fa8e14d | ||
|
|
06fc8a4dfb | ||
|
|
d1ea08c07a | ||
|
|
f4867bd9db | ||
|
|
08d958ddbf | ||
|
|
e8e8d1963e | ||
|
|
978fe98808 | ||
|
|
27e35aa1c9 | ||
|
|
33048caa9b | ||
|
|
645fadcf3d | ||
|
|
cb589145a5 | ||
|
|
cf5f1f8d21 | ||
|
|
f9109462a3 | ||
|
|
e1a669edd6 | ||
|
|
eee5e9a659 | ||
|
|
ccf55501ae | ||
|
|
80307f8227 | ||
|
|
99bf5bcd90 | ||
|
|
6301517611 | ||
|
|
7c6d971c71 | ||
|
|
d4864bf90d | ||
|
|
00d92bb905 | ||
|
|
4572efc5e3 | ||
|
|
dba7fdb5c3 | ||
|
|
d1b7ed1f8c | ||
|
|
8c48473c73 | ||
|
|
89afe9b092 | ||
|
|
54c9e6a9da | ||
|
|
02b2dee9f1 | ||
|
|
b2704b07c1 | ||
|
|
ee4e078e2b | ||
|
|
2b04c301f0 | ||
|
|
7a6efe2514 | ||
|
|
55b6fb70d5 | ||
|
|
7d2bdd317f | ||
|
|
60dd932e7f | ||
|
|
403f179890 | ||
|
|
2c95893b1a | ||
|
|
fe010ec7e7 | ||
|
|
db03a27465 | ||
|
|
712e28298e | ||
|
|
04f5c8f7f9 | ||
|
|
b39f0681ad | ||
|
|
8614c08d07 | ||
|
|
e4a35b6985 | ||
|
|
31d9d7784e | ||
|
|
91c6abb94b | ||
|
|
5765b9c4ec | ||
|
|
fc54140f28 | ||
|
|
b36916676c | ||
|
|
1a5f8208a9 | ||
|
|
3bbbc31166 | ||
|
|
96b8f23af4 | ||
|
|
1372cde7a0 | ||
|
|
0d642ff271 | ||
|
|
f8053838ae | ||
|
|
9502607fc6 | ||
|
|
da6a8abba4 | ||
|
|
83e9bbe1e7 | ||
|
|
e84f7b0983 | ||
|
|
1303becd13 | ||
|
|
94d7ed3a80 | ||
|
|
2581be717e | ||
|
|
9ff44da39e | ||
|
|
604c66e13b | ||
|
|
4ac0757b4c | ||
|
|
fff636bd7f | ||
|
|
af2ba0878b | ||
|
|
b1c1841ded | ||
|
|
ef6668af88 | ||
|
|
f16c0407c0 | ||
|
|
e0fd227a0f | ||
|
|
3c97cc18a0 | ||
|
|
9f91f9d0ef | ||
|
|
ae3f4111a3 | ||
|
|
78a25b283a | ||
|
|
4b2c064865 | ||
|
|
e28fc7001f | ||
|
|
af49def0b1 | ||
|
|
d1f0bcce12 | ||
|
|
a8e7492981 | ||
|
|
0bad44c507 | ||
|
|
524ef8c583 | ||
|
|
7f7572b48c | ||
|
|
5d1117d7e2 | ||
|
|
725ac87efe | ||
|
|
73ee77ba7d | ||
|
|
0f75d6998d | ||
|
|
c182e185ef | ||
|
|
e580dc9a99 | ||
|
|
23dfa5902f | ||
|
|
9aa6621eac | ||
|
|
26094faf08 | ||
|
|
deeaa2e9bb | ||
|
|
0ef166665a | ||
|
|
5aba88e043 | ||
|
|
1809479da2 | ||
|
|
e1fcbf2fbb | ||
|
|
4f9fe17e4d | ||
|
|
ced48d1827 | ||
|
|
0042c3152f | ||
|
|
0bfdf98cf1 | ||
|
|
4a6e192902 | ||
|
|
edcf781d7a | ||
|
|
af3e3d9ac3 | ||
|
|
5f907ebf37 | ||
|
|
ae31cdf579 | ||
|
|
996330419f | ||
|
|
f117020acc | ||
|
|
bb6f137080 | ||
|
|
b0b51b64e2 | ||
|
|
f482e607c0 | ||
|
|
6ee135ed56 | ||
|
|
b77c681a2b | ||
|
|
24cd2957f8 | ||
|
|
d2b2378fa3 | ||
|
|
0838f41e67 | ||
|
|
f0eb39b49d | ||
|
|
aed7177809 | ||
|
|
76bbeede9c | ||
|
|
5b7d8f0ea8 | ||
|
|
e1cc2d287a | ||
|
|
8b1f5d4a00 | ||
|
|
a0eec1602a | ||
|
|
2d8cdcfc73 | ||
|
|
2529bf885f | ||
|
|
df8b60c372 | ||
|
|
d3565195ac | ||
|
|
df32ae488a | ||
|
|
b7dd26af30 | ||
|
|
e3bd74900d | ||
|
|
389ad7300e | ||
|
|
978cb0379e | ||
|
|
4c36f11c83 | ||
|
|
108bb65d38 | ||
|
|
9d48ca4556 | ||
|
|
604ef0851a | ||
|
|
ea1cfa2887 | ||
|
|
c98e3f26a5 | ||
|
|
221db86228 | ||
|
|
9061812545 | ||
|
|
d44fa879f9 | ||
|
|
aa8117ef0b | ||
|
|
c4e551c861 | ||
|
|
58c3769894 | ||
|
|
abedb3bd4c | ||
|
|
af75a31574 | ||
|
|
1eee00f580 | ||
|
|
dc88752978 | ||
|
|
31c1d0ba9a | ||
|
|
876c7775a4 | ||
|
|
ffb616b941 | ||
|
|
71e073ed7f | ||
|
|
cd8391fd44 | ||
|
|
2bdbac4b42 | ||
|
|
1f47a1ffe0 | ||
|
|
503c5c587e | ||
|
|
00f79c0e65 | ||
|
|
f48873ee99 | ||
|
|
9046eb47a2 | ||
|
|
75866815a0 | ||
|
|
86a5daf321 | ||
|
|
d512f87b4f | ||
|
|
f2b0bd7342 | ||
|
|
43b8e92d72 | ||
|
|
474abcdc2f | ||
|
|
37ed47f892 | ||
|
|
6d17a0dba7 | ||
|
|
35527020e3 | ||
|
|
77224dc4bc | ||
|
|
e63af67737 | ||
|
|
be776476f0 | ||
|
|
97ef1baeda | ||
|
|
d4fc6f4cd9 | ||
|
|
1e1e43fe62 | ||
|
|
294f2203df | ||
|
|
6f0510315d | ||
|
|
78ab5e8f76 | ||
|
|
9457292980 | ||
|
|
71c233a3ab | ||
|
|
4325d45099 | ||
|
|
3beb6188ea | ||
|
|
2369d7e4f6 | ||
|
|
38b597e257 | ||
|
|
8b9295fb51 | ||
|
|
3e7d201ad2 | ||
|
|
5b92116b8b | ||
|
|
bf88b99d94 | ||
|
|
b6b4360012 | ||
|
|
a7b6ec638f | ||
|
|
58727d046f | ||
|
|
1c13ab6ca2 | ||
|
|
1445cd9adf | ||
|
|
f675cbbda5 | ||
|
|
97459ec3c8 | ||
|
|
5380c906de | ||
|
|
c80748b505 | ||
|
|
1157dd4560 | ||
|
|
1610044f3b | ||
|
|
7da2bdd42f | ||
|
|
c388fa9780 | ||
|
|
c3c8a432a6 | ||
|
|
59dc94be2d | ||
|
|
6291542345 | ||
|
|
81e3f08892 | ||
|
|
70b25602fc | ||
|
|
c59ee9a3ea | ||
|
|
7b9282047b | ||
|
|
694d366acf | ||
|
|
c687be6a4f | ||
|
|
6a1b6287f5 | ||
|
|
ac7c17ca6d | ||
|
|
860e0218d4 | ||
|
|
2272a3fc62 | ||
|
|
b3e9abaa30 | ||
|
|
709d597028 | ||
|
|
b1e9c2b55c | ||
|
|
321a05d1bc | ||
|
|
43d210f6e8 | ||
|
|
8704acd522 | ||
|
|
66ff3a583c | ||
|
|
a383123d1c | ||
|
|
59707cec29 | ||
|
|
e2d5d577c7 | ||
|
|
967d6e5661 | ||
|
|
78ff3f9cd8 | ||
|
|
d5b8f98228 | ||
|
|
6f8c23ba90 | ||
|
|
ffb91d4f60 | ||
|
|
162188d54b | ||
|
|
6307d36f9d | ||
|
|
05cbf7872f | ||
|
|
8f54b8acf8 | ||
|
|
116cc60c19 | ||
|
|
06afdbf937 | ||
|
|
149646e68a | ||
|
|
7f3953df8b | ||
|
|
581104cf42 | ||
|
|
637a4ae1cd | ||
|
|
21d95147b2 | ||
|
|
9b8b8ef349 | ||
|
|
3dd9d1299f | ||
|
|
e389aa7abc | ||
|
|
7a4d13332d | ||
|
|
d61b955a87 | ||
|
|
f0069f1dde | ||
|
|
8cad783cbf | ||
|
|
a677046b00 | ||
|
|
4ac6be1e05 | ||
|
|
a4de5ca089 | ||
|
|
5914736506 | ||
|
|
d5fdbc40fb | ||
|
|
19b51dec28 | ||
|
|
155dc2f2a3 | ||
|
|
476de1f5bd | ||
|
|
0ef4aa4bd4 | ||
|
|
59ca101aac | ||
|
|
76d9d9fac3 | ||
|
|
d817887a70 | ||
|
|
fedbc147f6 | ||
|
|
22d9f085d1 | ||
|
|
bffc0beb8e | ||
|
|
56e172a493 | ||
|
|
519a41691a | ||
|
|
9c99dfea2c | ||
|
|
7bd4d8f4dc | ||
|
|
75a4b488d3 | ||
|
|
8ff25ca73b | ||
|
|
912918aec1 | ||
|
|
aaf94dcdc7 | ||
|
|
8d88a9d822 | ||
|
|
a3078f26af | ||
|
|
83c4b4edeb | ||
|
|
2c1f0551ba | ||
|
|
e9d7c18d0b | ||
|
|
ecd3ec3431 | ||
|
|
accb6ea1ef | ||
|
|
a2c79b9d2d | ||
|
|
bd83a1257b | ||
|
|
0a733a2a8b | ||
|
|
c7e6a9d36f | ||
|
|
e2b251ef93 | ||
|
|
b91b2ac24d | ||
|
|
677e09d1df | ||
|
|
98dbfbe04f | ||
|
|
ff728c8e4c | ||
|
|
4a27fd8816 | ||
|
|
912b78d651 | ||
|
|
b0776f3a00 | ||
|
|
70b218a1a2 | ||
|
|
fbe1a62238 | ||
|
|
6630e11dbc | ||
|
|
3be33e21cc | ||
|
|
b9863de452 | ||
|
|
acd7cec9ee | ||
|
|
82f029890f | ||
|
|
146e369863 | ||
|
|
25ca04c7de | ||
|
|
ab5a688e7e | ||
|
|
f3814a867e | ||
|
|
e217a02fe1 | ||
|
|
4743d1f16b | ||
|
|
317680f91f | ||
|
|
ca1bed6c0a | ||
|
|
f3cdbc81d3 | ||
|
|
96d5924752 | ||
|
|
d80f0728a5 | ||
|
|
62ce431817 | ||
|
|
fd7292008a | ||
|
|
d128b3c3a7 | ||
|
|
292cb7a297 | ||
|
|
5bb7d460cd | ||
|
|
642a98fd61 | ||
|
|
5c2a519098 | ||
|
|
79747826a2 | ||
|
|
667352dc5a | ||
|
|
c3deaf2ca0 | ||
|
|
5702ffe4e3 | ||
|
|
1877138f8c | ||
|
|
503e734f8c | ||
|
|
091f749ef3 | ||
|
|
d98627d8c4 | ||
|
|
c57f4956e5 | ||
|
|
3363b9a5ba | ||
|
|
13fa7095e9 | ||
|
|
beb0497524 | ||
|
|
d70e796429 | ||
|
|
f2d420ab81 | ||
|
|
4d43b258ef | ||
|
|
babe5548f1 | ||
|
|
4cc433277f | ||
|
|
0b4029396f | ||
|
|
29aa913f86 | ||
|
|
22beff0e80 | ||
|
|
8886d50be3 | ||
|
|
f6a680b37d | ||
|
|
6651bb0dc5 | ||
|
|
3cde3f0df1 | ||
|
|
63ab7ea0e9 | ||
|
|
2e56839949 | ||
|
|
521db06cb0 | ||
|
|
4b7f07e96b | ||
|
|
5e96e5fa2b | ||
|
|
65427adcff | ||
|
|
580c71f534 | ||
|
|
5b2db833c7 | ||
|
|
4011f86897 | ||
|
|
c6567b39d8 | ||
|
|
d42a57a448 | ||
|
|
2fc088463c | ||
|
|
4bad4b1c48 | ||
|
|
03590b9346 | ||
|
|
869d7b01c3 | ||
|
|
3282d5cf47 | ||
|
|
e9ae584595 | ||
|
|
1a31d98153 | ||
|
|
3804568506 | ||
|
|
1965c5e657 | ||
|
|
2669bdbfb6 | ||
|
|
2fba57515a | ||
|
|
f7b58d3270 | ||
|
|
01b28afdeb | ||
|
|
449ccde962 | ||
|
|
2014ddedf3 | ||
|
|
700096bdbb | ||
|
|
7274755552 | ||
|
|
91154b9c6f | ||
|
|
1dbdf971b9 | ||
|
|
f77d9f7ed1 | ||
|
|
e52e178a1c | ||
|
|
ab153a7131 | ||
|
|
0b3278283d | ||
|
|
d0d5c2ba4d | ||
|
|
4a0b2453d8 | ||
|
|
4ec496bee3 | ||
|
|
90189cd03a | ||
|
|
90d19ebc31 | ||
|
|
e991a92269 | ||
|
|
736765bf2f | ||
|
|
bb3acdab06 | ||
|
|
a660fd3d91 | ||
|
|
7c02c55832 | ||
|
|
4fd4ae6eca | ||
|
|
a04b84bee4 | ||
|
|
1d37448e0b | ||
|
|
08fbcbec20 | ||
|
|
d6175806b0 | ||
|
|
7737b65f20 | ||
|
|
9722cc356f | ||
|
|
c9c5ab0911 | ||
|
|
fd39729255 | ||
|
|
6f044e3de4 | ||
|
|
ee5d2165f2 | ||
|
|
81c2983272 | ||
|
|
b37257ab5d | ||
|
|
378eb06e33 | ||
|
|
868e1fca5c | ||
|
|
aaacc40eed | ||
|
|
65a6b91c91 | ||
|
|
ac5307d405 | ||
|
|
f35b545b3f | ||
|
|
74781d6d43 | ||
|
|
30eb290d21 | ||
|
|
eb1a15397b | ||
|
|
f2bf429975 | ||
|
|
34dd79c0e7 | ||
|
|
7c4f2bb8b0 | ||
|
|
d609ab7481 | ||
|
|
fea11b7808 | ||
|
|
954ec045ef | ||
|
|
46e7a3204b | ||
|
|
820b401831 | ||
|
|
3e5741de29 | ||
|
|
b5cadf79f2 | ||
|
|
70e588305e | ||
|
|
c6f0910e02 | ||
|
|
0e9959a96c | ||
|
|
6419fa0499 | ||
|
|
61b3520469 | ||
|
|
0d66d8ffd1 | ||
|
|
452df6869f | ||
|
|
eb4890806e | ||
|
|
cce699efce | ||
|
|
ebdc1b4e82 | ||
|
|
478b9ac768 | ||
|
|
26c809b213 | ||
|
|
49fe1c1ddc | ||
|
|
5acde472cb | ||
|
|
0bed4d835e | ||
|
|
8c4e6c8242 | ||
|
|
90c94d6cb8 | ||
|
|
2e6d2ca191 | ||
|
|
7c3176f711 | ||
|
|
d50785badd | ||
|
|
899d1f4328 | ||
|
|
2c6e482a6a | ||
|
|
8566c2d0d7 | ||
|
|
28dae8b08d | ||
|
|
1eb3a3c02b | ||
|
|
803df13202 | ||
|
|
f7a26c0826 | ||
|
|
ba6514f8a1 | ||
|
|
c4d55ac1a3 | ||
|
|
ba5075b637 | ||
|
|
802ba5fb3e | ||
|
|
5bdb705780 | ||
|
|
6149c4e1fe | ||
|
|
f264ae28e1 | ||
|
|
6201da947f | ||
|
|
cce85dada4 | ||
|
|
249bf4bb16 | ||
|
|
22999b7e65 | ||
|
|
a97d4217c4 | ||
|
|
6db5efac43 | ||
|
|
8e7a946370 | ||
|
|
2ea003dc75 | ||
|
|
68ca1a7011 | ||
|
|
f8a6590635 | ||
|
|
d1f6d18116 | ||
|
|
839bbe85f4 | ||
|
|
784377d1ab | ||
|
|
c0f93b3bce | ||
|
|
fa0686de49 | ||
|
|
29ed7ec7eb | ||
|
|
b875be2dfd | ||
|
|
79f2a1ddc4 | ||
|
|
75c7cbde96 | ||
|
|
bce2d5a9ec | ||
|
|
a58a5a2f84 | ||
|
|
189bcc7429 | ||
|
|
ef3414717e | ||
|
|
e4e5de43a5 | ||
|
|
831f93fcec | ||
|
|
acf5fbccfe | ||
|
|
4215ad440f | ||
|
|
af3441224b | ||
|
|
f1e7e38a27 | ||
|
|
159069b79b | ||
|
|
5f02023d30 | ||
|
|
1db01bb18d | ||
|
|
9a1cda82dc | ||
|
|
845d0ae953 | ||
|
|
b98e982f82 | ||
|
|
f188b3581a | ||
|
|
3a2190bdb8 | ||
|
|
5593fbe120 | ||
|
|
fb74b4b6b1 | ||
|
|
df3d15745c | ||
|
|
ea7c43d286 | ||
|
|
dd66380a15 | ||
|
|
67c08eaf03 | ||
|
|
8c59370dcf | ||
|
|
15812b4c4a | ||
|
|
53b0183d5d | ||
|
|
379d3711e0 | ||
|
|
cedd1cc07b | ||
|
|
fab41acf6b | ||
|
|
0d52204571 | ||
|
|
24a8bd8b82 | ||
|
|
5c9d865cc3 | ||
|
|
b2249b5a0a | ||
|
|
7040150674 | ||
|
|
cfbfad7fbe | ||
|
|
6717ab0b47 | ||
|
|
05287b2bb4 | ||
|
|
cb67d657b8 | ||
|
|
310b300429 | ||
|
|
ba34d68996 | ||
|
|
bb0b085a97 | ||
|
|
4f5b5f67e2 | ||
|
|
277ff765c2 | ||
|
|
e990648cc4 | ||
|
|
5f3aafcf9a | ||
|
|
3cf99cd00c | ||
|
|
5c80963a94 | ||
|
|
40191bd2e6 | ||
|
|
82adccc892 | ||
|
|
526a51a92d | ||
|
|
b42a5a6e2a | ||
|
|
3efc74f141 | ||
|
|
797a6dfde2 | ||
|
|
539c373ef9 | ||
|
|
8a993e1bc5 | ||
|
|
5f9084e934 | ||
|
|
cfe8487dfc | ||
|
|
be788baa05 | ||
|
|
1b71f69cf3 | ||
|
|
3fa7982098 | ||
|
|
5acd27e840 | ||
|
|
b66df5575e | ||
|
|
bc529e8310 | ||
|
|
fbbda9c339 | ||
|
|
9a264706fb | ||
|
|
99f9164af5 | ||
|
|
810a398266 | ||
|
|
8b97b504c5 | ||
|
|
d12df2bd78 | ||
|
|
6298f05d5f | ||
|
|
888f0167e0 | ||
|
|
3b07003557 | ||
|
|
58bedd68bd | ||
|
|
3cabc863f0 | ||
|
|
8af3ee8184 | ||
|
|
9a4262b6e7 | ||
|
|
9ec65810f8 | ||
|
|
f921c272b3 | ||
|
|
c540bb5f54 | ||
|
|
884c87647b | ||
|
|
43452cc27a | ||
|
|
02a079d2e9 | ||
|
|
eb001f2264 | ||
|
|
13cacfbfaf | ||
|
|
7bf3bfb5d5 | ||
|
|
2a96a5cca4 | ||
|
|
b32b08873b | ||
|
|
8017513b0d | ||
|
|
b1e3aeacc3 | ||
|
|
355da18e0a | ||
|
|
cf70b10a18 | ||
|
|
cfbb8d7713 | ||
|
|
4493b3d9bb | ||
|
|
70d63697de | ||
|
|
316b487820 | ||
|
|
c9d30b6d3f | ||
|
|
47a3b65634 | ||
|
|
0d8d749038 | ||
|
|
7e3f2bce37 | ||
|
|
45501d505c | ||
|
|
fbd9f427a8 | ||
|
|
827d37e493 | ||
|
|
59f2799864 | ||
|
|
552ce53c68 | ||
|
|
538c4855b3 | ||
|
|
38d548de59 | ||
|
|
7e28970209 | ||
|
|
80b7163de7 | ||
|
|
10ad9faadf | ||
|
|
b574bc24c7 | ||
|
|
8288c4fde5 | ||
|
|
ee6f314fe3 | ||
|
|
89637c867d | ||
|
|
7c79d2ac72 | ||
|
|
2e3977f223 | ||
|
|
a1cdf1c4a3 | ||
|
|
da2c42b898 | ||
|
|
c3333de6bb | ||
|
|
7e87dff5f2 | ||
|
|
27c91e47d3 | ||
|
|
8b2bb559bf | ||
|
|
933ab8ba89 | ||
|
|
e048af5f43 | ||
|
|
7eb0c5851c | ||
|
|
75b85b75b9 | ||
|
|
9897434952 | ||
|
|
cea22b63ee | ||
|
|
d554677748 | ||
|
|
d873f494e9 | ||
|
|
d483f26ec4 | ||
|
|
53d4fe33f9 | ||
|
|
cb3d118175 | ||
|
|
b03e104cf6 | ||
|
|
3f7a4b9298 | ||
|
|
dfbfcbe8fd | ||
|
|
7148b1baf6 | ||
|
|
71c4a72a5d | ||
|
|
9aeb43f386 | ||
|
|
faea2b4f53 | ||
|
|
b28884d736 | ||
|
|
015e16171a | ||
|
|
508b1b8fcc | ||
|
|
daea681137 | ||
|
|
623b010e24 | ||
|
|
047b38e638 | ||
|
|
23d1a52d4e | ||
|
|
493e45383f | ||
|
|
aa4aff621e | ||
|
|
84c1448cf1 | ||
|
|
8537ff22f1 | ||
|
|
98e4f44092 | ||
|
|
25a53b3d07 | ||
|
|
ea7580d5a4 | ||
|
|
85ee9d5e74 | ||
|
|
8c3660e9f1 | ||
|
|
550e082f75 | ||
|
|
ecb5897518 | ||
|
|
8884622f6d | ||
|
|
4f4d1fbba0 | ||
|
|
522a9c470b | ||
|
|
71b2806a31 | ||
|
|
e20fadd5ec | ||
|
|
fc882c1882 | ||
|
|
03968c9868 | ||
|
|
01962f2114 | ||
|
|
1a855f8050 | ||
|
|
d86f31babd | ||
|
|
313f1266ac | ||
|
|
617d4e6caf | ||
|
|
db62b8e51a | ||
|
|
da16352eb2 | ||
|
|
30906aff18 | ||
|
|
cfe716874c | ||
|
|
899933944c | ||
|
|
98efeb74a4 | ||
|
|
864a1e49dd | ||
|
|
6051e0747d | ||
|
|
f21d7390c2 | ||
|
|
48f48b0531 | ||
|
|
ea697a71eb | ||
|
|
3941567395 | ||
|
|
ee0a029a52 | ||
|
|
a249eb56e4 | ||
|
|
7491480071 | ||
|
|
45c0179892 | ||
|
|
8938b22249 | ||
|
|
65ba7f5f53 | ||
|
|
e845317642 | ||
|
|
b2f719ea2f | ||
|
|
da94d7bd19 | ||
|
|
0593345a43 | ||
|
|
45a81b623d | ||
|
|
59e9c9b9b4 | ||
|
|
4d04b8e379 | ||
|
|
22547ddd26 | ||
|
|
b0144acfc0 | ||
|
|
a63a26f8bc | ||
|
|
7fcc8c3051 | ||
|
|
0a68431a9e | ||
|
|
66bb6bc820 | ||
|
|
1e29c8f16f | ||
|
|
9fbc60b866 | ||
|
|
0b8dea9e74 | ||
|
|
d9b888969a | ||
|
|
c20a0fc6da | ||
|
|
a5345b3bb1 | ||
|
|
06c4d01fc9 | ||
|
|
b7a88795be | ||
|
|
602d93959c | ||
|
|
fb663ad3c2 | ||
|
|
2c38b0be6f | ||
|
|
89e76f2dae | ||
|
|
c6b925a80e | ||
|
|
11426075b6 | ||
|
|
5ddb57292a | ||
|
|
c50b5533e2 | ||
|
|
7782562e59 | ||
|
|
975bd8ef19 | ||
|
|
02f8ba617a | ||
|
|
e8de1c5b6d | ||
|
|
7c02656731 | ||
|
|
5537514464 | ||
|
|
0e053f1b70 | ||
|
|
64a2057115 | ||
|
|
f156fa99a6 | ||
|
|
0e00f91104 | ||
|
|
1f9c5c6398 | ||
|
|
47726914f9 | ||
|
|
c6d139ec3c | ||
|
|
ac93bbb6ce | ||
|
|
3a05cc0c9a | ||
|
|
555f137cd0 | ||
|
|
35069c1b90 | ||
|
|
b56308c666 | ||
|
|
1cfb094c31 | ||
|
|
c93e19b3ee | ||
|
|
2f3047cc04 | ||
|
|
02b4c6b2a6 | ||
|
|
c00070e3de | ||
|
|
c70f0d8492 | ||
|
|
c3155465c6 | ||
|
|
a9aa491f1c | ||
|
|
1e64146033 | ||
|
|
340b7850b8 | ||
|
|
bc0499ba41 | ||
|
|
5f7ac5ddc6 | ||
|
|
2b4b32cbc1 | ||
|
|
440043601c | ||
|
|
2cf1534f26 | ||
|
|
7a573ead61 | ||
|
|
8dc612fe39 | ||
|
|
8447a270cc | ||
|
|
5c0abd7383 | ||
|
|
2f3c068dd8 | ||
|
|
5d3f5942a0 | ||
|
|
04b01e3458 | ||
|
|
f6fc79c804 | ||
|
|
2a91b4d6e4 | ||
|
|
a35abe020f | ||
|
|
17afd8f6bb | ||
|
|
21dcbc4de1 | ||
|
|
1b7238f9ac | ||
|
|
20b178f89a | ||
|
|
e2f376bd8f | ||
|
|
e2dc488683 | ||
|
|
d5d053a293 | ||
|
|
5bd8cdeb5b | ||
|
|
c3516e7bcb | ||
|
|
994d25c01d | ||
|
|
5f32c00391 | ||
|
|
4873b49a33 | ||
|
|
9d06815e9d | ||
|
|
e86ad290ff | ||
|
|
40104e8c58 | ||
|
|
8acfe5dcf5 | ||
|
|
93c1337853 | ||
|
|
356b754574 | ||
|
|
bf00f079b8 | ||
|
|
2621ab6f64 | ||
|
|
d7a3507c3f | ||
|
|
410d7d7ed6 | ||
|
|
a8b33c928c | ||
|
|
695455a346 | ||
|
|
5941cd13c7 | ||
|
|
d04ec07efc | ||
|
|
6d178206f0 | ||
|
|
9dddd1c10b | ||
|
|
107cbe6984 | ||
|
|
5ae9b2b213 | ||
|
|
2992078c91 | ||
|
|
7d83af1afc | ||
|
|
4569f941d9 | ||
|
|
82749f4cee | ||
|
|
2e207cf7c5 | ||
|
|
37e91ad475 | ||
|
|
ed7e9c7c78 | ||
|
|
f05c65ecb5 | ||
|
|
b0af263fa4 | ||
|
|
0cb0b67ef2 | ||
|
|
dccebaed1c | ||
|
|
3a0a9f2841 | ||
|
|
6379cf0c36 | ||
|
|
7190e7df0c | ||
|
|
d9812a3701 | ||
|
|
b881e361df | ||
|
|
34c283a4b1 | ||
|
|
c1a7214bc4 | ||
|
|
a5376c5930 | ||
|
|
cf0592dc5b | ||
|
|
a6e7658a2c | ||
|
|
9a5863cb1a | ||
|
|
ea9146c239 | ||
|
|
ad1f3832d2 | ||
|
|
c28af2e0d0 | ||
|
|
0c5e89d999 | ||
|
|
b72a3dab4d | ||
|
|
fcbd694c49 | ||
|
|
24e6abb396 | ||
|
|
3d80f9c51a | ||
|
|
a1e7b1d4cd | ||
|
|
ca7a7b86ad | ||
|
|
c987f681be | ||
|
|
4e360d0ad8 | ||
|
|
f7e275f1c7 | ||
|
|
de8cebfad9 | ||
|
|
bb5298607d | ||
|
|
31008daf01 | ||
|
|
251f4c8b02 | ||
|
|
7671383fb4 | ||
|
|
8f1fa1c3dc | ||
|
|
1d7b0777f6 | ||
|
|
973362731e | ||
|
|
8ba3180a7c | ||
|
|
5d16a6fb86 | ||
|
|
f5e49476e2 | ||
|
|
72ec4a367e | ||
|
|
5cc8ed3dd3 | ||
|
|
9bc0d49202 | ||
|
|
383bc0518f | ||
|
|
81d62a1dc3 | ||
|
|
bf4a5cde69 | ||
|
|
1286645404 | ||
|
|
c3d078d50f | ||
|
|
ecaf405420 | ||
|
|
e01ea3e990 | ||
|
|
32a969529f | ||
|
|
e98d724eed | ||
|
|
312ec40931 | ||
|
|
52e443196e | ||
|
|
1e4f78434a | ||
|
|
a49b907f28 | ||
|
|
ee231d0358 | ||
|
|
33a73e7e3c | ||
|
|
84c2e56775 | ||
|
|
f8d501ba27 | ||
|
|
5c6ecae0a5 | ||
|
|
58a08011a6 | ||
|
|
c3354d1427 | ||
|
|
6753235990 | ||
|
|
d341f28007 | ||
|
|
03875f2440 | ||
|
|
8d630e71a4 | ||
|
|
046d1018f0 | ||
|
|
1e79d71c95 | ||
|
|
33a199e2de | ||
|
|
0006948eb9 | ||
|
|
8184f86833 | ||
|
|
cbe137d61f | ||
|
|
2f62a52387 | ||
|
|
62181a18ab | ||
|
|
c1ab3af3d9 | ||
|
|
77ea7f07cd | ||
|
|
9d61b96e60 | ||
|
|
c231397ad8 | ||
|
|
b59f5e1262 | ||
|
|
26621e837b | ||
|
|
0387583e0c | ||
|
|
12c1db69d2 | ||
|
|
4a63b79670 | ||
|
|
5c8816b6f0 | ||
|
|
b76b8a6c4d | ||
|
|
6bb879412b | ||
|
|
f2cad14886 | ||
|
|
69821eb5c2 | ||
|
|
320564bf53 | ||
|
|
16f026d7ac | ||
|
|
5249473a1a | ||
|
|
dc8837a9d0 | ||
|
|
df9ff4f8b3 | ||
|
|
81ae632bf3 | ||
|
|
8ab960b469 | ||
|
|
b58f467aa9 | ||
|
|
e28765735a | ||
|
|
05b2c1696b | ||
|
|
f5854dbfa0 | ||
|
|
3dd55bef30 | ||
|
|
87d879d58d | ||
|
|
8022ef78c1 | ||
|
|
956923c9a8 | ||
|
|
6ee69d7344 | ||
|
|
584014e6c4 | ||
|
|
59211401f2 | ||
|
|
79db08bb13 | ||
|
|
4c3b284f85 | ||
|
|
a56bf0c739 | ||
|
|
225cabba17 | ||
|
|
ac0441252a | ||
|
|
c2e17d19e6 | ||
|
|
9f12e23f5f | ||
|
|
2c94f35047 | ||
|
|
69ad16b80e | ||
|
|
f4dfa401ce | ||
|
|
31ef22fde8 | ||
|
|
754ef51339 | ||
|
|
d991c9355d | ||
|
|
35eac4d597 | ||
|
|
52eb08b166 | ||
|
|
97baaa189e | ||
|
|
4c6e75f263 | ||
|
|
49b5135874 | ||
|
|
ebab4d331b | ||
|
|
3b211491be | ||
|
|
d4ddb24733 | ||
|
|
82bf5b8083 | ||
|
|
9f6860e846 | ||
|
|
a61d358e7e | ||
|
|
c8e1ac4e14 | ||
|
|
287975a133 | ||
|
|
ff134a5140 | ||
|
|
32516c0d45 | ||
|
|
18fc8571e3 | ||
|
|
fff4512a49 | ||
|
|
988a1ed0b5 | ||
|
|
697c82e6d4 | ||
|
|
09bb36d508 | ||
|
|
58764337d2 | ||
|
|
3271e815e9 | ||
|
|
ec4f661010 | ||
|
|
a61163430a | ||
|
|
7885345731 | ||
|
|
3a9f638b90 | ||
|
|
1547aafb11 | ||
|
|
d163bae4ee | ||
|
|
f40f58de21 | ||
|
|
f2f6c59dc6 | ||
|
|
a6515b9e76 | ||
|
|
7fe7922fdc | ||
|
|
781978d1f9 | ||
|
|
5b0bbfac04 | ||
|
|
3a7b25e6fe | ||
|
|
eaf64c6caa | ||
|
|
c3c61ffde0 | ||
|
|
4f1380e721 | ||
|
|
6728de00a1 | ||
|
|
f31d5ca6ea | ||
|
|
6935bc973c | ||
|
|
ed2d4d283f | ||
|
|
1aacb40069 | ||
|
|
5f82aec041 | ||
|
|
08cace289c | ||
|
|
0c14bd9fcc | ||
|
|
bbc19da434 | ||
|
|
a0395bfb34 | ||
|
|
e35cb84b11 | ||
|
|
7a58f559d2 | ||
|
|
b399a371d9 | ||
|
|
773e8ae093 | ||
|
|
647969cfa4 | ||
|
|
b330d24f90 | ||
|
|
cdf1ffd9c3 | ||
|
|
855f6b1a9f | ||
|
|
de2eb2971b | ||
|
|
260ccb7bf8 | ||
|
|
e5d6fa4771 | ||
|
|
b5bfecb4d9 | ||
|
|
59d72c1636 | ||
|
|
640939bcf1 | ||
|
|
2f4bb23c14 | ||
|
|
2e6709b92e | ||
|
|
c4ac5f9b08 | ||
|
|
e5b063c39e | ||
|
|
4dc2650bdc | ||
|
|
1ed1d1ec42 | ||
|
|
742340aa21 | ||
|
|
c5765b12ba | ||
|
|
576a766a16 | ||
|
|
7ecd0c109e | ||
|
|
c39061546e | ||
|
|
bfd66bc1de | ||
|
|
6e5ec90607 | ||
|
|
ae71790626 | ||
|
|
6b394a4837 | ||
|
|
2ad8d843f1 | ||
|
|
16968a01cc | ||
|
|
5892030831 | ||
|
|
a4ee811dde | ||
|
|
6061d7c71f | ||
|
|
857c600ce5 | ||
|
|
63809ce3ea | ||
|
|
3407fb4cac | ||
|
|
e406ab2c93 | ||
|
|
07832275dd | ||
|
|
be51b85c67 | ||
|
|
d226dd77c7 | ||
|
|
5a1d2e6aa5 | ||
|
|
4a2da512df | ||
|
|
8b883e640b | ||
|
|
15b4b919cd | ||
|
|
712e9194a6 | ||
|
|
462ae22c49 | ||
|
|
444c027764 | ||
|
|
ef3c399ab2 | ||
|
|
7e5c32c8ff | ||
|
|
5a082eed62 | ||
|
|
7a13197535 | ||
|
|
8e5c20ba6e | ||
|
|
adb9044711 | ||
|
|
45484b9593 | ||
|
|
73977fdbd5 | ||
|
|
1ce46dbbf6 | ||
|
|
c79ba84a55 | ||
|
|
8ac7db68cc | ||
|
|
7ab61af3fe | ||
|
|
7e02c4efaf | ||
|
|
1e231691ef | ||
|
|
b40bcf4070 | ||
|
|
286a0f5062 | ||
|
|
1c9b06aa62 | ||
|
|
6f8161e730 | ||
|
|
b84ef2ffa2 | ||
|
|
9999bd3bfa | ||
|
|
878280185f | ||
|
|
6997da712e | ||
|
|
14232a4c38 | ||
|
|
1d59c3cb9e | ||
|
|
e1ff1d1ede | ||
|
|
2ab32174ff | ||
|
|
2dd989341d | ||
|
|
f1ff38456b | ||
|
|
27d9417d87 | ||
|
|
a210fa8689 | ||
|
|
e708773a42 | ||
|
|
3ca9939e1f | ||
|
|
f7eb4d777a | ||
|
|
823e66375d | ||
|
|
0c9e055cfe | ||
|
|
2054935104 | ||
|
|
161e0bdcbf | ||
|
|
2b857f2e8f | ||
|
|
8b39da629f | ||
|
|
75c4ef3197 | ||
|
|
7ff2ad3d84 | ||
|
|
83cb706139 | ||
|
|
10f7bd4e32 | ||
|
|
b5e3a5ddb2 | ||
|
|
628a5d3a37 | ||
|
|
ca55eae699 | ||
|
|
4546228ff1 | ||
|
|
b353fc476b | ||
|
|
9adf9d8fa1 | ||
|
|
9f730b7457 | ||
|
|
88df928d30 | ||
|
|
bbc94dd30d | ||
|
|
8c6a85f946 | ||
|
|
c98ffc56f3 | ||
|
|
667f4782e2 | ||
|
|
7c1433a05b | ||
|
|
ff9d57ca14 | ||
|
|
fcf6e2297b | ||
|
|
9cf52cddd7 | ||
|
|
5b90ff0d02 | ||
|
|
a48c216a52 | ||
|
|
19baa0e1cc | ||
|
|
f4cc57db51 | ||
|
|
4f3908c8a3 | ||
|
|
5769263919 | ||
|
|
684fa63543 | ||
|
|
0f5dbfb876 | ||
|
|
70ab0b7a0c | ||
|
|
8b1734769e | ||
|
|
260df5e69f | ||
|
|
6d34841da3 | ||
|
|
2530111c3e | ||
|
|
ea86153305 | ||
|
|
b561a101af | ||
|
|
3f98b3f9c9 | ||
|
|
5614cf5efa | ||
|
|
0265b80fe5 | ||
|
|
ed2dc52458 | ||
|
|
dfbef7803d | ||
|
|
5c5b1de5b8 | ||
|
|
d3b204d864 | ||
|
|
e478251850 | ||
|
|
f2ee5ba794 | ||
|
|
fcf473ad4a | ||
|
|
33c3cc7453 | ||
|
|
0452ef3253 | ||
|
|
adb1f327cf | ||
|
|
04239ea561 | ||
|
|
c5f8d07cd1 | ||
|
|
2c7433214a | ||
|
|
9e5a0a0a2d | ||
|
|
4a8a3938b7 | ||
|
|
8d8047e76b | ||
|
|
45172da556 | ||
|
|
ecbe4ac035 | ||
|
|
b7c58dc05f | ||
|
|
90ee5a032b | ||
|
|
e1ff08ce5a | ||
|
|
2a88f2e679 | ||
|
|
f28319fb80 | ||
|
|
a6b7f7f9d0 | ||
|
|
fcdddbed88 | ||
|
|
b617780eb6 | ||
|
|
0f5404cf23 | ||
|
|
1ec1460f83 | ||
|
|
bd8f72cec5 | ||
|
|
8c96cd6675 | ||
|
|
99c0839c1a | ||
|
|
a0f3bc8044 | ||
|
|
74a5dab548 | ||
|
|
9c02cce5c5 | ||
|
|
6b76410d72 | ||
|
|
b5ae6488fe | ||
|
|
ef232e0a18 | ||
|
|
51e9c441f7 | ||
|
|
c03a1e8789 | ||
|
|
d12f3a73d3 | ||
|
|
334025e2b0 | ||
|
|
03a2c9cd7c | ||
|
|
f81f17e5f0 | ||
|
|
6811dc3c04 | ||
|
|
b935aca974 | ||
|
|
c360a17593 | ||
|
|
918f54fc3d | ||
|
|
7a1a2abd7e | ||
|
|
82a8442bad | ||
|
|
bdab4b844c | ||
|
|
3736eecc9a | ||
|
|
def66459b3 | ||
|
|
b92c146173 | ||
|
|
c053eb5c75 | ||
|
|
e75817065a | ||
|
|
57c3dc0f86 | ||
|
|
effb8c2e06 | ||
|
|
171942295e | ||
|
|
157ade3fc8 | ||
|
|
52309ed713 | ||
|
|
7386956975 | ||
|
|
6e67985da1 | ||
|
|
7bc4318ace | ||
|
|
199e9a5d74 | ||
|
|
215e70fc83 | ||
|
|
49b139878f | ||
|
|
fc20e23771 | ||
|
|
3e0a06bb28 | ||
|
|
7a4f189d06 | ||
|
|
c8278e8f50 | ||
|
|
7cec8e0e78 | ||
|
|
8e3049342e | ||
|
|
8f05979930 | ||
|
|
cf743b04e6 | ||
|
|
35018a9a1c | ||
|
|
568af58ea9 | ||
|
|
802e51b832 | ||
|
|
8f90599931 | ||
|
|
e1ea0e2274 | ||
|
|
660651207b | ||
|
|
4c065e25db | ||
|
|
8c0ade4019 | ||
|
|
28637f97a8 | ||
|
|
12c46f367c | ||
|
|
49ba8d605d | ||
|
|
c428d97242 | ||
|
|
9548528386 | ||
|
|
4810aa9175 | ||
|
|
f081c973fd | ||
|
|
7f7190d230 | ||
|
|
fbd2c70ddf | ||
|
|
66373a61aa | ||
|
|
8aee5b8f6a | ||
|
|
6a7e75b670 | ||
|
|
f36fcc5e6a | ||
|
|
507dafeb7a | ||
|
|
1a0a03e480 | ||
|
|
50556eaecf | ||
|
|
350fc06478 | ||
|
|
3076c9279b | ||
|
|
9602f7e5b7 | ||
|
|
bf1ba27124 | ||
|
|
30b52ab92f | ||
|
|
fdaca90ccc | ||
|
|
8ee315b576 | ||
|
|
5847e2ddbf | ||
|
|
6c070d6022 | ||
|
|
edadee6bf2 | ||
|
|
3a10c92ce3 | ||
|
|
907dc8ac16 | ||
|
|
0d597890a4 | ||
|
|
7392f7845f | ||
|
|
0ca44b2fe7 | ||
|
|
8dc5f4c6a3 | ||
|
|
1de6ebabe7 | ||
|
|
7d5dc3cc88 | ||
|
|
de2d4d178e | ||
|
|
9860977887 | ||
|
|
bf0d6a6573 | ||
|
|
58487b2011 | ||
|
|
c35252d13b | ||
|
|
37c55d0dfc | ||
|
|
800a87efe3 | ||
|
|
ed4bbe7bb6 | ||
|
|
00133b9480 | ||
|
|
9b1263c24e | ||
|
|
894ffda240 | ||
|
|
6c1f4a5da1 | ||
|
|
ae7819ec0a | ||
|
|
26c69be822 | ||
|
|
35ab9543dc | ||
|
|
ddd904ba67 | ||
|
|
0a0fdd6a55 | ||
|
|
2e8c70ed3f | ||
|
|
b78e697085 | ||
|
|
5750d24a0a | ||
|
|
5382e768b7 | ||
|
|
82e3c6a7ed | ||
|
|
d20ae48912 | ||
|
|
64b9cf7238 | ||
|
|
7541555221 | ||
|
|
ab49771b70 | ||
|
|
f8519ba939 | ||
|
|
0392da7718 | ||
|
|
b111554271 | ||
|
|
b370547cff | ||
|
|
f09edf6403 | ||
|
|
192330e16d | ||
|
|
d52e2c0974 | ||
|
|
c1330dea01 | ||
|
|
06720da029 | ||
|
|
a3ccbf5782 | ||
|
|
f2a50a4d7f | ||
|
|
e69f646ec5 | ||
|
|
57b89f7163 | ||
|
|
e9fcd4f858 | ||
|
|
d37de69941 | ||
|
|
a54e69a45b | ||
|
|
101adea303 | ||
|
|
33ab027c56 | ||
|
|
dc12b69325 | ||
|
|
a5ff1182c1 | ||
|
|
8af7ad2bee | ||
|
|
1b485d4f7e | ||
|
|
b8c6ed5501 | ||
|
|
f8a7e362b6 | ||
|
|
ac5c7e20aa | ||
|
|
4bf700edd2 | ||
|
|
dc310289b0 | ||
|
|
7e0f4f8f7c | ||
|
|
929f475280 | ||
|
|
1ca28469fd | ||
|
|
f58b702348 | ||
|
|
652d0fc6ac | ||
|
|
5c2b581144 | ||
|
|
2f33d99a7b | ||
|
|
6e7b6be930 | ||
|
|
4bd3f3e8f2 | ||
|
|
26361577c6 | ||
|
|
f2c401d34c | ||
|
|
6efad70df9 | ||
|
|
0504381c17 | ||
|
|
39bf3d5de2 | ||
|
|
f21a2a03f2 | ||
|
|
5f76595604 | ||
|
|
6c00f0a1c3 | ||
|
|
a45d2be963 | ||
|
|
f09f90ef41 | ||
|
|
edcddf52d7 | ||
|
|
3bd5fd08a4 | ||
|
|
b6d74c109e | ||
|
|
dd7ebcea77 | ||
|
|
756c163888 | ||
|
|
f6319b2e93 | ||
|
|
ce2eb5a451 | ||
|
|
e40370f05d | ||
|
|
7cd2d2f9d1 | ||
|
|
032660c7eb | ||
|
|
f16de57a20 | ||
|
|
4cd396c932 | ||
|
|
fc6b2a4219 | ||
|
|
d61bd58c5e | ||
|
|
77ff6c4470 | ||
|
|
be89322307 | ||
|
|
8549165d91 | ||
|
|
d94a8a5fe7 | ||
|
|
08c157fff3 | ||
|
|
8ec584790f | ||
|
|
33fe60978b | ||
|
|
bfa67503f6 | ||
|
|
3e5fe54650 | ||
|
|
1f6e399315 | ||
|
|
e43560ed74 | ||
|
|
a25f98d86f | ||
|
|
310960f852 | ||
|
|
03042c5747 | ||
|
|
faa0e7d2d8 | ||
|
|
318dd490fb | ||
|
|
ba789f56a9 | ||
|
|
d52b2d7895 | ||
|
|
80a2e3e163 | ||
|
|
ef1915c76a | ||
|
|
520353a9b0 | ||
|
|
baff4330a5 | ||
|
|
eaa5f4d6e6 | ||
|
|
f94eaae7d6 | ||
|
|
ebf0225719 | ||
|
|
e89aecaa2e | ||
|
|
fa99171109 | ||
|
|
4c281e9e2e | ||
|
|
aeeb55dd5d | ||
|
|
5f3a49ae0a | ||
|
|
6c99d4f093 | ||
|
|
a886b0e012 | ||
|
|
d0a34c4c12 | ||
|
|
b7c5085d0f | ||
|
|
67f6462c49 | ||
|
|
e5cc73dc2f | ||
|
|
407f070888 | ||
|
|
9dd533d346 | ||
|
|
a395bf4af5 | ||
|
|
0ad93fdad7 | ||
|
|
19bd665ef6 | ||
|
|
ac64baa9ab | ||
|
|
e7196c049d | ||
|
|
d39e651911 | ||
|
|
2cf9d646f2 | ||
|
|
f854255f9c | ||
|
|
e6793da1e6 | ||
|
|
bd7caadaa2 | ||
|
|
15aef2a7e1 | ||
|
|
67fd0cafea | ||
|
|
c1417ea3b1 | ||
|
|
3a8edc422b | ||
|
|
9c76455a0a | ||
|
|
0f2a301db1 | ||
|
|
c79ab82d74 | ||
|
|
8fb5c84970 | ||
|
|
e86c36361e | ||
|
|
9c62d0a5fd | ||
|
|
3352c0d97e | ||
|
|
ee882d0738 | ||
|
|
53b0e71624 | ||
|
|
e0db04308e | ||
|
|
a8e37c1ced | ||
|
|
4c18c6eecd | ||
|
|
1a77e17a8b | ||
|
|
ee0f24639f | ||
|
|
ded3e6ab9f | ||
|
|
c1c5efcaf3 | ||
|
|
66bc2b6f03 | ||
|
|
ce41696afe | ||
|
|
4bf298ff60 | ||
|
|
794707c9e6 | ||
|
|
18597f8433 | ||
|
|
9ce76a5307 | ||
|
|
44f8186ffd | ||
|
|
08a11fbfc2 | ||
|
|
097b1edaf3 | ||
|
|
866e0186c8 | ||
|
|
f358d2f822 | ||
|
|
729f50622e | ||
|
|
60cec22d3c | ||
|
|
3ad8231b13 | ||
|
|
de2da186c0 | ||
|
|
c89baa941c | ||
|
|
67d85b677f | ||
|
|
ff39e1d858 | ||
|
|
bc12ebc80c | ||
|
|
b1e489a072 | ||
|
|
87cf5c1ddd | ||
|
|
c6d6ede3f3 | ||
|
|
e62ce606d3 | ||
|
|
92e5cf94d8 | ||
|
|
b92eaef16c | ||
|
|
2a1a5d8dbb | ||
|
|
58b0a1aefb | ||
|
|
6db3e24a23 | ||
|
|
96454ff99f | ||
|
|
2b1e6038a2 | ||
|
|
c80f6e7b32 | ||
|
|
68af4a7a07 | ||
|
|
0b10a29d3b | ||
|
|
a7eb5ae2c2 | ||
|
|
20df98692c | ||
|
|
9f1d54df1b | ||
|
|
8c15b8256f | ||
|
|
b28abaa255 | ||
|
|
a739bd8789 | ||
|
|
cda367a654 | ||
|
|
2eabfbb7c0 | ||
|
|
f56fe6fdc6 | ||
|
|
255cfe2e2f | ||
|
|
d22110e917 | ||
|
|
bd48bfedfe | ||
|
|
6c57174c4c | ||
|
|
509f3f7cf8 | ||
|
|
c97cf6e851 | ||
|
|
cfb03cb274 | ||
|
|
fc6bf75e4a | ||
|
|
50d1850634 | ||
|
|
d44873c483 | ||
|
|
51010ae53c | ||
|
|
a1fb539a2c | ||
|
|
16537ced4f | ||
|
|
26bc472dcf | ||
|
|
c6b2c1a90f | ||
|
|
63fab5e24c | ||
|
|
9858b481b1 | ||
|
|
ee9f11bacf | ||
|
|
354c49b217 | ||
|
|
a411686468 | ||
|
|
91e7130691 | ||
|
|
e43fd0bcc9 | ||
|
|
d4dcee5c97 | ||
|
|
a0a7925205 | ||
|
|
b90c8585dd | ||
|
|
3c00e125af | ||
|
|
020771ea9b | ||
|
|
77a8ee3a22 | ||
|
|
30afbd74aa | ||
|
|
78604247a7 | ||
|
|
b93f1b2cbd | ||
|
|
3d04c2e6a3 | ||
|
|
46695f8cbc | ||
|
|
a835d89bc8 | ||
|
|
dc5656faaa | ||
|
|
5b2362504f | ||
|
|
0ff64b0b7e | ||
|
|
4a04131179 | ||
|
|
00a3aea86f | ||
|
|
edfde9b69b | ||
|
|
cf040df2ea | ||
|
|
83740af545 | ||
|
|
48ab147b20 | ||
|
|
7b1ecfd018 | ||
|
|
63c1c2f947 | ||
|
|
6b57077502 | ||
|
|
f4868ead66 | ||
|
|
8d9e295f54 | ||
|
|
79f5753bf0 | ||
|
|
3eb6f5c2a9 | ||
|
|
0c5dba3798 | ||
|
|
25d598a096 | ||
|
|
2a075be6b5 | ||
|
|
9cd26acd1d | ||
|
|
af72ac68ba | ||
|
|
3030f8e1e2 | ||
|
|
9c30e3261b | ||
|
|
5ac27dc24b | ||
|
|
970164fb7c | ||
|
|
735f9475b7 | ||
|
|
ff533a4ef4 | ||
|
|
1a38bc47fb | ||
|
|
d4ade375c1 | ||
|
|
080b0057c8 | ||
|
|
7cdfc4a80d | ||
|
|
3938021a80 | ||
|
|
77dffa2645 | ||
|
|
5613477e83 | ||
|
|
91e13ec2fb | ||
|
|
6a112d2dbb | ||
|
|
06ecfea3f9 | ||
|
|
ab38208676 | ||
|
|
d8e781c09e | ||
|
|
369c2c031d | ||
|
|
8493183b19 | ||
|
|
3ad05d43b5 | ||
|
|
793ccc840c | ||
|
|
b235cd9574 | ||
|
|
b8e2a23542 | ||
|
|
8d9513f0ea | ||
|
|
a7bb07c391 | ||
|
|
fbaa1cd930 | ||
|
|
204957cc38 | ||
|
|
b5fa34082f | ||
|
|
d21226f3d1 | ||
|
|
f284cf7b62 | ||
|
|
92631e0349 | ||
|
|
95567b597b | ||
|
|
d8a219904a | ||
|
|
31f1093561 | ||
|
|
e4b26817f8 | ||
|
|
f79e14ed6b | ||
|
|
db20ad3720 | ||
|
|
8f4faa48b9 | ||
|
|
02288530e4 | ||
|
|
5bb5d4f327 | ||
|
|
9368f0a110 | ||
|
|
5dda2d502d | ||
|
|
f259ef0e6a | ||
|
|
9178bbd110 | ||
|
|
9e206c29bb | ||
|
|
358913eb95 | ||
|
|
cb0abf9630 | ||
|
|
bf4d3a037b | ||
|
|
1d48d10826 | ||
|
|
7769c6362c | ||
|
|
3f75d4e367 | ||
|
|
b5a4201655 | ||
|
|
540bbad6d0 | ||
|
|
88160d385b | ||
|
|
92082a6f23 | ||
|
|
11c78af009 | ||
|
|
4087eeaf09 | ||
|
|
bc0e64c6a4 | ||
|
|
922fa530d0 | ||
|
|
5faf7fcd6a | ||
|
|
6b5b66ab05 | ||
|
|
dfffcb448b | ||
|
|
4376467493 | ||
|
|
1dc969b330 | ||
|
|
ec3f3038f1 | ||
|
|
af67b71c3f | ||
|
|
0164357e61 | ||
|
|
c2981d38ce | ||
|
|
845878bf95 | ||
|
|
25f73570d2 | ||
|
|
311b8a7cb0 | ||
|
|
22251226fd | ||
|
|
9dd3bf8ca0 | ||
|
|
96ecb913cc | ||
|
|
e5472ff245 | ||
|
|
3917a20137 | ||
|
|
1817cf3f64 |
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*.lsl text eol=lf
|
||||
82
LICENSE
82
LICENSE
@@ -1,78 +1,4 @@
|
||||
The OpenCollar scripts are licensed under the GPLv2 with the following addendum:
|
||||
|
||||
Throughout this license the term "authors" refers to Nandana Singh,
|
||||
OpenCollar Organiser, Wendy Starfall, Satomi Ahn, Joy Stipe and
|
||||
other contributors to OpenCollar - submission set free.
|
||||
|
||||
"Full perms" means maintaining the modify, copy, and transfer permissions in
|
||||
Second Life. If the Second Life platform should allow more fine-grained
|
||||
permissions in the future, then "full perms" will mean the most permissive
|
||||
possible set of permissions allowed by the platform.
|
||||
|
||||
The OpenCollar scripts are free to be copied, modified, and redistributed,
|
||||
subject to the following conditions:
|
||||
|
||||
If you distribute the OpenCollar scripts, you must leave them full perms.
|
||||
(This includes using the scripts in collars that you make.)
|
||||
If you modify the OpenCollar scripts and distribute the modifications, you
|
||||
must also make your modifications full perms.
|
||||
|
||||
Custom plugins that are entirely created by you, and which communicate with the
|
||||
OpenCollar scripts only through link messages, are not subject to the above
|
||||
restrictions.
|
||||
|
||||
The OpenCollar hug and kiss scripts were originally created by Francis Chung,
|
||||
with only slight modifications by Ilse Mannonen. To the best of our knowledge,
|
||||
they are in the public domain.
|
||||
|
||||
To the best of our knowledge, the animations included in OpenCollar which were
|
||||
not created by the authors (which is most of them), may be used without
|
||||
restriction. Animations created by the authors must remain full perms. If you
|
||||
created one of the included animations and would like to have it removed,
|
||||
please notify Wendy Starfall.
|
||||
|
||||
Likewise, all textures included in the OpenCollar that were not created by the
|
||||
authors are, to the best of our knowledge, free to use for any purpose. The
|
||||
textures included which were created by the authors must remain full perms. If
|
||||
you created one of the included textures and would like to have it removed,
|
||||
please notify Wendy Starfall.
|
||||
|
||||
The base OpenCollar object (in which the OpenCollar scripts are placed) must
|
||||
also remain full perms. (If you want to use the OpenCollar scripts in collars
|
||||
that you have made and wish to sell, you can restrict copy or trans permissions
|
||||
on your prims, but you must leave the OpenCollar scripts full perms).
|
||||
|
||||
|
||||
OpenCollar 3rd Party Extension Policy
|
||||
|
||||
Part of OpenCollar being "open" means that we aim to provide a platform that
|
||||
people can easily integrate with. We encourage people to create their own
|
||||
products, tools, extensions, or services that integrate with OpenCollar.
|
||||
You're even free to charge money for them. There are a few ground rules though:
|
||||
|
||||
1. Any scripts containing OpenCollar code must use the GPL license and remain
|
||||
full perms in SL.
|
||||
2. You must be very very clear that your product/service/whatever is not
|
||||
affiliated with or supported by the OpenCollar project. Users must not be
|
||||
confused about who they're trusting.
|
||||
3. You must not advertise in the OpenCollar groups. Our groups prohibit all
|
||||
advertising. There is no exception for products that integrate with OpenCollar
|
||||
in some way.
|
||||
|
||||
(We may add to those rules if we missed something important or see people trying
|
||||
to pick loopholes in them, but that's it for now.)
|
||||
|
||||
We are eager to welcome creators willing to follow these rules. We want to
|
||||
support your creativity by giving you a solid platform to build on, and we want
|
||||
you as part of our community.
|
||||
|
||||
For now, violations of these rules will be dealt with through group ejection and
|
||||
public shunning. We may in the future create a directory of third party products
|
||||
and services that we trust. Violators of these rules will be forbidden from
|
||||
being on that list.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
@@ -364,8 +290,8 @@ to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
The repository for the OpenCollar main release channel.
|
||||
Copyright (C) 2013 opencollar
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -403,7 +329,7 @@ necessary. Here is a sample; alter the names:
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
{signature of Ty Coon}, 1 April 1989
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
ITEM|OpenCollar Guide
|
||||
ITEM|OpenCollar License
|
||||
ITEM|Leash Holder
|
||||
ITEM|Grabby Post
|
||||
SCRIPT|OpenCollar - cleanup
|
||||
SCRIPT|OpenCollar - main
|
||||
SCRIPT|OpenCollar - auth
|
||||
SCRIPT|OpenCollar - listener
|
||||
SCRIPT|OpenCollar - dialog
|
||||
SCRIPT|OpenCollar - settings
|
||||
SCRIPT|OpenCollar - leash
|
||||
SCRIPT|OpenCollar - leashParticle
|
||||
SCRIPT|OpenCollar - hide
|
||||
SCRIPT|OpenCollar - label
|
||||
SCRIPT|OpenCollar - bell
|
||||
SCRIPT|OpenCollar - titler
|
||||
@@ -1,8 +0,0 @@
|
||||
SCRIPT|OpenCollar - rlvmain
|
||||
SCRIPT|OpenCollar - rlvex
|
||||
SCRIPT|OpenCollar - rlvtalk
|
||||
SCRIPT|OpenCollar - rlvtp
|
||||
SCRIPT|OpenCollar - rlvsit
|
||||
SCRIPT|OpenCollar - rlvundress
|
||||
SCRIPT|OpenCollar - rlvfolders
|
||||
SCRIPT|OpenCollar - rlvmisc
|
||||
@@ -1 +0,0 @@
|
||||
SCRIPT|OpenCollar - rlvrelay
|
||||
@@ -1 +0,0 @@
|
||||
SCRIPT|OpenCollar - texture
|
||||
@@ -1 +0,0 @@
|
||||
SCRIPT|OpenCollar - color
|
||||
@@ -1 +0,0 @@
|
||||
SCRIPT|OpenCollar - shininess
|
||||
@@ -1 +0,0 @@
|
||||
ITEM|textures
|
||||
@@ -1 +0,0 @@
|
||||
SCRIPT|OpenCollar - styles
|
||||
@@ -1 +0,0 @@
|
||||
SCRIPT|OpenCollar - adjustment
|
||||
@@ -1,19 +0,0 @@
|
||||
ITEM|~-30
|
||||
ITEM|~-31
|
||||
ITEM|~-32
|
||||
ITEM|~-33
|
||||
ITEM|~-34
|
||||
ITEM|~-35
|
||||
ITEM|~-36
|
||||
ITEM|~-37
|
||||
ITEM|~-38
|
||||
ITEM|~-39
|
||||
ITEM|~walk_Male
|
||||
ITEM|~walk_Female
|
||||
ITEM|~walk_Crawl
|
||||
ITEM|~walk_Pony
|
||||
ITEM|~walk_Worm
|
||||
ITEM|~run
|
||||
ITEM|~stiff
|
||||
SCRIPT|OpenCollar - anim
|
||||
SCRIPT|OpenCollar - couples
|
||||
@@ -1 +0,0 @@
|
||||
SCRIPT|OpenCollar - bookmarks
|
||||
@@ -1,2 +0,0 @@
|
||||
ITEM|~shock
|
||||
SCRIPT|OpenCollar - badwords
|
||||
@@ -1 +0,0 @@
|
||||
SCRIPT|OpenCollar - timer
|
||||
@@ -1 +0,0 @@
|
||||
SCRIPT|OpenCollar - camera
|
||||
@@ -1 +0,0 @@
|
||||
SCRIPT|OpenCollar - garble
|
||||
@@ -1,10 +0,0 @@
|
||||
ITEM|~-20
|
||||
ITEM|~-21
|
||||
ITEM|~-22
|
||||
ITEM|~-23
|
||||
ITEM|~-24
|
||||
ITEM|~-25
|
||||
ITEM|~-26
|
||||
ITEM|~-27
|
||||
ITEM|~-28
|
||||
ITEM|~-29
|
||||
@@ -1,10 +0,0 @@
|
||||
ITEM|~-10
|
||||
ITEM|~-11
|
||||
ITEM|~-12
|
||||
ITEM|~-13
|
||||
ITEM|~-14
|
||||
ITEM|~-15
|
||||
ITEM|~-16
|
||||
ITEM|~-17
|
||||
ITEM|~-18
|
||||
ITEM|~-19
|
||||
@@ -1,9 +0,0 @@
|
||||
ITEM|~-1
|
||||
ITEM|~-2
|
||||
ITEM|~-3
|
||||
ITEM|~-4
|
||||
ITEM|~-5
|
||||
ITEM|~-6
|
||||
ITEM|~-7
|
||||
ITEM|~-8
|
||||
ITEM|~-9
|
||||
@@ -1,11 +0,0 @@
|
||||
ITEM|~-40
|
||||
ITEM|~-41
|
||||
ITEM|~-42
|
||||
ITEM|~-43
|
||||
ITEM|~-44
|
||||
ITEM|~-45
|
||||
ITEM|~-46
|
||||
ITEM|~-47
|
||||
ITEM|~-48
|
||||
ITEM|~-49
|
||||
ITEM|~-50
|
||||
@@ -1,80 +0,0 @@
|
||||
SCRIPT|Old Script
|
||||
SCRIPT|OpenCollar - menu
|
||||
SCRIPT|OpenCollar - lock
|
||||
SCRIPT|OpenCollar - touch
|
||||
SCRIPT|OpenCollar - getavi
|
||||
SCRIPT|OpenCollar - interface
|
||||
SCRIPT|OpenCollar - remoteserver
|
||||
SCRIPT|OpenCollar - anim/pose
|
||||
SCRIPT|OpenCollar - cmdupdate
|
||||
SCRIPT|OpenCollar - techlabel
|
||||
SCRIPT|OpenCollar - BMC
|
||||
SCRIPT|OpenCollar - realleash
|
||||
SCRIPT|OpenCollar - real leash - 0.1
|
||||
SCRIPT|OpenCollar - real leash - 0.2
|
||||
SCRIPT|OpenCollar - coupleanim1
|
||||
SCRIPT|OpenCollar - coupleanim2
|
||||
SCRIPT|OpenCollar - hovertext
|
||||
SCRIPT|OpenCollar - subspy
|
||||
SCRIPT|OpenCollar - update
|
||||
SCRIPT|OpenCollar - appearance
|
||||
SCRIPT|OpenCollar - rlvmisc
|
||||
SCRIPT|OpenCollar - rlvsit
|
||||
SCRIPT|OpenCollar - rlvtalk
|
||||
SCRIPT|OpenCollar - rlvtp
|
||||
ITEM|How to set up your #RLV and use SmartStrip
|
||||
ITEM|OpenCollar - rlvrelay - Help
|
||||
ITEM|OpenCollar RLV Relay Help
|
||||
ITEM|OpenCollar Updater
|
||||
ITEM|OpenCollar Sub AO
|
||||
ITEM|OpenCollar Post
|
||||
ITEM|OC_Leash_Post
|
||||
ITEM|Ball&Chain
|
||||
ITEM|chain
|
||||
ITEM|rope
|
||||
ITEM|brushedmetal-hshaded-contrasty
|
||||
ITEM|brushedmetal-hshaded
|
||||
ITEM|brushedmetal-roundshaded
|
||||
ITEM|brushedmetal-vshaded
|
||||
ITEM|blank
|
||||
ITEM|blkgraindot
|
||||
ITEM|Celtic
|
||||
ITEM|diamond
|
||||
ITEM|I-Beam
|
||||
ITEM|metal-h
|
||||
ITEM|metal-h-contrast
|
||||
ITEM|metal-round
|
||||
ITEM|metal-v
|
||||
ITEM|opaque gradient circle
|
||||
ITEM|Rusty Metal Chest
|
||||
ITEM|Rusty Panel
|
||||
ITEM|seamless foil
|
||||
ITEM|seamless gold foil
|
||||
ITEM|Silver Filligree
|
||||
ITEM|!fadestripe
|
||||
ITEM|!whiteleather
|
||||
ITEM|!totallytransparent
|
||||
ITEM|5fadestripes
|
||||
ITEM|Blank
|
||||
ITEM|Brass
|
||||
ITEM|Chrome
|
||||
ITEM|Fur Dark
|
||||
ITEM|Fur Light
|
||||
ITEM|Gem
|
||||
ITEM|Gold
|
||||
ITEM|Grunge
|
||||
ITEM|Lace
|
||||
ITEM|Leather Dark
|
||||
ITEM|Leather Light
|
||||
ITEM|Rust
|
||||
ITEM|Silver
|
||||
ITEM|Snake
|
||||
ITEM|Steel
|
||||
ITEM|yin
|
||||
ITEM|yang
|
||||
ITEM|Tranquility
|
||||
ITEM|Shack
|
||||
ITEM|Sandbox
|
||||
ITEM|~version
|
||||
ITEM|Temple
|
||||
ITEM|~PostureOverride
|
||||
@@ -1,68 +0,0 @@
|
||||
================
|
||||
OpenCollar - Quick Guide
|
||||
================
|
||||
|
||||
Your prefix are the first letter of your firstname and the first letter of your surname. If you don't have a surname, your surname will always be "Resident".
|
||||
|
||||
- Wendy Starfall (wendy.starfall)'s prefix is: ws
|
||||
- wendy4u (wendy4u Resident)'s prefix is: wr
|
||||
- ????i? ?l?? (fraulein.fapalot)'s prefix is: ff
|
||||
|
||||
Your prefix is used to issue commands in the Nearby Chat.
|
||||
|
||||
<prefix>menu
|
||||
<prefix>pose
|
||||
<prefix>kneel
|
||||
<prefix>release
|
||||
<prefix>grab
|
||||
<prefix>yank
|
||||
<prefix>unleash
|
||||
<prefix>sitnow
|
||||
|
||||
If you don't like your prefix, you can change it.
|
||||
|
||||
wsprefix wen
|
||||
wrprefix we
|
||||
jsprefix sex
|
||||
|
||||
You can also issue commands on channel 1.
|
||||
|
||||
/1<prefix>menu
|
||||
|
||||
Or if you don't like channel 1 set a different channel.
|
||||
|
||||
<prefix>channel 2
|
||||
<prefix>channel 3
|
||||
<prefix>channel 69
|
||||
<prefix>channel 9001
|
||||
|
||||
If you are considerate about lag, you can also turn off the Nearby Chat listener.
|
||||
|
||||
<prefix>channel -1
|
||||
|
||||
Your collar also has a safeword which you simply type in the nearby chat. This will lift all RLV resctrictions, unpose, unleash and unlock you. It will also send your Owner a message to check for your well being.
|
||||
|
||||
RED
|
||||
|
||||
RED in capital letters is the default safeword.
|
||||
|
||||
If that's too hard to remember you can easily change it.
|
||||
|
||||
<prefix>safeword Mayday!
|
||||
<prefix>safeword taxi
|
||||
<prefix>safeword BANANA
|
||||
|
||||
Too much to type? There is also a menu that has buttons for all these many commands. The menu can be opened in multiple ways.
|
||||
|
||||
1. <prefix>menu
|
||||
2. Click the collar!
|
||||
3. If you use the Sub AO, it's menu has a button.
|
||||
4. If you are an Owner, use the Owner HUD.
|
||||
|
||||
Yay! Now that you know how to use your prefix, your channel, chat commands and the menu, you are ready to find an Owner. If things don't turn out all that great:
|
||||
|
||||
<prefix>runaway
|
||||
|
||||
===============================
|
||||
For a full manual, please visit www.opencollar.at
|
||||
===============================
|
||||
@@ -1,148 +0,0 @@
|
||||
Table of contents
|
||||
-----------------
|
||||
1. Introduction
|
||||
|
||||
2. User help
|
||||
1. Menu buttons
|
||||
2. Chat commands
|
||||
|
||||
3. Technical information for RLV scripters
|
||||
1. Features and specifications
|
||||
2. Caveats
|
||||
3. Want more fun?
|
||||
|
||||
|
||||
*****
|
||||
|
||||
1. Introduction
|
||||
===============
|
||||
|
||||
Restrained Love Viewer API (Application Programming Interface) is a Second Life viewer feature that allows rezzed objects that you own to speak to your viewer and ask it to perform certain actions (teleporting, force-sitting or stripping the avatar) or toggle certain restrictions (such as on chat or clothing). This is limited to *your* objects, however.
|
||||
|
||||
A Restrained Love Viewer relay, or just "relay", is a script that listens for in-world object commands and transmits them to your viewer so that you can be controlled by objects belonging to *other* people. Of course, the task of the relay is not only to transmit such commands, but also to manage which objects should be allowed or not, and to keep track of the applied restrictions.
|
||||
|
||||
OpenCollar includes such a relay. The relay included in OpenCollar has a few particularities:
|
||||
|
||||
- In contrast to most older relays (prior to 2009), it allows several concurrent sources to communicate with your viewer and lock your relay.
|
||||
|
||||
- It has many access control options (both basic and more complicated modes, along with blacklists and whitelists).
|
||||
|
||||
- It optionally allows release from restrictions via safewording.
|
||||
|
||||
- It is integrated with the collar system in that (1) sources owned by owners are automatically accepted by the relay, and (2) owners can force the relay mode above a specified level of acceptance.
|
||||
|
||||
|
||||
2. User help
|
||||
============
|
||||
|
||||
1.1. Menu buttons
|
||||
-----------------
|
||||
|
||||
(Don't be surprised if some of these buttons aren't always displayed, since, depending on the context, irrelevant ones are automatically hidden.)
|
||||
|
||||
In the main dialog:
|
||||
|
||||
* Auto: the relay accepts every future request (except from blacklisted devices).
|
||||
|
||||
* Ask: the relay asks before accepting future requests (except from whitelisted or blacklisted devices).
|
||||
|
||||
* Restricted: the relay rejects every future request (except from whitelisted devices and devices already controlling you).
|
||||
|
||||
* ( )/(*)Playful: enables/disables automatic acceptance of non-restraining commands (combines with the previous modes).
|
||||
|
||||
* ( )/(*)Land: enables/disables automatic acceptance of commands from devices belonging to the sim landowner.
|
||||
|
||||
* ( )/(*)Safeword: enables/disables the possibility to escape restriction by use of a safeword.
|
||||
|
||||
* Grabbed by: shows the list of devices currently controlling your avatar, and the list of restrictions enforced.
|
||||
|
||||
* Pending: shows the request dialog, in case there are pending requests.
|
||||
|
||||
* Help: gives this notecard.
|
||||
|
||||
* Safeword: clears all restrictions; equivalent to typing "[initials]relay safeword".
|
||||
|
||||
* Access lists: opens the access list management dialog, for removing trusted or banned sources.
|
||||
|
||||
* MinMode (owner only): pops up a submenu in which a primary owner can set minimal function levels for the relay. If the owner chooses the Restricted option here, for instance, the sub cannot go "under" it by disabling the relay completely, but can choose between Restricted and the options "above", namely Ask and Auto; while if the owner chooses the highest level, Auto, it may not be changed and neither Restricted nor Ask is available to the sub. Likewise, if the "lower" settings with safeword, not playful, and landowner not trusted are set in MinMode, they can be changed by the sub; but if the owner dictates that the safeword cannot be used, that the sub must be playful, and/or that landowner must be trusted, the sub cannot change these settings.
|
||||
|
||||
In the request dialog, which will pop up in Ask mode when an RLV source tries to lock the relay:
|
||||
|
||||
* Yes: accept this command (and other commands from the same device until unrestricted).
|
||||
|
||||
* No: rejects this command (and other commands from the same device in the following seconds).
|
||||
|
||||
* Trust Object: same as Yes, but adds the object to the whitelist.
|
||||
|
||||
* Ban Object: same as No, but adds the object to the blacklist.
|
||||
|
||||
* Trust Owner: same as Yes, but adds the owner of the object to the whitelist.
|
||||
|
||||
* Ban Owner: same as No, but adds the owner of the object to the blacklist.
|
||||
|
||||
* Trust User: same as Yes, but adds the avatar using the object to the whitelist.
|
||||
|
||||
* Ban User: same as No, but adds the avatar using the object to the blacklist.
|
||||
|
||||
|
||||
1.2. Chat commands:
|
||||
-------------------
|
||||
|
||||
* [initials]showrestrictions: shows the list of restrictions to which the wearer is subject, and the devices issuing these.
|
||||
|
||||
* [initials]relay [ask/auto/restricted/off]: toggles the selected mode.
|
||||
|
||||
* [initials]relay playful [on/off]: toggles playful submode.
|
||||
|
||||
* [initials]relay land [on/off]: toggles landowner submode.
|
||||
|
||||
* [initials]relay safeword [on/off]: toggles safewording.
|
||||
|
||||
* [initials]relay safeword: safewords.
|
||||
|
||||
* [initials]relay minmode [ask/auto/restrcted/off]: sets the minimal basic mode.
|
||||
|
||||
* [initials]relay minmode [playful/land/safeword] [on/off] (owner only): sets the minimal submodes.
|
||||
|
||||
* [initials]relay getdebug: starts relay debugging, i.e. forwards all relay chat to the person issuing this command
|
||||
|
||||
* [initials]relay stopdebug: stops relay debugging
|
||||
|
||||
|
||||
3. Technical information for RLV scripters
|
||||
==========================================
|
||||
|
||||
2.1. Features and specifications
|
||||
--------------------------------
|
||||
|
||||
As an ORG (Open Relay Group) relay, this relay conforms to
|
||||
[this specification](https://wiki.secondlife.com/wiki/LSL_Protocol/Restrained_Love_Open_Relay_Group)
|
||||
- the [basic relay specification version 1.100](https://wiki.secondlife.com/wiki/LSL_Protocol/Restrained_Love_Relay)
|
||||
|
||||
- the [ORG additional requirements version 0003](https://wiki.secondlife.com/wiki/LSL_Protocol/Restrained_Love_Open_Relay_Group/ORG_Requirements)
|
||||
|
||||
- and to one optional "x-tension", [who, version 001](https://wiki.secondlife.com/wiki/LSL_Protocol/Restrained_Love_Open_Relay_Group/who)
|
||||
|
||||
In particular, this means that this relay will understand relay commands using a wildcard "ffffffff-ffff-ffff-ffff-ffffffffffff" instead of the avatar key, allowing efficient scanning and zone effects.
|
||||
|
||||
Also, through the x-tension who, this relay understands the meta-command !x-who, which allows RLV sources to specify who (which avatar) is now using the source to grab the relay. This information is reported in the Ask dialog prompt and can be used by the wearer to decide whether to accept being locked, and also maybe to blacklist or whitelist the avatar using the source.
|
||||
|
||||
2.2. Caveats
|
||||
------------
|
||||
|
||||
This script uses a lot of memory, and even more when it has to decompose and analyze relay commands. Moreover, this relay manages several RLV sources (an arbitrary number of them) from only two scripts, which makes things even worse. We took great care in optimizing it the best we could, but it is not impossible that a stack-heap collision will still occur. If that happens:
|
||||
|
||||
- To make your relay work again, you will have to reset the script using the Tools menu of your viewer (alas, a script that crashed cannot be reset by another script).
|
||||
|
||||
- We would be glad if you could tell us where and how the crash happened, and report your incident on the [OpenCollar bug tracker](http://code.google.com/p/opencollar/issues). Any other bug in the relay or issue with the documentation should be reported there as well.
|
||||
|
||||
Also, due to the way RLV works, having several RLV sources managing from a single script (and hence a single prim) can trigger unexpected results. For instance, the command @getstatus would report all restrictions set by the collar, instead of just those set by the source sending the command. This is not something we can fix unless we restrict the relay to a single source (which would be a shame!) or unless we use a multiprim approach, which would be highly impractical in the OpenCollar context.
|
||||
|
||||
Some other bugs might arise, related to contradictory commands, restrictions and exceptions from different sources. This category of bugs can sometimes be mitigated in some way by using scripting tricks, so if you notice one of this kind please report it on the bug tracker so we can see if something can be done.
|
||||
|
||||
2.3. Want more fun?
|
||||
-------------------
|
||||
|
||||
If you are interested in relays with advanced features, there is a HUD version of this relay (also open source), implementing even more fancy features from ORG. Look for "Satomi's Multi-Relay HUD" on the SL market place or grab it at the OpenCollar Temple if you want a copy of that relay.
|
||||
|
||||
If you want to to discuss relay features, you can comment on the [ORG wiki pages](https://wiki.secondlife.com/wiki/LSL_Protocol/Restrained_Love_Open_Relay_Group), and/or join the Restrained Love Open Relay Group in SecondLife.
|
||||
@@ -1,66 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - leashholder //
|
||||
// version 3.940 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// based on a script by Ilse Mannonen
|
||||
|
||||
integer g_iMychannel = -8888;
|
||||
string g_sListenfor;
|
||||
string g_sResponse;
|
||||
|
||||
AnnounceLeashHolder()
|
||||
{
|
||||
llSay(g_iMychannel, g_sResponse);
|
||||
}
|
||||
|
||||
default
|
||||
{
|
||||
state_entry()
|
||||
{
|
||||
g_sListenfor = (string)llGetOwner() + "handle";
|
||||
g_sResponse = (string)llGetOwner() + "handle ok";
|
||||
llListen(g_iMychannel, "", NULL_KEY, g_sListenfor);
|
||||
AnnounceLeashHolder();
|
||||
llSetTimerEvent(2.0);
|
||||
}
|
||||
|
||||
listen(integer channel, string name, key id, string message)
|
||||
{
|
||||
AnnounceLeashHolder();
|
||||
llSetTimerEvent(2.0);
|
||||
}
|
||||
attach(key kAttached)
|
||||
{
|
||||
if (kAttached == NULL_KEY)
|
||||
{
|
||||
llSay(g_iMychannel, (string)llGetOwner() + "handle detached");
|
||||
}
|
||||
}
|
||||
changed(integer change)
|
||||
{
|
||||
if (change & CHANGED_TELEPORT)
|
||||
{
|
||||
AnnounceLeashHolder();
|
||||
llSetTimerEvent(2.0);
|
||||
}
|
||||
}
|
||||
timer()
|
||||
{
|
||||
llSetTimerEvent(0.0);
|
||||
AnnounceLeashHolder();
|
||||
}
|
||||
on_rez(integer param)
|
||||
{
|
||||
llResetScript();
|
||||
}
|
||||
}
|
||||
@@ -1,277 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - UpdateShim //
|
||||
// version 3.985 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// This script is like a kamikaze missile. It sits dormant in the updater
|
||||
// until an update process starts. Once the initial handshake is done, it's
|
||||
// then inserted into the object being updated, where it chats with the bundle
|
||||
// giver script inside the updater to let it know what to send over. When the
|
||||
// update is finished, this script does a little final cleanup and then deletes
|
||||
// itself.
|
||||
|
||||
integer iStartParam;
|
||||
|
||||
// a strided list of all scripts in inventory, with their names,versions,uuids
|
||||
// built on startup
|
||||
list lScripts;
|
||||
|
||||
// list where we'll record all the settings and local settings we're sent, for replay later.
|
||||
// they're stored as strings, in form "<cmd>|<data>", where cmd is either LM_SETTING_SAVE
|
||||
list lSettings;
|
||||
|
||||
// list of deprecated tokens to remove from previous collar scripts
|
||||
list lDeprecatedSettingTokens = [
|
||||
"collarversion"
|
||||
];
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
// Return the name and version of an item as a list. If item has no version, return empty string for that part.
|
||||
list GetNameParts(string name) {
|
||||
list nameparts = llParseString2List(name, [" - "], []);
|
||||
string shortname = llDumpList2String(llList2List(nameparts, 0, 1), " - ");
|
||||
string version;
|
||||
if (llGetListLength(nameparts) > 2) {
|
||||
version = llList2String(nameparts, -1);
|
||||
} else {
|
||||
version = "";
|
||||
}
|
||||
return [shortname, version];
|
||||
}
|
||||
|
||||
// Given the name (but not version) of a script, look it up in our list and return the key
|
||||
// returns "" if not found.
|
||||
key GetScriptFullname(string name) {
|
||||
integer idx = llListFindList(lScripts, [name]);
|
||||
if (idx == -1) {
|
||||
return (key)"";
|
||||
}
|
||||
|
||||
string version = llList2String(lScripts, idx + 1);
|
||||
if (version == "") {
|
||||
return name;
|
||||
} else {
|
||||
return llDumpList2String([name, version], " - ");
|
||||
}
|
||||
}
|
||||
|
||||
integer COMMAND_NOAUTH = 0;
|
||||
|
||||
integer LM_SETTING_SAVE = 2000;//scripts send messages on this channel to have settings saved to settings store
|
||||
//str must be in form of "token=value"
|
||||
integer LM_SETTING_REQUEST = 2001;//when startup, scripts send requests for settings on this channel
|
||||
integer LM_SETTING_RESPONSE = 2002;//the settings script will send responses on this channel
|
||||
integer LM_SETTING_DELETE = 2003;//delete token from store
|
||||
integer LM_SETTING_EMPTY = 2004;//sent when a token has no value in the settings store
|
||||
|
||||
// Some versions of the collar have a hover text script in them that breaks
|
||||
// updates because it set a script pin that overwrites the one set by this shim
|
||||
// script. So before starting, delete any script that starts with "OpenCollar
|
||||
// - hovertext".
|
||||
// In general, removal of old cruft should be done with the cleanup script or
|
||||
// a "DEPRECATED" bundle, but this has to be done here because it breaks the updater
|
||||
// before bundles get going.
|
||||
RemoveHoverTextScript() {
|
||||
string kill = "OpenCollar - hovertext";
|
||||
integer n;
|
||||
// loop from the top down to avoid shifting indices
|
||||
for (n = llGetInventoryNumber(INVENTORY_SCRIPT) - 1; n >= 0; n--) {
|
||||
string name = llGetInventoryName(INVENTORY_SCRIPT, n);
|
||||
if (llSubStringIndex(name, kill) == 0) {
|
||||
llRemoveInventory(name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
default
|
||||
{
|
||||
state_entry()
|
||||
{
|
||||
iStartParam = llGetStartParameter();
|
||||
|
||||
RemoveHoverTextScript();
|
||||
|
||||
// build script list
|
||||
integer n;
|
||||
integer stop = llGetInventoryNumber(INVENTORY_SCRIPT);
|
||||
for (n = 0; n < stop; n++) {
|
||||
string name = llGetInventoryName(INVENTORY_SCRIPT, n);
|
||||
// add to script list
|
||||
lScripts += GetNameParts(name);
|
||||
}
|
||||
|
||||
//Debug(llDumpList2String(lScripts, "|"));
|
||||
|
||||
// listen on the start param channel
|
||||
llListen(iStartParam, "", "", "");
|
||||
|
||||
// let mama know we're ready
|
||||
llWhisper(iStartParam, "reallyready");
|
||||
|
||||
//Debug("Starting");
|
||||
}
|
||||
|
||||
listen(integer channel, string name, key id, string msg) {
|
||||
//Debug("heard: " + msg);
|
||||
if (llGetOwnerKey(id) == llGetOwner()) {
|
||||
list parts = llParseString2List(msg, ["|"], []);
|
||||
if (llGetListLength(parts) == 4) {
|
||||
string type = llList2String(parts, 0);
|
||||
string name = llList2String(parts, 1);
|
||||
key uuid = (key)llList2String(parts, 2);
|
||||
string mode = llList2String(parts, 3);
|
||||
string cmd;
|
||||
if (mode == "INSTALL" || mode == "REQUIRED") {
|
||||
if (type == "SCRIPT") {
|
||||
// see if we have that script in our list.
|
||||
integer idx = llListFindList(lScripts, [name]);
|
||||
if (idx == -1) {
|
||||
// script isn't in our list.
|
||||
cmd = "GIVE";
|
||||
} else {
|
||||
// it's in our list. Check UUID.
|
||||
string script_name = GetScriptFullname(name);
|
||||
key script_id = llGetInventoryKey(script_name);
|
||||
if (script_id == uuid) {
|
||||
// already have script. skip
|
||||
cmd = "SKIP";
|
||||
} else {
|
||||
// we have the script but it's the wrong version. delete and get new one.
|
||||
llRemoveInventory(script_name);
|
||||
cmd = "GIVE";
|
||||
}
|
||||
}
|
||||
} else if (type == "ITEM") {
|
||||
if (llGetInventoryType(name) != INVENTORY_NONE) {
|
||||
// item exists. check uuid.
|
||||
if (llGetInventoryKey(name) != uuid) {
|
||||
// mismatch. delete and report
|
||||
llRemoveInventory(name);
|
||||
cmd = "GIVE";
|
||||
} else {
|
||||
// match. Skip
|
||||
cmd = "SKIP";
|
||||
}
|
||||
} else {
|
||||
// we don't have item. get it.
|
||||
cmd = "GIVE";
|
||||
}
|
||||
}
|
||||
} else if (mode == "REMOVE" || mode == "DEPRECATED") {
|
||||
//Debug("remove: " + msg);
|
||||
if (type == "SCRIPT") {
|
||||
string script_name = GetScriptFullname(name);
|
||||
//Debug("script name: " + script_name);
|
||||
if (llGetInventoryType(script_name) != INVENTORY_NONE) {
|
||||
llRemoveInventory(script_name);
|
||||
}
|
||||
} else if (type == "ITEM") {
|
||||
if (llGetInventoryType(name) != INVENTORY_NONE) {
|
||||
llRemoveInventory(name);
|
||||
}
|
||||
}
|
||||
cmd = "OK";
|
||||
}
|
||||
string response = llDumpList2String([type, name, cmd], "|");
|
||||
//Debug("responding: " + response);
|
||||
llRegionSayTo(id, channel, response);
|
||||
} else {
|
||||
if (llSubStringIndex(msg, "CLEANUP") == 0) {
|
||||
// Prior to 3.706, collars would store version number in
|
||||
// both the object name and description. This has
|
||||
// problems: 1) It prevents running updates while worn,
|
||||
// since llSetObjectName doesn't reliably persist for
|
||||
// attachments, 2) it's needless repetition and creates
|
||||
// unnecessary complexity, and 3) version numbers are ugly.
|
||||
// So now we store version number in just one place, inside
|
||||
// the "~version" notecard, which is automatically kept up
|
||||
// to date when the core bundle is installed. The lines
|
||||
// below here exist to clean up version numbers in old
|
||||
// collars.
|
||||
|
||||
list msgparts = llParseString2List(msg, ["|"], []);
|
||||
// look for a version in the name and remove if present
|
||||
list nameparts = llParseString2List(llGetObjectName(), [" - "], []);
|
||||
if (llGetListLength(nameparts) == 2 && (integer)llList2String(nameparts, 1)) {
|
||||
// looks like there's a version in the name. Remove
|
||||
// it!
|
||||
string just_name = llList2String(nameparts, 0);
|
||||
llSetObjectName(just_name);
|
||||
}
|
||||
|
||||
// We used to set the version in the desc too. Now we just
|
||||
// leave it alone in this script. The in-collar update
|
||||
// script now uses that part of the desc to remember the
|
||||
// timestamp of the last news item that it reported.
|
||||
|
||||
//restore settings
|
||||
integer n;
|
||||
integer stop = llGetListLength(lSettings);
|
||||
list sDeprecatedSplitSettingTokenForTest;
|
||||
for (n = 0; n < stop; n++) {
|
||||
string setting = llList2String(lSettings, n);
|
||||
//Look through deprecated settings to see if we should ignore any...
|
||||
// Settings look like rlvmain_on=1, we want to deprecate the token ie. rlvmain_on <--store
|
||||
sDeprecatedSplitSettingTokenForTest = llList2List(llParseString2List(setting,["="],[]),0,0);
|
||||
|
||||
if (llListFindList(lDeprecatedSettingTokens,sDeprecatedSplitSettingTokenForTest) < 0) { //If it doesn't exist in our list
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, setting, "");
|
||||
//Debug("SP - Saving :"+setting);
|
||||
}
|
||||
else {
|
||||
//Debug("SP - Deleting :"+ llList2String(sDeprecatedSplitSettingTokenForTest,0));
|
||||
//remove it if it's somehow persistent still
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, llList2String(sDeprecatedSplitSettingTokenForTest,0), "");
|
||||
}
|
||||
}
|
||||
|
||||
// tell scripts to rebuild menus (in case plugins have been removed)
|
||||
llMessageLinked(LINK_SET, COMMAND_NOAUTH, "fixmenus", llGetOwner());
|
||||
|
||||
// remove the script pin
|
||||
llSetRemoteScriptAccessPin(0);
|
||||
|
||||
// celebrate
|
||||
llOwnerSay("Update complete!");
|
||||
|
||||
// delete shim script
|
||||
llRemoveInventory(llGetScriptName());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
link_message(integer sender, integer num, string str, key id) {
|
||||
// The settings script will dump all its settings when an inventory change happens, so listen for that and remember them
|
||||
// so they can be restored when we're done.
|
||||
if (num == LM_SETTING_RESPONSE) {
|
||||
if (str != "settings=sent") {
|
||||
if (llListFindList(lSettings, [str]) == -1) {
|
||||
lSettings += [str];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,608 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - adjustment //
|
||||
// version 3.988 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//handle appearance menu
|
||||
//handle saving position on detach, and restoring it on httpdb_response
|
||||
|
||||
string g_sSubMenu = "Size/Position";
|
||||
string g_sParentMenu = "Appearance";
|
||||
|
||||
string CTYPE = "collar";
|
||||
|
||||
list g_lMenuIDs;//3-strided list of avkey, dialogid, menuname
|
||||
integer g_iMenuStride = 3;
|
||||
|
||||
string POSMENU = "Position";
|
||||
string ROTMENU = "Rotation";
|
||||
string SIZEMENU = "Size";
|
||||
|
||||
float g_fSmallNudge=0.0005;
|
||||
float g_fMediumNudge=0.005;
|
||||
float g_fLargeNudge=0.05;
|
||||
float g_fNudge=0.005; // g_fMediumNudge;
|
||||
float g_fRotNudge;
|
||||
|
||||
// SizeScale
|
||||
|
||||
list SIZEMENU_BUTTONS = [ "-1%", "-2%", "-5%", "-10%", "+1%", "+2%", "+5%", "+10%", "100%" ]; // buttons for menu
|
||||
list g_lSizeFactors = [-1, -2, -5, -10, 1, 2, 5, 10, -1000]; // actual size factors
|
||||
list g_lPrimStartSizes; // area for initial prim sizes (stored on rez)
|
||||
integer g_iScaleFactor = 100; // the size on rez is always regarded as 100% to preven problem when scaling an item +10% and than - 10 %, which would actuall lead to 99% of the original size
|
||||
integer g_iSizedByScript = FALSE; // prevent reseting of the script when the item has been chnged by the script
|
||||
|
||||
integer g_iAppLock = FALSE;
|
||||
|
||||
//MESSAGE MAP
|
||||
integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
integer COMMAND_RLV_RELAY = 507;
|
||||
|
||||
//integer SEND_IM = 1000; deprecated. each script should send its own IMs now. This is to reduce even the tiny bt of lag caused by having IM slave scripts
|
||||
//integer POPUP_HELP = 1001;
|
||||
|
||||
//integer LM_SETTING_SAVE = 2000;//scripts send messages on this channel to have settings saved to httpdb
|
||||
//str must be in form of "token=value"
|
||||
//integer LM_SETTING_REQUEST = 2001;//when startup, scripts send requests for settings on this channel
|
||||
integer LM_SETTING_RESPONSE = 2002;//the httpdb script will send responses on this channel
|
||||
//integer LM_SETTING_DELETE = 2003;//delete token from DB
|
||||
//integer LM_SETTING_EMPTY = 2004;//sent by httpdb script when a token has no value in the db
|
||||
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
integer MENUNAME_REMOVE = 3003;
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
//string UPMENU = "↑";//when your menu hears this, give the parent menu
|
||||
string UPMENU = "BACK";
|
||||
|
||||
key g_kWearer;
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
key Dialog(key kRCPT, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth)
|
||||
{
|
||||
key kID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kRCPT + "|" + sPrompt + "|" + (string)iPage + "|" + llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kID);
|
||||
//Debug("Made menu.");
|
||||
return kID;
|
||||
}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer)
|
||||
{
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else
|
||||
{
|
||||
if (llGetAgentSize(kID)!=ZERO_VECTOR) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
integer MinMaxUnscaled(vector vSize, float fScale)
|
||||
{
|
||||
if (fScale < 1.0)
|
||||
{
|
||||
if (vSize.x <= 0.01) return TRUE;
|
||||
if (vSize.y <= 0.01) return TRUE;
|
||||
if (vSize.z <= 0.01) return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (vSize.x >= 10.0) return TRUE;
|
||||
if (vSize.y >= 10.0) return TRUE;
|
||||
if (vSize.z >= 10.0) return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
integer MinMaxScaled(vector vSize, float fScale)
|
||||
{
|
||||
if (fScale < 1.0)
|
||||
{
|
||||
if (vSize.x < 0.01) return TRUE;
|
||||
if (vSize.y < 0.01) return TRUE;
|
||||
if (vSize.z < 0.01) return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (vSize.x > 10.0) return TRUE;
|
||||
if (vSize.y > 10.0) return TRUE;
|
||||
if (vSize.z > 10.0) return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
Store_StartScaleLoop()
|
||||
{
|
||||
g_lPrimStartSizes = [];
|
||||
integer iPrimIndex;
|
||||
vector vPrimScale;
|
||||
vector vPrimPosit;
|
||||
list lPrimParams;
|
||||
if (llGetNumberOfPrims()<2)
|
||||
{
|
||||
vPrimScale = llGetScale();
|
||||
g_lPrimStartSizes += vPrimScale.x;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (iPrimIndex = 1; iPrimIndex <= llGetNumberOfPrims(); iPrimIndex++ )
|
||||
{
|
||||
lPrimParams = llGetLinkPrimitiveParams( iPrimIndex, [PRIM_SIZE, PRIM_POSITION]);
|
||||
vPrimScale=llList2Vector(lPrimParams,0);
|
||||
vPrimPosit=(llList2Vector(lPrimParams,1)-llGetRootPosition())/llGetRootRotation();
|
||||
g_lPrimStartSizes += [vPrimScale,vPrimPosit];
|
||||
}
|
||||
}
|
||||
g_iScaleFactor = 100;
|
||||
}
|
||||
|
||||
ScalePrimLoop(integer iScale, integer iRezSize, key kAV)
|
||||
{
|
||||
integer iPrimIndex;
|
||||
float fScale = iScale / 100.0;
|
||||
list lPrimParams;
|
||||
vector vPrimScale;
|
||||
vector vPrimPos;
|
||||
vector vSize;
|
||||
if (llGetNumberOfPrims()<2)
|
||||
{
|
||||
vSize = llList2Vector(g_lPrimStartSizes,0);
|
||||
if (MinMaxUnscaled(llGetScale(), fScale) || !iRezSize)
|
||||
{
|
||||
Notify(kAV, "The object cannot be scaled as you requested; prims are already at minimum or maximum size.", TRUE);
|
||||
return;
|
||||
}
|
||||
else if (MinMaxScaled(fScale * vSize, fScale) || !iRezSize)
|
||||
{
|
||||
Notify(kAV, "The object cannot be scaled as you requested; prims would surpass minimum or maximum size.", TRUE);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
llSetScale(fScale * vSize); // not linked prim
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!iRezSize)
|
||||
{
|
||||
// first some checking
|
||||
for (iPrimIndex = 1; iPrimIndex <= llGetNumberOfPrims(); iPrimIndex++ )
|
||||
{
|
||||
lPrimParams = llGetLinkPrimitiveParams( iPrimIndex, [PRIM_SIZE, PRIM_POSITION]);
|
||||
vPrimScale = llList2Vector(g_lPrimStartSizes, (iPrimIndex - 1)*2);
|
||||
|
||||
if (MinMaxUnscaled(llList2Vector(lPrimParams,0), fScale))
|
||||
{
|
||||
Notify(kAV, "The object cannot be scaled as you requested; prims are already at minimum or maximum size.", TRUE);
|
||||
return;
|
||||
}
|
||||
else if (MinMaxScaled(fScale * vPrimScale, fScale))
|
||||
{
|
||||
Notify(kAV, "The object cannot be scaled as you requested; prims would surpass minimum or maximum size.", TRUE);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
Notify(kAV, "Scaling started, please wait ...", TRUE);
|
||||
g_iSizedByScript = TRUE;
|
||||
for (iPrimIndex = 1; iPrimIndex <= llGetNumberOfPrims(); iPrimIndex++ )
|
||||
{
|
||||
// lPrimParams = llGetLinkPrimitiveParams(iPrimIndex, [PRIM_SIZE, PRIM_POSITION]);
|
||||
vPrimScale = fScale * llList2Vector(g_lPrimStartSizes, (iPrimIndex - 1)*2);
|
||||
vPrimPos = fScale * llList2Vector(g_lPrimStartSizes, (iPrimIndex - 1)*2+1);
|
||||
if (iPrimIndex == 1)
|
||||
{
|
||||
llSetLinkPrimitiveParamsFast(iPrimIndex, [PRIM_SIZE, vPrimScale]);
|
||||
}
|
||||
else
|
||||
{
|
||||
llSetLinkPrimitiveParamsFast(iPrimIndex, [PRIM_SIZE, vPrimScale, PRIM_POSITION, vPrimPos]);
|
||||
}
|
||||
}
|
||||
g_iScaleFactor = iScale;
|
||||
g_iSizedByScript = TRUE;
|
||||
Notify(kAV, "Scaling finished, the "+CTYPE+" is now on "+ (string)g_iScaleFactor +"% of the rez size.", TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ForceUpdate()
|
||||
{
|
||||
//workaround for https://jira.secondlife.com/browse/VWR-1168
|
||||
llSetText(".", <1,1,1>, 1.0);
|
||||
llSetText("", <1,1,1>, 1.0);
|
||||
}
|
||||
|
||||
vector ConvertPos(vector pos)
|
||||
{
|
||||
integer ATTACH = llGetAttached();
|
||||
vector out ;
|
||||
if (ATTACH == 1) { out.x = pos.y; out.y = pos.z; out.z = pos.x; }
|
||||
else if (ATTACH == 5 || ATTACH == 20 || ATTACH == 21 ) { out.x = pos.x; out.y = -pos.z; out.z = pos.y ; }
|
||||
else if (ATTACH == 6 || ATTACH == 18 || ATTACH == 19 ) { out.x = pos.x; out.y = pos.z; out.z = -pos.y; }
|
||||
else out = pos ;
|
||||
return out ;
|
||||
}
|
||||
|
||||
AdjustPos(vector vDelta)
|
||||
{
|
||||
if (llGetAttached())
|
||||
{
|
||||
llSetPos(llGetLocalPos() + ConvertPos(vDelta));
|
||||
ForceUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
vector ConvertRot(vector rot)
|
||||
{
|
||||
integer ATTACH = llGetAttached();
|
||||
vector out ;
|
||||
if (ATTACH == 1) { out.x = rot.y; out.y = rot.z; out.z = rot.x; }
|
||||
else if (ATTACH == 5 || ATTACH == 20 || ATTACH == 21) { out.x = rot.x; out.y = -rot.z; out.z = rot.y; }
|
||||
else if (ATTACH == 6 || ATTACH == 18 || ATTACH == 19) { out.x = rot.x; out.y = rot.z; out.z = -rot.y; }
|
||||
else out = rot ;
|
||||
return out ;
|
||||
}
|
||||
|
||||
AdjustRot(vector vDelta)
|
||||
{
|
||||
if (llGetAttached())
|
||||
{
|
||||
llSetLocalRot(llGetLocalRot() * llEuler2Rot(ConvertRot(vDelta)));
|
||||
ForceUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
RotMenu(key kAv, integer iAuth)
|
||||
{
|
||||
string sPrompt = "\nAdjust the "+CTYPE+"'s rotation.\n\nNOTE: Arrows refer to the neck joint.";
|
||||
list lMyButtons = ["tilt up ↻", "left ↶", "tilt left ↙", "tilt down ↺", "right ↷", "tilt right ↘"];// ria change
|
||||
key kMenuID = Dialog(kAv, sPrompt, lMyButtons, [UPMENU], 0, iAuth);
|
||||
integer iMenuIndex = llListFindList(g_lMenuIDs, [kAv]);
|
||||
list lAddMe = [kAv, kMenuID, ROTMENU];
|
||||
if (iMenuIndex == -1)
|
||||
{
|
||||
g_lMenuIDs += lAddMe;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_lMenuIDs = llListReplaceList(g_lMenuIDs, lAddMe, iMenuIndex, iMenuIndex + g_iMenuStride - 1);
|
||||
}
|
||||
}
|
||||
|
||||
PosMenu(key kAv, integer iAuth)
|
||||
{
|
||||
string sPrompt = "\nAdjust the "+CTYPE+"'s position.\n\nNOTE: Arrows refer to the neck joint.\n\nCurrent nudge strength is: ";
|
||||
list lMyButtons = ["left ←", "up ↑", "forward ↳", "right →", "down ↓", "backward ↲"];// ria iChange
|
||||
if (g_fNudge!=g_fSmallNudge) lMyButtons+=["▸"];
|
||||
else sPrompt += "▸";
|
||||
if (g_fNudge!=g_fMediumNudge) lMyButtons+=["▸▸"];
|
||||
else sPrompt += "▸▸";
|
||||
if (g_fNudge!=g_fLargeNudge) lMyButtons+=["▸▸▸"];
|
||||
else sPrompt += "▸▸▸";
|
||||
|
||||
key kMenuID = Dialog(kAv, sPrompt, lMyButtons, [UPMENU], 0, iAuth);
|
||||
integer iMenuIndex = llListFindList(g_lMenuIDs, [kAv]);
|
||||
list lAddMe = [kAv, kMenuID, POSMENU];
|
||||
if (iMenuIndex == -1)
|
||||
{
|
||||
g_lMenuIDs += lAddMe;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_lMenuIDs = llListReplaceList(g_lMenuIDs, lAddMe, iMenuIndex, iMenuIndex + g_iMenuStride - 1);
|
||||
}
|
||||
}
|
||||
|
||||
SizeMenu(key kAv, integer iAuth)
|
||||
{
|
||||
string sPrompt = "\nAdjust the "+CTYPE+"'s scale.\n\nIt is based on the size the "+CTYPE+" has upon rezzing. You can change back to this size by using '100%'.\n\nCurrent size: " + (string)g_iScaleFactor + "%\n\nWARNING: Make a backup copy of your "+CTYPE+" first! Considering the massive variation of designs, this feature is not granted to work in all cases. Possible rendering bugs mean having to right-click your "+CTYPE+" first to see the actual result.";
|
||||
key kMenuID = Dialog(kAv, sPrompt, SIZEMENU_BUTTONS, [UPMENU], 0, iAuth);
|
||||
integer iMenuIndex = llListFindList(g_lMenuIDs, [kAv]);
|
||||
list lAddMe = [kAv, kMenuID, SIZEMENU];
|
||||
if (iMenuIndex == -1)
|
||||
{
|
||||
g_lMenuIDs += lAddMe;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_lMenuIDs = llListReplaceList(g_lMenuIDs, lAddMe, iMenuIndex, iMenuIndex + g_iMenuStride - 1);
|
||||
}
|
||||
//Debug("FreeMem: " + (string)llGetFreeMemory());
|
||||
}
|
||||
|
||||
DoMenu(key kAv, integer iAuth)
|
||||
{
|
||||
list lMyButtons ;
|
||||
string sPrompt;
|
||||
if (g_iAppLock && iAuth != COMMAND_OWNER) {
|
||||
sPrompt = "\nThe appearance of the "+CTYPE+" has been locked.\n\nAn owner must unlock it to allow modification.";
|
||||
} else {
|
||||
sPrompt = "\nChange the position, rotation and size of your "+CTYPE+".\n\nwww.opencollar.at/appearance";
|
||||
lMyButtons = [POSMENU, ROTMENU, SIZEMENU]; //["Position", "Rotation", "Size"];
|
||||
}
|
||||
|
||||
key kMenuID = Dialog(kAv, sPrompt, lMyButtons, [UPMENU], 0, iAuth);
|
||||
integer iMenuIndex = llListFindList(g_lMenuIDs, [kAv]);
|
||||
list lAddMe = [kAv, kMenuID, g_sSubMenu];
|
||||
if (iMenuIndex == -1) g_lMenuIDs += lAddMe;
|
||||
else g_lMenuIDs = llListReplaceList(g_lMenuIDs, lAddMe, iMenuIndex, iMenuIndex + g_iMenuStride - 1);
|
||||
}
|
||||
|
||||
UserCommand(integer iNum, string sStr, key kID) {
|
||||
list lParams = llParseString2List(sStr, [" "], []);
|
||||
string sCommand = llToLower(llList2String(lParams, 0));
|
||||
string sValue = llToLower(llList2String(lParams, 1));
|
||||
if (sCommand == "menu" && llGetSubString(sStr, 5, -1) == g_sSubMenu)
|
||||
{
|
||||
//someone asked for our menu
|
||||
//give this plugin's menu to id
|
||||
if (kID!=g_kWearer && iNum!=COMMAND_OWNER)
|
||||
{
|
||||
Notify(kID,"You are not allowed to change the "+CTYPE+"'s appearance.", FALSE);
|
||||
llMessageLinked(LINK_SET, iNum, "menu " + g_sParentMenu, kID);
|
||||
}
|
||||
else DoMenu(kID, iNum);
|
||||
} else if (sCommand=="lockappearance") {
|
||||
g_iAppLock=(integer)sValue;
|
||||
} else if (sStr == "appearance")
|
||||
{
|
||||
if (kID!=g_kWearer && iNum!=COMMAND_OWNER)
|
||||
{
|
||||
Notify(kID,"You are not allowed to change the "+CTYPE+"'s appearance.", FALSE);
|
||||
}
|
||||
else DoMenu(kID, iNum);
|
||||
}
|
||||
else if (sStr == "rotation")
|
||||
{
|
||||
if (kID!=g_kWearer && iNum!=COMMAND_OWNER)
|
||||
{
|
||||
Notify(kID,"You are not allowed to change the "+CTYPE+"'s rotation.", FALSE);
|
||||
}
|
||||
else if (g_iAppLock)
|
||||
{
|
||||
Notify(kID,"The appearance of the "+CTYPE+" is locked. You cannot access this menu now!", FALSE);
|
||||
DoMenu(kID, iNum);
|
||||
}
|
||||
else RotMenu(kID, iNum);
|
||||
}
|
||||
else if (sStr == "position")
|
||||
{
|
||||
if (kID!=g_kWearer && iNum!=COMMAND_OWNER)
|
||||
{
|
||||
Notify(kID,"You are not allowed to change the "+CTYPE+"'s position.", FALSE);
|
||||
}
|
||||
else if (g_iAppLock)
|
||||
{
|
||||
Notify(kID,"The appearance of the "+CTYPE+" is locked. You cannot access this menu now!", FALSE);
|
||||
DoMenu(kID, iNum);
|
||||
}
|
||||
else PosMenu(kID, iNum);
|
||||
}
|
||||
else if (sStr == "size")
|
||||
{
|
||||
if (kID!=g_kWearer && iNum!=COMMAND_OWNER)
|
||||
{
|
||||
Notify(kID,"You are not allowed to change the "+CTYPE+"'s size.", FALSE);
|
||||
}
|
||||
else if (g_iAppLock)
|
||||
{
|
||||
Notify(kID,"The appearance of the "+CTYPE+" is locked. You cannot access this menu now!", FALSE);
|
||||
DoMenu(kID, iNum);
|
||||
}
|
||||
else SizeMenu(kID, iNum);
|
||||
}
|
||||
}
|
||||
|
||||
default {
|
||||
on_rez(integer iParam) {
|
||||
llResetScript();
|
||||
}
|
||||
|
||||
state_entry() {
|
||||
//llSetMemoryLimit(65536); //this script needs to be profiled, and its memory limited
|
||||
g_kWearer = llGetOwner();
|
||||
g_fRotNudge = PI / 32.0;//have to do this here since we can't divide in a global var declaration
|
||||
|
||||
Store_StartScaleLoop();
|
||||
//Debug("Starting");
|
||||
}
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID)
|
||||
{
|
||||
if (iNum == MENUNAME_REQUEST && sStr == g_sParentMenu)
|
||||
{
|
||||
llMessageLinked(LINK_SET, MENUNAME_RESPONSE, g_sParentMenu + "|" + g_sSubMenu, "");
|
||||
}
|
||||
else if (iNum >= COMMAND_OWNER && iNum <= COMMAND_WEARER)
|
||||
{
|
||||
UserCommand( iNum, sStr, kID);
|
||||
}
|
||||
else if (iNum == LM_SETTING_RESPONSE)
|
||||
{
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
if (sToken == "Appearance_Lock") g_iAppLock = (integer)sValue;
|
||||
}
|
||||
else if (iNum == DIALOG_RESPONSE)
|
||||
{
|
||||
integer iMenuIndex = llListFindList(g_lMenuIDs, [kID]);
|
||||
if (iMenuIndex != -1)
|
||||
{
|
||||
//got a menu response meant for us. pull out values
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
string sMenuType = llList2String(g_lMenuIDs, iMenuIndex + 1);
|
||||
//remove stride from g_lMenuIDs
|
||||
//we have to subtract from the index because the dialog id comes in the middle of the stride
|
||||
g_lMenuIDs = llDeleteSubList(g_lMenuIDs, iMenuIndex - 1, iMenuIndex - 2 + g_iMenuStride);
|
||||
if (sMenuType == g_sSubMenu)
|
||||
{
|
||||
if (sMessage == UPMENU) llMessageLinked(LINK_SET, iAuth, "menu " + g_sParentMenu, kAv);
|
||||
else if (sMessage == POSMENU) PosMenu(kAv, iAuth);
|
||||
else if (sMessage == ROTMENU) RotMenu(kAv, iAuth);
|
||||
else if (sMessage == SIZEMENU) SizeMenu(kAv, iAuth);
|
||||
}
|
||||
else if (sMenuType == POSMENU)
|
||||
{
|
||||
if (sMessage == UPMENU)
|
||||
{
|
||||
DoMenu(kAv, iAuth);
|
||||
return;
|
||||
}
|
||||
else if (llGetAttached())
|
||||
{
|
||||
if (sMessage == "forward ↳") AdjustPos(<g_fNudge, 0, 0>);
|
||||
else if (sMessage == "left ←") AdjustPos(<0, g_fNudge, 0>);
|
||||
else if (sMessage == "up ↑") AdjustPos(<0, 0, g_fNudge>);
|
||||
else if (sMessage == "backward ↲") AdjustPos(<-g_fNudge, 0, 0>);
|
||||
else if (sMessage == "right →") AdjustPos(<0, -g_fNudge, 0>);
|
||||
else if (sMessage == "down ↓") AdjustPos(<0, 0, -g_fNudge>);
|
||||
else if (sMessage == "▸") g_fNudge=g_fSmallNudge;
|
||||
else if (sMessage == "▸▸") g_fNudge=g_fMediumNudge;
|
||||
else if (sMessage == "▸▸▸") g_fNudge=g_fLargeNudge;
|
||||
}
|
||||
else Notify(kAv, "Sorry, position can only be adjusted while worn",FALSE);
|
||||
PosMenu(kAv, iAuth);
|
||||
}
|
||||
else if (sMenuType == ROTMENU)
|
||||
{
|
||||
if (sMessage == UPMENU)
|
||||
{
|
||||
DoMenu(kAv, iAuth);
|
||||
return;
|
||||
}
|
||||
else if (llGetAttached())
|
||||
{
|
||||
if (sMessage == "tilt right ↘") AdjustRot(<g_fRotNudge, 0, 0>);
|
||||
else if (sMessage == "tilt up ↻") AdjustRot(<0, g_fRotNudge, 0>);
|
||||
else if (sMessage == "left ↶") AdjustRot(<0, 0, g_fRotNudge>);
|
||||
else if (sMessage == "right ↷") AdjustRot(<0, 0, -g_fRotNudge>);
|
||||
else if (sMessage == "tilt left ↙") AdjustRot(<-g_fRotNudge, 0, 0>);
|
||||
else if (sMessage == "tilt down ↺") AdjustRot(<0, -g_fRotNudge, 0>);
|
||||
}
|
||||
else Notify(kAv, "Sorry, position can only be adjusted while worn", FALSE);
|
||||
RotMenu(kAv, iAuth);
|
||||
}
|
||||
else if (sMenuType == SIZEMENU)
|
||||
{
|
||||
if (sMessage == UPMENU)
|
||||
{
|
||||
DoMenu(kAv, iAuth);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
integer iMenuCommand = llListFindList(SIZEMENU_BUTTONS, [sMessage]);
|
||||
if (iMenuCommand != -1)
|
||||
{
|
||||
integer iSizeFactor = llList2Integer(g_lSizeFactors, iMenuCommand);
|
||||
if (iSizeFactor == -1000)
|
||||
{
|
||||
// ResSize requested
|
||||
if (g_iScaleFactor == 100)
|
||||
{
|
||||
Notify(kAv, "Resizing canceled; the "+CTYPE+" is already at original size.", FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
ScalePrimLoop(100, TRUE, kAv);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ScalePrimLoop(g_iScaleFactor + iSizeFactor, FALSE, kAv);
|
||||
}
|
||||
}
|
||||
SizeMenu(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (iNum == DIALOG_TIMEOUT)
|
||||
{
|
||||
integer iMenuIndex = llListFindList(g_lMenuIDs, [kID]);
|
||||
if (iMenuIndex != -1)
|
||||
{
|
||||
//remove stride from g_lMenuIDs
|
||||
//we have to subtract from the index because the dialog id comes in the middle of the stride
|
||||
g_lMenuIDs = llDeleteSubList(g_lMenuIDs, iMenuIndex - 1, iMenuIndex - 2 + g_iMenuStride);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
timer()
|
||||
{
|
||||
// the timer is needed as the changed_size even is triggered twice
|
||||
llSetTimerEvent(0);
|
||||
if (g_iSizedByScript)
|
||||
g_iSizedByScript = FALSE;
|
||||
}
|
||||
|
||||
changed(integer iChange)
|
||||
{
|
||||
if (iChange & (CHANGED_SCALE))
|
||||
{
|
||||
if (g_iSizedByScript)
|
||||
// the item had ben rescaled by the script, do NOT reset the script and store new positions
|
||||
{
|
||||
// ignore the event and trigger timer to reset flag. needed as we got the event twice after scaling
|
||||
llSetTimerEvent(0.5);
|
||||
}
|
||||
else
|
||||
// it was a user change, so we have to store the basic values again
|
||||
{
|
||||
Store_StartScaleLoop();
|
||||
}
|
||||
}
|
||||
if (iChange & (CHANGED_SHAPE | CHANGED_LINK))
|
||||
{
|
||||
Store_StartScaleLoop();
|
||||
}
|
||||
/*
|
||||
if (iChange & CHANGED_REGION) {
|
||||
if (g_iProfiled) {
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
@@ -1,662 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - anim //
|
||||
// version 3.990 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//needs to handle anim requests from sister scripts as well
|
||||
//this script as essentially two layers
|
||||
//lower layer: coordinate animation requests that come in on link messages. keep a list of playing anims disable AO when needed
|
||||
//upper layer: use the link message anim api to provide a pose menu
|
||||
|
||||
list g_lAnims; //list of queued anims
|
||||
list g_lPoseList; //list of standard poses to use in the menu
|
||||
integer g_iNumberOfAnims; //we store this to avoid running createanimlist() every time inventory is changed...
|
||||
|
||||
//PoseMove tweak stuff
|
||||
integer g_iTweakPoseAO = 0; //Disable/Enable AO for posed animations - set it to 1 to default PoseMove tweak to ON
|
||||
string g_sPoseMoveWalk; //Variable to hold our current Walk animation
|
||||
string g_sPoseMoveRun; //Variable to hold our run animation
|
||||
string g_sWalkButtonPrefix = ""; //This can be changed to prefix walks in the PoseMove menu
|
||||
list g_lPoseMoveAnimationPrefix = ["~walk_","~run_"];
|
||||
|
||||
//for the height scaling feature
|
||||
key g_kDataID; //uuid of notecard read request
|
||||
integer g_iLine = 0; //records progress through notecard
|
||||
list g_lAnimScalars; //a 3-strided list in form animname,scalar,delay
|
||||
integer g_iAdjustment = 0; //heightfix on/off
|
||||
|
||||
string g_sCurrentPose = "";
|
||||
integer g_iLastRank = 0; //in this integer, save the rank of the person who posed the av, according to message map. 0 means unposed
|
||||
integer g_iLastPostureRank = 504;
|
||||
integer g_iLastPoselockRank = 504;
|
||||
list g_lAnimButtons; // initialized in state_entry for OpenSim compatibility (= ["Pose", "AO Menu", g_sGiveAO, "AO ON", "AO OFF"];)
|
||||
|
||||
integer g_iAnimLock = FALSE; //animlock on/off
|
||||
integer g_iPosture; //posture lock on/off
|
||||
|
||||
//MESSAGE MAP
|
||||
integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
integer COMMAND_SAFEWORD = 510;
|
||||
|
||||
//EXTERNAL MESSAGE MAP
|
||||
integer EXT_COMMAND_COLLAR = 499; //added for collar or cuff commands to put ao to pause or standOff
|
||||
|
||||
integer LM_SETTING_SAVE = 2000; //scripts send messages on this channel to have settings saved to httpdb
|
||||
integer LM_SETTING_RESPONSE = 2002; //the httpdb script will send responses on this channel
|
||||
integer LM_SETTING_DELETE = 2003; //delete token from DB
|
||||
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
|
||||
integer ANIM_START = 7000;
|
||||
integer ANIM_STOP = 7001;
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
integer g_iAOChannel = -782690;
|
||||
integer g_iInterfaceChannel = -12587429;
|
||||
|
||||
key g_kWearer;
|
||||
string WEARERNAME;
|
||||
|
||||
list g_lMenuIDs; //three strided list of avkey, dialogid, and menuname
|
||||
integer g_iMenuStride = 3;
|
||||
|
||||
integer g_iHeightFix = TRUE; //stores setting for should we use heightfix or not
|
||||
list g_lHeightFixAnims; //stores a list of all of the heighfix anims installed in the collar
|
||||
integer g_iMaxHeightAdjust; //largest height fix anim
|
||||
integer g_iMinHeightAdjust; //smallest height fix anim
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
Dialog(key kID, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth, string sName) {
|
||||
key kMenuID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kID + "|" + sPrompt + "|" + (string)iPage + "|" + llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kMenuID);
|
||||
|
||||
integer iIndex = llListFindList(g_lMenuIDs, [kID]);
|
||||
if (~iIndex) g_lMenuIDs = llListReplaceList(g_lMenuIDs, [kID, kMenuID, sName], iIndex, iIndex + g_iMenuStride - 1); //we've alread given a menu to this user. overwrite their entry
|
||||
else g_lMenuIDs += [kID, kMenuID, sName]; //we've not already given this user a menu. append to list
|
||||
//Debug("Made "+sName+" menu.");
|
||||
}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer) {
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else {
|
||||
if (llGetAgentSize(kID)!=ZERO_VECTOR) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
AnimMenu(key kID, integer iAuth) {
|
||||
string sPrompt = WEARERNAME;
|
||||
list lButtons;
|
||||
|
||||
if (g_iAnimLock) {
|
||||
sPrompt += " is forbidden to change or stop poses on their own";
|
||||
lButtons = ["☒ AnimLock"];
|
||||
} else {
|
||||
sPrompt += " is allowed to change or stop poses on their own";
|
||||
lButtons = ["☐ AnimLock"];
|
||||
}
|
||||
|
||||
if (llGetInventoryType("~stiff")==INVENTORY_ANIMATION) {
|
||||
if (g_iPosture) {
|
||||
sPrompt +=" and has their neck forced stiff.";
|
||||
lButtons += ["☒ Posture"];
|
||||
} else {
|
||||
sPrompt +=" and can relax their neck.";
|
||||
lButtons += ["☐ Posture"];
|
||||
}
|
||||
}
|
||||
|
||||
if (g_iTweakPoseAO) lButtons += ["☒ AntiSlide"];
|
||||
else lButtons += ["☐ AntiSlide"];
|
||||
|
||||
lButtons += ["AO Menu", "AO ON", "AO OFF", "Pose"];
|
||||
|
||||
sPrompt +="\n\nwww.opencollar.at/animations";
|
||||
|
||||
Dialog(kID, sPrompt, lButtons+g_lAnimButtons, ["BACK"], 0, iAuth, "Anim");
|
||||
}
|
||||
|
||||
PoseMenu(key kID, integer iPage, integer iAuth) { //create a list
|
||||
string sPrompt = "\nChoose a pose to play.\n\nwww.opencollar.at/animations\n\nCurrent Pose is ";
|
||||
if (g_sCurrentPose == "")sPrompt += "None\n";
|
||||
else sPrompt += g_sCurrentPose +"\n";
|
||||
|
||||
string sHeightFixButton= "☐ HeightFix";
|
||||
if (g_iHeightFix) sHeightFixButton = "☒ HeightFix";
|
||||
|
||||
list lUtilityButtons=["STOP", "BACK"];
|
||||
if (g_iHeightFix) lUtilityButtons=["↑","↓"]+lUtilityButtons;
|
||||
|
||||
Dialog(kID, sPrompt, [sHeightFixButton]+g_lPoseList, lUtilityButtons, iPage, iAuth, "Pose");
|
||||
}
|
||||
|
||||
PoseMoveMenu(key kID, integer iPage, integer iAuth) {
|
||||
string sPrompt = "\nChoose a pose to play.\n\nwww.opencollar.at/animations\n\n";
|
||||
list lButtons;
|
||||
if (g_iTweakPoseAO) {
|
||||
sPrompt += "\nThe AntiSlide tweak is enabled.";
|
||||
lButtons += ["OFF"];
|
||||
} else {
|
||||
sPrompt += "\nThe AntiSlide tweak is disabled.";
|
||||
lButtons += ["ON"];
|
||||
}
|
||||
if (g_sPoseMoveWalk != "") {
|
||||
if (g_iTweakPoseAO) {
|
||||
sPrompt += "\n\nSelected Walk: "+g_sPoseMoveWalk;
|
||||
if (llGetInventoryKey(g_sPoseMoveRun)) sPrompt += "\nSelected Run: "+g_sPoseMoveRun;
|
||||
else sPrompt += "\nSelected Run: ~run";
|
||||
}
|
||||
lButtons += ["☐ none"];
|
||||
} else {
|
||||
sPrompt += "\n\nAntiSlide is not overriding any walk animations.";
|
||||
lButtons += ["☒ none"];
|
||||
}
|
||||
integer i = 0;
|
||||
integer iAnims = llGetInventoryNumber(INVENTORY_ANIMATION) - 1;
|
||||
string sAnim;
|
||||
for (i=0;i<=iAnims;++i) {
|
||||
sAnim = llGetInventoryName(INVENTORY_ANIMATION,i);
|
||||
if (llSubStringIndex(sAnim,llList2String(g_lPoseMoveAnimationPrefix,0)) == 0 ) {
|
||||
if (sAnim == g_sPoseMoveWalk) lButtons += ["☒ " + g_sWalkButtonPrefix+ llGetSubString(sAnim,llStringLength(llList2String(g_lPoseMoveAnimationPrefix,0)),-1)];
|
||||
else lButtons += ["☐ " +g_sWalkButtonPrefix+ llGetSubString(sAnim,llStringLength(llList2String(g_lPoseMoveAnimationPrefix,0)),-1)];
|
||||
}
|
||||
}
|
||||
|
||||
Dialog(kID, sPrompt, lButtons, ["BACK"], 0, iAuth, "AntiSlide");
|
||||
}
|
||||
|
||||
AOMenu(key kID, integer iAuth) { // wrapper to send menu back to the AO's menu
|
||||
llRegionSayTo(g_kWearer,g_iInterfaceChannel, "CollarCommand|" + (string)iAuth + "|ZHAO_MENU|" + (string)kID);
|
||||
llRegionSayTo(g_kWearer,g_iAOChannel, "ZHAO_MENU|" + (string)kID);
|
||||
}
|
||||
|
||||
integer SetPosture(integer iOn, key kCommander) {
|
||||
if (llGetInventoryType("~stiff")!=INVENTORY_ANIMATION) return FALSE;
|
||||
if (llGetPermissions() & PERMISSION_TRIGGER_ANIMATION) {
|
||||
if (iOn && !g_iPosture) {
|
||||
llStartAnimation("~stiff");
|
||||
if (kCommander) Notify(kCommander,"Posture override active.",TRUE);
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, "anim_posture=1","");
|
||||
} else if (!iOn) {
|
||||
llStopAnimation("~stiff");
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, "anim_posture", "");
|
||||
}
|
||||
g_iPosture=iOn;
|
||||
return TRUE;
|
||||
} else {
|
||||
llOwnerSay("Error: Somehow I lost permission to animate you. Try taking me off and re-attaching me.");
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
RefreshAnim() { //g_lAnims can get lost on TP, so re-play g_lAnims[0] here, and call this function in "changed" event on TP
|
||||
if (llGetListLength(g_lAnims)) {
|
||||
if (g_iPosture) llStartAnimation("~stiff");
|
||||
if (llGetPermissions() & PERMISSION_TRIGGER_ANIMATION) {
|
||||
string sAnim = llList2String(g_lAnims, 0);
|
||||
if (llGetInventoryType(sAnim) == INVENTORY_ANIMATION) StartAnim(sAnim); //get and stop currently playing anim
|
||||
} else llOwnerSay( "Error: Somehow I lost permission to animate you. Try taking me off and re-attaching me.");
|
||||
}
|
||||
}
|
||||
|
||||
StartAnim(string sAnim) { //adds anim to queue, calls PlayAnim to play it, and calls AO as necessary
|
||||
if (llGetPermissions() & PERMISSION_TRIGGER_ANIMATION) {
|
||||
if (llGetInventoryType(sAnim) == INVENTORY_ANIMATION) {
|
||||
//stop currently playing anim
|
||||
if (llGetListLength(g_lAnims)) UnPlayAnim(llList2String(g_lAnims, 0));
|
||||
|
||||
//add new anim to list
|
||||
g_lAnims = [sAnim] + g_lAnims; //this way, g_lAnims[0] is always the currently playing anim
|
||||
|
||||
//play new anim
|
||||
PlayAnim(sAnim);
|
||||
|
||||
//switch off AO
|
||||
llRegionSayTo(g_kWearer,g_iInterfaceChannel, "CollarComand|" + (string)EXT_COMMAND_COLLAR + "|ZHAO_STANDOFF");
|
||||
llRegionSayTo(g_kWearer,g_iAOChannel, "ZHAO_STANDOFF");
|
||||
}
|
||||
} else llOwnerSay( "Error: Somehow I lost permission to animate you. Try taking me off and re-attaching me.");
|
||||
}
|
||||
|
||||
PlayAnim(string sAnim){ //plays anim and heightfix, depending on methods configured for each
|
||||
//play anim
|
||||
llStartAnimation(sAnim);
|
||||
|
||||
//play heightfix
|
||||
if (g_iHeightFix) {
|
||||
integer iIndex = llListFindList(g_lAnimScalars, [sAnim]);
|
||||
if (~iIndex) { //we just started playing an anim in our g_lAnimScalars list
|
||||
llSleep((float)llList2String(g_lAnimScalars, iIndex + 2)); //pause to give certain anims time to ease in
|
||||
|
||||
vector vAvScale = llGetAgentSize(g_kWearer);
|
||||
float fScalar = (float)llList2String(g_lAnimScalars, iIndex + 1);
|
||||
g_iAdjustment = llRound(vAvScale.z * fScalar);
|
||||
if (g_iAdjustment > g_iMaxHeightAdjust) g_iAdjustment = g_iMaxHeightAdjust;
|
||||
else if (g_iAdjustment < g_iMinHeightAdjust) g_iAdjustment = g_iMinHeightAdjust;
|
||||
|
||||
llStartAnimation("~" + (string)g_iAdjustment);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
StopAnim(string sAnim) { //deals with removing anim from queue, calls UnPlayAnim to stop it, calls AO as nexessary
|
||||
if (llGetPermissions() & PERMISSION_TRIGGER_ANIMATION) {
|
||||
if (llGetInventoryType(sAnim) == INVENTORY_ANIMATION) {
|
||||
//remove all instances of stopped anim from the queue
|
||||
while(~llListFindList(g_lAnims,[sAnim])){
|
||||
integer n=llListFindList(g_lAnims,[sAnim]);
|
||||
g_lAnims=llDeleteSubList(g_lAnims, n, n);
|
||||
}
|
||||
|
||||
//stop the pose
|
||||
UnPlayAnim(sAnim);
|
||||
|
||||
//play the new g_lAnims[0]. If anim list is empty, turn AO back on
|
||||
if (llGetListLength(g_lAnims)) PlayAnim(llList2String(g_lAnims, 0));
|
||||
else {
|
||||
llRegionSayTo(g_kWearer,g_iInterfaceChannel, "CollarComand|" + (string)EXT_COMMAND_COLLAR + "|ZHAO_STANDON");
|
||||
llRegionSayTo(g_kWearer,g_iAOChannel, "ZHAO_STANDON");
|
||||
}
|
||||
}
|
||||
} else llOwnerSay( "Error: Somehow I lost permission to animate you. Try taking me off and re-attaching me.");
|
||||
}
|
||||
|
||||
UnPlayAnim(string sAnim){ //stops anim and heightfix, depending on methods configured for each
|
||||
//stop the pose
|
||||
llStopAnimation(sAnim);
|
||||
|
||||
//stop any currently-playing height adjustment
|
||||
if (g_iAdjustment) {
|
||||
llStopAnimation("~" + (string)g_iAdjustment);
|
||||
g_iAdjustment = 0;
|
||||
}
|
||||
}
|
||||
|
||||
CreateAnimList() {
|
||||
g_lPoseList=[];
|
||||
g_lHeightFixAnims=[];
|
||||
g_iNumberOfAnims=llGetInventoryNumber(INVENTORY_ANIMATION);
|
||||
|
||||
integer iNumberOfAnims = g_iNumberOfAnims;
|
||||
while (iNumberOfAnims--) {
|
||||
string sName=llGetInventoryName(INVENTORY_ANIMATION, iNumberOfAnims);
|
||||
|
||||
if (sName != "" && llGetSubString(sName, 0, 0) != "~") g_lPoseList+=[sName]; //check here if the anim start with ~ or for some reason does not get a name returned (spares to check that all again in the menu ;)
|
||||
|
||||
if (llSubStringIndex(sName,"~")==0 && llStringLength(sName)==4) {
|
||||
sName=llGetSubString(sName,1,3);
|
||||
if ((integer)sName != 0) g_lHeightFixAnims += sName;
|
||||
}
|
||||
}
|
||||
|
||||
g_lHeightFixAnims=llListSort(g_lHeightFixAnims,1,1);
|
||||
g_iMaxHeightAdjust=llList2Integer(g_lHeightFixAnims,0);
|
||||
g_iMinHeightAdjust=llList2Integer(g_lHeightFixAnims,-1);
|
||||
}
|
||||
|
||||
AdjustOffset(integer direction) {
|
||||
if (llGetListLength(g_lAnims)>0) { //first, check we're running an anim
|
||||
//get sleep time from list
|
||||
string sNewAnim = llList2String(g_lAnims, 0);
|
||||
integer iIndex = llListFindList(g_lAnimScalars, [sNewAnim]);
|
||||
string sleepTime="2.0";
|
||||
if (iIndex != -1) {
|
||||
sleepTime=llList2String(g_lAnimScalars, iIndex + 2);
|
||||
g_lAnimScalars=llDeleteSubList(g_lAnimScalars,iIndex,iIndex+2); //we re-write it at the end
|
||||
}
|
||||
|
||||
//stop last adjustment anim and play next one
|
||||
integer iOldAdjustment=g_iAdjustment;
|
||||
if (g_iAdjustment) {
|
||||
g_iAdjustment+=direction;
|
||||
while (g_iAdjustment > g_iMinHeightAdjust && g_iAdjustment < g_iMaxHeightAdjust && !~llListFindList(g_lHeightFixAnims,[(string)g_iAdjustment])) {
|
||||
//Debug("Re-adjust "+(string)g_iAdjustment);
|
||||
g_iAdjustment+=direction;
|
||||
}
|
||||
|
||||
if (g_iAdjustment > g_iMaxHeightAdjust) {
|
||||
g_iAdjustment = 0;
|
||||
llOwnerSay(sNewAnim+" height fix cancelled");
|
||||
} else if (g_iAdjustment < g_iMinHeightAdjust) g_iAdjustment = g_iMinHeightAdjust;
|
||||
} else if (direction == -1) g_iAdjustment=g_iMaxHeightAdjust;
|
||||
|
||||
if (g_iAdjustment != 0) {
|
||||
llStartAnimation("~" + (string)g_iAdjustment);
|
||||
|
||||
//now calculate the new offset for notecard dump print
|
||||
vector avscale = llGetAgentSize(g_kWearer);
|
||||
float test = (float)g_iAdjustment/avscale.z;
|
||||
llOwnerSay(sNewAnim+"|"+(string)test+"|"+sleepTime);
|
||||
|
||||
//and store it
|
||||
g_lAnimScalars+=[sNewAnim,test,sleepTime];
|
||||
}
|
||||
|
||||
if (iOldAdjustment && iOldAdjustment != g_iAdjustment) {
|
||||
llStopAnimation("~" + (string)iOldAdjustment);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
UserCommand(integer iNum, string sStr, key kID) {
|
||||
if (iNum == COMMAND_EVERYONE) return; // No command for people with no privilege in this plugin.
|
||||
|
||||
list lParams = llParseString2List(sStr, [" "], []);
|
||||
string sCommand = llToLower(llList2String(lParams, 0));
|
||||
string sValue = llToLower(llList2String(lParams, 1));
|
||||
if (sCommand == "menu") {
|
||||
string sSubmenu = llGetSubString(sStr, 5, -1);
|
||||
if (sSubmenu == "Pose") PoseMenu(kID, 0, iNum);
|
||||
else if (sSubmenu == "AntiSlide") PoseMoveMenu(kID,0,iNum);
|
||||
else if (sSubmenu == "AO") AOMenu(kID, iNum);
|
||||
else if (sSubmenu == "Animations") AnimMenu(kID, iNum);
|
||||
} else if (sStr == "release" || sStr == "stop") { //only release if person giving command outranks person who posed us
|
||||
if (iNum <= g_iLastRank || !g_iAnimLock) {
|
||||
g_iLastRank = 0;
|
||||
llMessageLinked(LINK_SET, ANIM_STOP, g_sCurrentPose, "");
|
||||
g_sCurrentPose = "";
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, "anim_currentpose", "");
|
||||
}
|
||||
} else if (sStr == "animations") AnimMenu(kID, iNum); //give menu
|
||||
else if (sStr == "pose") PoseMenu(kID, 0, iNum); //pose menu
|
||||
else if (sStr == "runaway" && (iNum == COMMAND_OWNER || iNum == COMMAND_WEARER)) { //stop pose on runaway
|
||||
if (g_sCurrentPose != "") StopAnim(g_sCurrentPose);
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, "anim_currentpose", "");
|
||||
llResetScript();
|
||||
} else if ( sCommand=="posture") { //posture
|
||||
if ( sValue=="on") { //posture
|
||||
if (iNum<=COMMAND_WEARER) {
|
||||
g_iLastPostureRank=iNum;
|
||||
SetPosture(TRUE,kID);
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, "anim_PostureRank="+(string)g_iLastPostureRank,"");
|
||||
llOwnerSay( "Your neck is locked in place.");
|
||||
if (kID != g_kWearer) Notify(kID, WEARERNAME + "'s neck is locked in place.", FALSE);
|
||||
} else Notify(kID,"Only owners can do that, sorry.",FALSE);
|
||||
} else if ( sValue=="off") {
|
||||
if (iNum<=g_iLastPostureRank) {
|
||||
g_iLastPostureRank=COMMAND_WEARER;
|
||||
SetPosture(FALSE,kID);
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, "anim_PostureRank", "");
|
||||
llOwnerSay( "You can move your neck again.");
|
||||
if (kID != g_kWearer) Notify(kID, WEARERNAME + " is free to move their neck.", FALSE);
|
||||
} else Notify(kID,"Someone more important locked "+WEARERNAME+"'s neck in this position",FALSE);
|
||||
}
|
||||
} else if ( sCommand=="animlock") { //anim lock
|
||||
if ( sValue=="on") { //anim lock
|
||||
if (iNum<=COMMAND_WEARER) {
|
||||
g_iLastPoselockRank=iNum;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, "anim_PoselockRank="+(string)g_iLastPoselockRank,"");
|
||||
g_iAnimLock = TRUE;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, "anim_animlock=1", "");
|
||||
llOwnerSay( "Only owners can change or stop your poses now.");
|
||||
if (kID != g_kWearer) Notify(kID, WEARERNAME + " can have their poses changed or stopped only by owners.", FALSE);
|
||||
} else Notify(kID,"You don't have permission to lock "+WEARERNAME+" in this position",FALSE);
|
||||
} else if ( sValue=="off") {
|
||||
if (iNum<=g_iLastPoselockRank) {
|
||||
g_iAnimLock = FALSE;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, "anim_animlock", "");
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, "anim_PoselockRank", "");
|
||||
llOwnerSay( "You are now free to change or stop poses on your own.");
|
||||
if (kID != g_kWearer) Notify(kID, WEARERNAME + " is free to change or stop poses on their own.", FALSE);
|
||||
} else Notify(kID,"Someone more important locked "+WEARERNAME+" in this position",FALSE);
|
||||
}
|
||||
} else if ( sCommand=="heightfix") { //heightfix
|
||||
if ((iNum == COMMAND_OWNER)||(kID == g_kWearer)) {
|
||||
if (sValue=="on"){
|
||||
g_iHeightFix = TRUE;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, "anim_HFix", "");
|
||||
} else if (sValue=="off"){
|
||||
g_iHeightFix = FALSE;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, "anim_HFix=0", "");
|
||||
}
|
||||
Notify(kID, "HeightFix override "+sValue+".", TRUE);
|
||||
|
||||
if (g_sCurrentPose != "") {
|
||||
StopAnim(g_sCurrentPose);
|
||||
StartAnim(g_sCurrentPose);
|
||||
}
|
||||
} else Notify(kID,"Only owners or the wearer can change HeightFix settings.",FALSE);
|
||||
} else if (sCommand == "ao") { //AO
|
||||
if (sValue == "" || sValue == "menu") AOMenu(kID, iNum);
|
||||
else if (sValue == "off") {
|
||||
llRegionSayTo(g_kWearer,g_iInterfaceChannel, "CollarCommand|" + (string)iNum + "|ZHAO_AOOFF|" + (string)kID);
|
||||
llRegionSayTo(g_kWearer,g_iAOChannel,"ZHAO_AOOFF");
|
||||
} else if (sValue == "on") {
|
||||
llRegionSayTo(g_kWearer,g_iInterfaceChannel, "CollarCommand|" + (string)iNum + "|ZHAO_AOON|" + (string)kID);
|
||||
llRegionSayTo(g_kWearer,g_iAOChannel,"ZHAO_AOON");
|
||||
} else if (sValue == "lock") llRegionSayTo(g_kWearer,g_iInterfaceChannel, "CollarCommand|" + (string)iNum + "|ZHAO_LOCK|" + (string)kID);
|
||||
else if (sValue == "unlock") llRegionSayTo(g_kWearer,g_iInterfaceChannel, "CollarCommand|" + (string)iNum + "|ZHAO_UNLOCK|" + (string)kID);
|
||||
else if (sValue == "hide") llRegionSayTo(g_kWearer,g_iInterfaceChannel, "CollarCommand|" + (string)iNum + "|ZHAO_AOHIDE|" + (string)kID);
|
||||
else if (sValue == "show") llRegionSayTo(g_kWearer,g_iInterfaceChannel, "CollarCommand|" + (string)iNum + "|ZHAO_AOSHOW|" + (string)kID);
|
||||
} else if (sCommand == "antislide") { //check for text command of PoseMoveMenu's string
|
||||
if ((iNum == COMMAND_OWNER)||(kID == g_kWearer)) {
|
||||
string sValueNotLower = llList2String(lParams, 1);
|
||||
if (sValue == "on") {
|
||||
g_iTweakPoseAO = 1;
|
||||
llMessageLinked(LINK_THIS, LM_SETTING_SAVE, "anim_TweakPoseAO=1" , "");
|
||||
RefreshAnim();
|
||||
Notify(kID, "AntiSlide is now enabled.", TRUE);
|
||||
} else if (sValue == "off") {
|
||||
g_iTweakPoseAO = 0;
|
||||
llMessageLinked(LINK_THIS, LM_SETTING_DELETE, "anim_TweakPoseAO", "");
|
||||
RefreshAnim();
|
||||
Notify(kID, "AntiSlide is now disabled.", TRUE);
|
||||
} else if (sValue == "none") {
|
||||
llMessageLinked(LINK_THIS, LM_SETTING_DELETE, "anim_PoseMoveWalk", "");
|
||||
g_sPoseMoveWalk = "";
|
||||
g_sPoseMoveRun = "";
|
||||
RefreshAnim();
|
||||
Notify(kID, "AntiSlide animation is \"none\".", TRUE);
|
||||
} else if (llGetInventoryType(llList2String(g_lPoseMoveAnimationPrefix,0)+sValueNotLower)==INVENTORY_ANIMATION) {
|
||||
g_sPoseMoveWalk = llList2String(g_lPoseMoveAnimationPrefix,0) + sValueNotLower;
|
||||
g_sPoseMoveRun = llList2String(g_lPoseMoveAnimationPrefix,1) + sValueNotLower;
|
||||
llMessageLinked(LINK_THIS, LM_SETTING_SAVE, "anim_PoseMoveWalk=" + g_sPoseMoveWalk, "");
|
||||
llMessageLinked(LINK_THIS, LM_SETTING_SAVE, "anim_PoseMoveRun=" + g_sPoseMoveRun, "");
|
||||
RefreshAnim();
|
||||
Notify(kID, "AntiSlide animation is \""+sValueNotLower+"\".", TRUE);
|
||||
} else if (sValue=="") PoseMoveMenu(kID,0,iNum);
|
||||
else Notify(kID,"Can't find animation "+llList2String(g_lPoseMoveAnimationPrefix,0)+sValueNotLower,FALSE);
|
||||
} else llOwnerSay( "Only owners or the wearer can change antislide settings.");
|
||||
} else if (llGetInventoryType(sStr) == INVENTORY_ANIMATION) { //strike a pose...
|
||||
if (iNum <= g_iLastRank || !g_iAnimLock || g_sCurrentPose == "") {
|
||||
if (g_sCurrentPose != "") llMessageLinked(LINK_SET, ANIM_STOP, g_sCurrentPose, "");
|
||||
g_sCurrentPose = sStr;
|
||||
g_iLastRank = iNum;
|
||||
llMessageLinked(LINK_SET, ANIM_START, g_sCurrentPose, "");
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, "anim_currentpose=" + g_sCurrentPose + "," + (string)g_iLastRank, "");
|
||||
} else Notify(kID, "Someone more important has locked "+WEARERNAME+" in this position.",FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
default {
|
||||
on_rez(integer iNum) {
|
||||
if (llGetOwner() != g_kWearer) llResetScript();
|
||||
//if (llGetAttached()) llRequestPermissions(g_kWearer, PERMISSION_TRIGGER_ANIMATION | PERMISSION_OVERRIDE_ANIMATIONS );
|
||||
}
|
||||
|
||||
state_entry() {
|
||||
//llSetMemoryLimit(65536); //this script needs to be profiled, and its memory limited
|
||||
g_kWearer = llGetOwner();
|
||||
WEARERNAME = llKey2Name(g_kWearer); //quick and dirty default, will get replaced by value from settings
|
||||
g_iInterfaceChannel = (integer)("0x" + llGetSubString(g_kWearer,30,-1));
|
||||
if (g_iInterfaceChannel > 0) g_iInterfaceChannel = -g_iInterfaceChannel;
|
||||
|
||||
if (llGetAttached()) llRequestPermissions(g_kWearer, PERMISSION_TRIGGER_ANIMATION);
|
||||
CreateAnimList();
|
||||
if (llGetInventoryKey("~heightscalars")) g_kDataID = llGetNotecardLine("~heightscalars", g_iLine); //start reading the ~heightscalars notecard
|
||||
//Debug("Starting");
|
||||
}
|
||||
|
||||
dataserver(key kID, string sData) {
|
||||
if (kID == g_kDataID) {
|
||||
if (sData != EOF) {
|
||||
g_lAnimScalars += llParseString2List(sData, ["|"], []);
|
||||
g_kDataID = llGetNotecardLine("~heightscalars", ++g_iLine);
|
||||
}
|
||||
//else Debug("Notecard read complete");
|
||||
}
|
||||
}
|
||||
|
||||
run_time_permissions(integer iPerm) {
|
||||
if (iPerm & PERMISSION_TRIGGER_ANIMATION) {
|
||||
if (g_iPosture) llStartAnimation("~stiff");
|
||||
}
|
||||
}
|
||||
|
||||
attach(key kID) {
|
||||
if (kID == NULL_KEY) { //we were just detached. clear the anim list and tell the ao to play stands again.
|
||||
llRegionSayTo(g_kWearer,g_iInterfaceChannel, (string)EXT_COMMAND_COLLAR + "|ZHAO_STANDON");
|
||||
llRegionSayTo(g_kWearer,g_iAOChannel, "ZHAO_STANDON");
|
||||
g_lAnims = [];
|
||||
}
|
||||
else llRequestPermissions(g_kWearer, PERMISSION_TRIGGER_ANIMATION);
|
||||
}
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID) {
|
||||
if (iNum <= COMMAND_EVERYONE && iNum >= COMMAND_OWNER) UserCommand(iNum, sStr, kID);
|
||||
else if (iNum == ANIM_START) StartAnim(sStr);
|
||||
else if (iNum == ANIM_STOP) StopAnim(sStr);
|
||||
else if (iNum == MENUNAME_REQUEST && sStr == "Main") {
|
||||
llMessageLinked(LINK_SET, MENUNAME_RESPONSE, "Main|Animations", ""); //no need for fixed main menu
|
||||
llMessageLinked(LINK_SET, MENUNAME_REQUEST, "Animations", "");
|
||||
} else if (iNum == MENUNAME_RESPONSE) {
|
||||
if (llSubStringIndex(sStr, "Animations|")==0) { //if sStr starts with "Animations|"
|
||||
string child = llList2String(llParseString2List(sStr, ["|"], []), 1);
|
||||
if (llListFindList(g_lAnimButtons, [child]) == -1) g_lAnimButtons += [child];
|
||||
}
|
||||
} else if (iNum == COMMAND_SAFEWORD) { // saefword command recieved, release animation
|
||||
if (llGetInventoryType(g_sCurrentPose) == INVENTORY_ANIMATION) {
|
||||
g_iLastRank = 0;
|
||||
llMessageLinked(LINK_SET, ANIM_STOP, g_sCurrentPose, "");
|
||||
g_iAnimLock = FALSE;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, "anim_animlock", "");
|
||||
g_sCurrentPose = "";
|
||||
}
|
||||
} else if (iNum == LM_SETTING_RESPONSE) {
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
integer i = llSubStringIndex(sToken, "_");
|
||||
if (llGetSubString(sToken, 0, i) == "anim_") {
|
||||
sToken = llGetSubString(sToken, i + 1, -1);
|
||||
if (sToken == "currentpose") {
|
||||
list lAnimParams = llParseString2List(sValue, [","], []);
|
||||
g_sCurrentPose = llList2String(lAnimParams, 0);
|
||||
g_iLastRank = (integer)llList2String(lAnimParams, 1);
|
||||
llMessageLinked(LINK_SET, ANIM_START, g_sCurrentPose, "");
|
||||
} else if (sToken == "animlock") g_iAnimLock = (integer)sValue;
|
||||
else if (sToken =="posture") SetPosture((integer)sValue,NULL_KEY);
|
||||
else if (sToken == "PoseMoveWalk") g_sPoseMoveWalk = sValue;
|
||||
else if (sToken == "PoseMoveRun") g_sPoseMoveRun = sValue;
|
||||
else if (sToken == "TweakPoseAO") g_iTweakPoseAO = (integer)sValue;
|
||||
else if (sToken == "PostureRank") g_iLastPostureRank= (integer)sValue;
|
||||
else if (sToken == "PoselockRank") g_iLastPoselockRank= (integer)sValue;
|
||||
else if (sToken == "TweakPoseAO") g_iTweakPoseAO = (integer)sValue;
|
||||
else if (sToken == "HFix") g_iHeightFix = (integer)sValue;
|
||||
} else if (sToken == "Global_WearerName") WEARERNAME = sValue;
|
||||
} else if (iNum == DIALOG_RESPONSE) {
|
||||
integer iMenuIndex = llListFindList(g_lMenuIDs, [kID]);
|
||||
if (~iMenuIndex) { //got a menu response meant for us. pull out values
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = llList2Integer(lMenuParams, 3);
|
||||
string sMenuType = llList2String(g_lMenuIDs, iMenuIndex + 1);
|
||||
|
||||
g_lMenuIDs = llDeleteSubList(g_lMenuIDs, iMenuIndex - 1, iMenuIndex - 2 + g_iMenuStride);
|
||||
|
||||
if (sMenuType == "Anim") {
|
||||
//Debug("Got message "+sMessage);
|
||||
if (sMessage == "BACK") llMessageLinked(LINK_SET, iAuth, "menu Main", kAv);
|
||||
else if (sMessage == "Pose") PoseMenu(kAv, 0, iAuth);
|
||||
else if (llGetSubString(sMessage, 2, -1) == "AntiSlide") PoseMoveMenu(kAv,iNum,iAuth); //This is the Animation menu item, we need to call the PoseMoveMenu item from here...
|
||||
else if (~llListFindList(g_lAnimButtons, [sMessage])) llMessageLinked(LINK_SET, iAuth, "menu " + sMessage, kAv); // SA: can be child scripts menus, not handled in UserCommand()
|
||||
else if (sMessage == "AO Menu") {
|
||||
Notify(kAv, "Attempting to trigger the AO menu. This will only work if " + WEARERNAME + " is using a Submissive AO or an AO Link script in their normal AO.", FALSE);
|
||||
AOMenu(kAv, iAuth);
|
||||
} else {
|
||||
if (sMessage== "☐ AnimLock") UserCommand(iAuth, "animlock on", kAv);
|
||||
else if (sMessage== "☒ AnimLock") UserCommand(iAuth, "animlock off", kAv);
|
||||
else if (sMessage== "☐ Posture") UserCommand(iAuth, "posture on", kAv);
|
||||
else if (sMessage== "☒ Posture") UserCommand(iAuth, "posture off", kAv);
|
||||
else UserCommand(iAuth, sMessage, kAv);
|
||||
AnimMenu(kAv, iAuth);
|
||||
}
|
||||
} else if (sMenuType == "Pose") {
|
||||
if (sMessage == "BACK") AnimMenu(kAv, iAuth); //return on parent menu, so the animmenu below doesn't come up
|
||||
else {
|
||||
if (sMessage == "STOP") UserCommand(iAuth, "release", kAv);
|
||||
else if (sMessage == "↑") AdjustOffset(1);
|
||||
else if (sMessage == "↓") AdjustOffset(-1);
|
||||
else if (sMessage == "☒ HeightFix") UserCommand(iAuth, "heightfix off", kAv);
|
||||
else if (sMessage == "☐ HeightFix") UserCommand(iAuth, "heightfix on", kAv);
|
||||
else UserCommand(iAuth, sMessage, kAv); //got pose name
|
||||
PoseMenu(kAv, iPage, iAuth);
|
||||
}
|
||||
} else if (sMenuType == "AntiSlide") {
|
||||
if (sMessage == "BACK") AnimMenu(kAv, iAuth); //return on parent menu, so the animmenu below doesn't come up
|
||||
else {
|
||||
if (sMessage == "ON") UserCommand(iAuth, "antislide on", kAv);
|
||||
else if (sMessage == "OFF") UserCommand(iAuth, "antislide off", kAv);
|
||||
else if (llGetSubString(sMessage,2,-1) == "none" ) UserCommand(iAuth, "antislide none", kAv);
|
||||
else if (llGetInventoryType(llList2String(g_lPoseMoveAnimationPrefix,0)+llGetSubString(sMessage,2+llStringLength(g_sWalkButtonPrefix),-1))==INVENTORY_ANIMATION) UserCommand(iAuth, "antislide "+llGetSubString(sMessage,2+llStringLength(g_sWalkButtonPrefix),-1), kAv);
|
||||
PoseMoveMenu(kAv,iNum,iAuth);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
changed(integer iChange) {
|
||||
if (iChange & CHANGED_OWNER) llResetScript();
|
||||
if (iChange & CHANGED_TELEPORT) RefreshAnim();
|
||||
|
||||
if (iChange & CHANGED_INVENTORY) { //start re-reading the ~heightscalars notecard
|
||||
g_lAnimScalars = [];
|
||||
g_iLine = 0;
|
||||
if (llGetInventoryKey("~heightscalars")) g_kDataID = llGetNotecardLine("~heightscalars", g_iLine);
|
||||
if (g_iNumberOfAnims!=llGetInventoryNumber(INVENTORY_ANIMATION)) CreateAnimList();
|
||||
}
|
||||
/*
|
||||
if (iChange & CHANGED_REGION) {
|
||||
if (g_iProfiled) {
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,929 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - auth //
|
||||
// version 3.994 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
key g_kWearer;
|
||||
|
||||
list g_lOwners;//strided list in form key,name
|
||||
list g_lSecOwners;//strided list in the form key,name
|
||||
list g_lBlackList;//list of blacklisted UUID
|
||||
list g_lTempOwners;//list of temp owners UUID. Temp owner is just like normal owner, but can't add new owners.
|
||||
|
||||
key g_kGroup = "";
|
||||
string g_sGroupName;
|
||||
integer g_iGroupEnabled = FALSE;
|
||||
|
||||
string g_sParentMenu = "Main";
|
||||
string g_sSubMenu = "Access";
|
||||
integer g_iRunawayDisable=0;
|
||||
|
||||
string g_sPrefix;
|
||||
|
||||
list g_lQueryId; //5 strided list of dataserver/http request: key, uuid, requestType, kAv, remenu. For AV name/group name lookups
|
||||
integer g_iQueryStride=5;
|
||||
|
||||
//added for attachment auth
|
||||
integer g_iInterfaceChannel;
|
||||
|
||||
//MESSAGE MAP
|
||||
integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
//integer COMMAND_RLV_RELAY = 507;
|
||||
integer COMMAND_SAFEWORD = 510; // new for safeword
|
||||
integer COMMAND_BLACKLIST = 520;
|
||||
// added so when the sub is locked out they can use postions
|
||||
integer COMMAND_WEARERLOCKEDOUT = 521;
|
||||
|
||||
integer POPUP_HELP = 1001;
|
||||
|
||||
integer LM_SETTING_SAVE = 2000;//scripts send messages on this channel to have settings saved to httpdb
|
||||
//str must be in form of "token=value"
|
||||
integer LM_SETTING_REQUEST = 2001;//when startup, scripts send requests for settings on this channel
|
||||
integer LM_SETTING_RESPONSE = 2002;//the httpdb script will send responses on this channel
|
||||
integer LM_SETTING_DELETE = 2003;//delete token from DB
|
||||
integer LM_SETTING_EMPTY = 2004;//sent by httpdb script when a token has no value in the db
|
||||
|
||||
//integer MENUNAME_REQUEST = 3000;
|
||||
//integer MENUNAME_RESPONSE = 3001;
|
||||
//integer MENUNAME_REMOVE = 3003;
|
||||
|
||||
//integer RLV_CMD = 6000;
|
||||
//integer RLV_REFRESH = 6001;//RLV plugins should reinstate their restrictions upon receiving this message.
|
||||
//integer RLV_CLEAR = 6002;//RLV plugins should clear their restriction lists upon receiving this message.
|
||||
|
||||
//integer ANIM_START = 7000;//send this with the name of an anim in the string part of the message to play the anim
|
||||
//integer ANIM_STOP = 7001;//send this with the name of an anim in the string part of the message to stop the anim
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
integer FIND_AGENT = -9005;
|
||||
|
||||
//added for attachment auth (garvin)
|
||||
integer ATTACHMENT_REQUEST = 600;
|
||||
integer ATTACHMENT_RESPONSE = 601;
|
||||
//new evolution style to handle attachment auth
|
||||
integer INTERFACE_REQUEST = -9006;
|
||||
integer INTERFACE_RESPONSE = -9007;
|
||||
|
||||
//this can change
|
||||
integer WEARERLOCKOUT=620;
|
||||
|
||||
string UPMENU = "BACK";
|
||||
|
||||
string CTYPE = "collar";
|
||||
|
||||
integer g_iOpenAccess; // 0: disabled, 1: openaccess
|
||||
integer g_iLimitRange=1; // 0: disabled, 1: limited
|
||||
integer g_iWearerlocksOut;
|
||||
|
||||
list g_lMenuIDs;
|
||||
integer g_iMenuStride = 3;
|
||||
|
||||
key REQUEST_KEY;
|
||||
|
||||
string g_sScript;
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
Dialog(key kID, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth, string sName) {
|
||||
key kMenuID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kID + "|" + sPrompt + "|" + (string)iPage + "|" + llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kMenuID);
|
||||
|
||||
integer iIndex = llListFindList(g_lMenuIDs, [kID]);
|
||||
if (~iIndex) g_lMenuIDs = llListReplaceList(g_lMenuIDs, [kID, kMenuID, sName], iIndex, iIndex + g_iMenuStride - 1);
|
||||
else g_lMenuIDs += [kID, kMenuID, sName];
|
||||
|
||||
//Debug("Made "+sName+" menu.");
|
||||
}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer) {
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else {
|
||||
if (llGetAgentSize(kID)!=ZERO_VECTOR) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
FetchAvi(integer iAuth, string type, string name, key kAv) {
|
||||
if (name == "") name = " ";
|
||||
string out = llDumpList2String(["getavi_", g_sScript, kAv, iAuth, type, name], "|");
|
||||
integer i = 0;
|
||||
list src = g_lOwners;
|
||||
if (type == "tempowner") src += g_lTempOwners;
|
||||
if (type == "secowner") src += g_lSecOwners;
|
||||
else if (type == "blacklist") src = g_lBlackList;
|
||||
list exclude; // build list of existing-listed keys to exclude from name search
|
||||
for (; i < llGetListLength(src); i += 2)
|
||||
{
|
||||
exclude += [llList2String(src, i)];
|
||||
}
|
||||
if (llGetListLength(exclude))
|
||||
out += "|" + llDumpList2String(exclude, ",");
|
||||
REQUEST_KEY = llGenerateKey();
|
||||
llMessageLinked(LINK_THIS, FIND_AGENT, out, REQUEST_KEY);
|
||||
}
|
||||
|
||||
AuthMenu(key kAv, integer iAuth) {
|
||||
string sPrompt = "\nOpen the pod bay doors, "+CTYPE+".\n\nwww.opencollar.at/access";
|
||||
list lButtons = ["+ Owner", "+ Secowner", "+ Blacklisted", "− Owner", "− Secowner", "− Blacklisted"];
|
||||
|
||||
if (g_kGroup=="") lButtons += ["Group ☐"]; //set group
|
||||
else lButtons += ["Group ☒"]; //unset group
|
||||
|
||||
if (g_iOpenAccess) lButtons += ["Public ☒"]; //set open access
|
||||
else lButtons += ["Public ☐"]; //unset open access
|
||||
|
||||
if (g_iLimitRange) lButtons += ["LimitRange ☒"]; //set ranged
|
||||
else lButtons += ["LimitRange ☐"]; //unset open ranged
|
||||
|
||||
lButtons += ["Runaway","List Owners"];
|
||||
|
||||
Dialog(kAv, sPrompt, lButtons, [UPMENU], 0, iAuth, "Auth");
|
||||
}
|
||||
|
||||
RemPersonMenu(key kID, string sToken, integer iAuth) {
|
||||
list lPeople;
|
||||
if (sToken=="owner") lPeople=g_lOwners;
|
||||
else if (sToken=="tempowner") lPeople=g_lTempOwners;
|
||||
else if (sToken=="secowner") lPeople=g_lSecOwners;
|
||||
else if (sToken=="blacklist") lPeople=g_lBlackList;
|
||||
else return;
|
||||
|
||||
if (llGetListLength(lPeople)){
|
||||
string sPrompt = "\nChoose the person to remove:\n";
|
||||
list lButtons;
|
||||
|
||||
integer iNum= llGetListLength(lPeople);
|
||||
integer n;
|
||||
for (n=1; n <= iNum/2; n = n + 1) {
|
||||
string sName = llList2String(lPeople, 2*n-1);
|
||||
if (sName != "") {
|
||||
sPrompt += "\n" + (string)(n) + " - " + sName;
|
||||
lButtons += [(string)(n)];
|
||||
}
|
||||
}
|
||||
lButtons += ["Remove All"];
|
||||
|
||||
Dialog(kID, sPrompt, lButtons, [UPMENU], 0, iAuth, "rem"+sToken);
|
||||
} else {
|
||||
Notify(kID, "The list is empty", FALSE);
|
||||
AuthMenu(kID, iAuth);
|
||||
}
|
||||
}
|
||||
|
||||
RemovePerson(string sName, string sToken, key kCmdr) {
|
||||
//where "lPeople" is a 2-strided list in form key,name
|
||||
//looks for strides identified by "name", removes them if found, and returns the list
|
||||
//also handles notifications so as to reduce code duplication in the link message event
|
||||
//Debug("removing: " + sName);
|
||||
//all our comparisons will be cast to lower case first
|
||||
|
||||
list lPeople;
|
||||
if (sToken=="owner") lPeople=g_lOwners;
|
||||
else if (sToken=="tempowner") lPeople=g_lTempOwners;
|
||||
else if (sToken=="secowner") lPeople=g_lSecOwners;
|
||||
else if (sToken=="blacklist") lPeople=g_lBlackList;
|
||||
else return;
|
||||
|
||||
if ((~llListFindList(g_lTempOwners,[(string)kCmdr])) && ! (~llListFindList(g_lOwners,[(string)kCmdr])) && sToken != "tempowner"){
|
||||
Notify(kCmdr,"Temporary owners can only change the temporary owners list",FALSE);
|
||||
return;
|
||||
}
|
||||
|
||||
sName = llToLower(sName);
|
||||
integer iFound=FALSE;
|
||||
integer numPeople= llGetListLength(lPeople)/2;
|
||||
while (numPeople--) {
|
||||
string sThisName = llToLower(llList2String(lPeople, numPeople*2+1));
|
||||
//Debug("checking " + sThisName);
|
||||
if (sName == sThisName || sName == "remove all") { //remove name and key
|
||||
|
||||
if (sToken == "owner") {
|
||||
Notify(llList2String(lPeople,numPeople*2),"You have been removed as owner on the " + CTYPE + " of " + llKey2Name(g_kWearer) + ".",FALSE);
|
||||
llRegionSayTo(g_kWearer, g_iInterfaceChannel, "CollarCommand|499|OwnerChange"); //tell attachments owner changed
|
||||
} else if (sToken == "secowner") {
|
||||
Notify(llList2String(lPeople,numPeople*2),"You have been removed as secowner on the " + CTYPE + " of " + llKey2Name(g_kWearer) + ".",FALSE);
|
||||
llRegionSayTo(g_kWearer, g_iInterfaceChannel, "CollarCommand|499|OwnerChange"); //tell attachments owner changed
|
||||
}
|
||||
lPeople = llDeleteSubList(lPeople, numPeople*2, numPeople*2+1);
|
||||
|
||||
Notify(kCmdr, sThisName + " removed from list.", TRUE);
|
||||
iFound=TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
if (iFound){
|
||||
//save to db
|
||||
string sOldToken=sToken;
|
||||
if (sToken == "secowner") sOldToken+="s";
|
||||
if (llGetListLength(lPeople)>0)
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + sOldToken + "=" + llDumpList2String(lPeople, ","), "");
|
||||
else
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, g_sScript + sOldToken, "");
|
||||
//store temp list
|
||||
if (sToken=="owner") g_lOwners = lPeople;
|
||||
else if (sToken=="tempowner") g_lTempOwners = lPeople;
|
||||
else if (sToken=="secowner") g_lSecOwners = lPeople;
|
||||
else if (sToken=="blacklist") g_lBlackList = lPeople;
|
||||
|
||||
} else
|
||||
Notify(kCmdr, "Error: '" + sName + "' not in list.",FALSE);
|
||||
}
|
||||
|
||||
AddUniquePerson(key kPerson, string sName, string sToken, key kAv) {
|
||||
list lPeople;
|
||||
//Debug(llKey2Name(kAv)+" is adding "+llKey2Name(kPerson)+" to list "+sToken);
|
||||
if ((~llListFindList(g_lTempOwners,[(string)kAv])) && ! (~llListFindList(g_lOwners,[(string)kAv])) && sToken != "tempowner"){
|
||||
Notify(kAv,"Temporary owners can only change the temporary owners list",FALSE);
|
||||
} else {
|
||||
if (sToken=="owner") {
|
||||
lPeople=g_lOwners;
|
||||
} else if (sToken=="secowner") {
|
||||
lPeople=g_lSecOwners;
|
||||
if (llGetListLength (lPeople) >=20) {
|
||||
Notify(kAv, "The maximum of 10 people allowed in this list.",FALSE);
|
||||
return;
|
||||
}
|
||||
} else if (sToken=="tempowner") {
|
||||
lPeople=g_lTempOwners;
|
||||
if (llGetListLength (lPeople) >=20) {
|
||||
Notify(kAv, "The maximum of 10 people allowed in this list.",FALSE);
|
||||
return;
|
||||
}
|
||||
} else if (sToken=="blacklist") {
|
||||
lPeople=g_lBlackList;
|
||||
if (llGetListLength (lPeople) >=20) {
|
||||
Notify(kAv, "The maximum of 10 people allowed in this list.",FALSE);
|
||||
return;
|
||||
}
|
||||
} else
|
||||
return;
|
||||
|
||||
if (! ~llListFindList(lPeople, [(string)kPerson])) //owner is not already in list. add him/her
|
||||
lPeople += [(string)kPerson, sName];
|
||||
|
||||
if (kPerson != g_kWearer) {
|
||||
Notify(kAv, "Added " + sName + " to " + sToken + ".", FALSE);
|
||||
if (sToken == "owner")
|
||||
llOwnerSay("Your owner can have a lot power over you and you consent to that by adding " + sName + " as owner to your " + CTYPE + ". They can leash you, put you in poses and lock your " + CTYPE + ". If you are using RLV they can undress you, make you wear clothes, restrict your chat, IMs and TPs as well as force TP you anywhere they like. Please read the [http://www.opencollar.at/manual.html manual on the web] for more info. If you do not consent, you can use the command \"" + g_sPrefix + "runaway\" to remove all owners from the " + CTYPE + ".");
|
||||
}
|
||||
|
||||
if (sToken == "owner" || sToken == "secowner") {
|
||||
Notify(kPerson, "You have been added to the " + sToken + " list on " + llKey2Name(g_kWearer) + "'s " + CTYPE + ". For help concerning the " + CTYPE + " usage, please see the [http://www.opencollar.at/manual.html manual on the web] or type \"" + g_sPrefix + "menu\" in chat to explore the " + CTYPE + " and find links to dedicated manual pages in the menu headers.",FALSE);
|
||||
llRegionSayTo(g_kWearer, g_iInterfaceChannel, "CollarCommand|499|OwnerChange"); //tell attachments owner changed
|
||||
}
|
||||
|
||||
string sOldToken=sToken;
|
||||
if (sToken == "secowner") sOldToken+="s";
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + sOldToken + "=" + llDumpList2String(lPeople, ","), "");
|
||||
|
||||
if (sToken=="owner") g_lOwners = lPeople;
|
||||
else if (sToken=="secowner") g_lSecOwners = lPeople;
|
||||
else if (sToken=="tempowner") g_lTempOwners = lPeople;
|
||||
else if (sToken=="blacklist") g_lBlackList = lPeople;
|
||||
}
|
||||
}
|
||||
|
||||
SayOwners() {
|
||||
// Give a "you are owned by" message, nicely formatted.
|
||||
list ownernames = llList2ListStrided(llDeleteSubList(g_lOwners, 0, 0), 0, -1, 2);
|
||||
integer ownercount = llGetListLength(ownernames);
|
||||
if (ownercount) {
|
||||
string msg = "You are owned by ";
|
||||
if (ownercount == 1) {
|
||||
// if one person, then just name.
|
||||
msg += (string)ownernames;
|
||||
} else if (ownercount == 2) {
|
||||
// if two people, then A and B.
|
||||
msg += llDumpList2String(ownernames, " and ");
|
||||
} else {
|
||||
// if >2 people, then A, B, and C
|
||||
list init = llDeleteSubList(ownernames, -1, -1);
|
||||
list tail = llDeleteSubList(ownernames, 0, -2);
|
||||
msg += llDumpList2String(init, ", ");
|
||||
msg += ", and " + (string)tail;
|
||||
}
|
||||
// end with a period.
|
||||
msg += ".";
|
||||
Notify(llGetOwner(), msg, FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
SetPrefix(string sValue) {
|
||||
if (sValue != "auto") g_sPrefix = sValue;
|
||||
else {
|
||||
list name = llParseString2List(llKey2Name(g_kWearer), [" "], []);
|
||||
string init = llGetSubString(llList2String(name, 0), 0, 0);
|
||||
init += llGetSubString(llList2String(name, 1), 0, 0);
|
||||
g_sPrefix = llToLower(init);
|
||||
}
|
||||
}
|
||||
|
||||
integer in_range(key kID) {
|
||||
if (g_iLimitRange) {
|
||||
if (llVecDist(llGetPos(), llList2Vector(llGetObjectDetails(kID, [OBJECT_POS]), 0)) > 20) { //if the distance between my position and their position > 20
|
||||
llDialog(kID, "\nNot in range...", [], 298479);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
integer Auth(string kObjID, integer attachment) {
|
||||
string kID = (string)llGetOwnerKey(kObjID); // if kObjID is an avatar key, then kID is the same key
|
||||
integer iNum;
|
||||
if (~llListFindList(g_lOwners+g_lTempOwners, [kID]))
|
||||
iNum = COMMAND_OWNER;
|
||||
else if (g_iWearerlocksOut && kID == (string)g_kWearer && !attachment)
|
||||
iNum = COMMAND_WEARERLOCKEDOUT;
|
||||
else if (llGetListLength(g_lOwners+g_lTempOwners) == 0 && kID == (string)g_kWearer)
|
||||
//if no owners set, then wearer's cmds have owner auth
|
||||
iNum = COMMAND_OWNER;
|
||||
else if (~llListFindList(g_lBlackList, [kID]))
|
||||
iNum = COMMAND_BLACKLIST;
|
||||
else if (~llListFindList(g_lSecOwners, [kID]))
|
||||
iNum = COMMAND_SECOWNER;
|
||||
else if (kID == (string)g_kWearer)
|
||||
iNum = COMMAND_WEARER;
|
||||
else if (g_iOpenAccess) {
|
||||
if (in_range((key)kID))
|
||||
iNum = COMMAND_GROUP;
|
||||
else
|
||||
iNum = COMMAND_EVERYONE;
|
||||
} else if (g_iGroupEnabled && (string)llGetObjectDetails((key)kObjID, [OBJECT_GROUP]) == (string)g_kGroup && (key)kID != g_kWearer) //meaning that the command came from an object set to our control group, and is not owned by the wearer
|
||||
iNum = COMMAND_GROUP;
|
||||
else if (llSameGroup(kID) && g_iGroupEnabled && kID != (string)g_kWearer) {
|
||||
if (in_range((key)kID))
|
||||
iNum = COMMAND_GROUP;
|
||||
else
|
||||
iNum = COMMAND_EVERYONE;
|
||||
} else
|
||||
iNum = COMMAND_EVERYONE;
|
||||
//Debug("Authed as "+(string)iNum);
|
||||
return iNum;
|
||||
}
|
||||
|
||||
// returns TRUE if eligible (AUTHED link message number)
|
||||
integer UserCommand(integer iNum, string sStr, key kID, integer remenu) { // here iNum: auth value, sStr: user command, kID: avatar id
|
||||
//Debug ("UserCommand("+(string)iNum+","+sStr+","+(string)kID+")");
|
||||
|
||||
if (iNum == COMMAND_EVERYONE) return TRUE; // No command for people with no privilege in this plugin.
|
||||
else if (iNum > COMMAND_EVERYONE || iNum < COMMAND_OWNER) return FALSE; // sanity check
|
||||
string sMessage=llToLower(sStr);
|
||||
list lParams = llParseString2List(sStr, [" "], []);
|
||||
string sCommand = llList2String(lParams, 0);
|
||||
string sOwnerError="Sorry, only an owner can do that.";
|
||||
|
||||
if (sStr == "menu "+g_sSubMenu) {
|
||||
AuthMenu(kID, iNum);
|
||||
} else if (sStr == "listowners") { //say owner, secowners, group
|
||||
if (iNum == COMMAND_OWNER || kID == g_kWearer) {
|
||||
//Do Owners list
|
||||
integer iLength = llGetListLength(g_lOwners);
|
||||
string sOutput="";
|
||||
while (iLength)
|
||||
sOutput += "\n" + llList2String(g_lOwners, --iLength) + " (" + llList2String(g_lOwners, --iLength) + ")";
|
||||
if (sOutput) Notify(kID, "Owners: " + sOutput,FALSE);
|
||||
else Notify(kID, "Owners: None",FALSE);
|
||||
|
||||
//Do TempOwners list
|
||||
iLength = llGetListLength(g_lTempOwners);
|
||||
sOutput="";
|
||||
while (iLength)
|
||||
sOutput += "\n" + llList2String(g_lTempOwners, --iLength) + " (" + llList2String(g_lTempOwners, --iLength) + ")";
|
||||
if (sOutput) Notify(kID, "Temp Owners: " + sOutput,FALSE);
|
||||
|
||||
//Do Secowners list
|
||||
iLength = llGetListLength(g_lSecOwners);
|
||||
sOutput="";
|
||||
while (iLength)
|
||||
sOutput += "\n" + llList2String(g_lSecOwners, --iLength) + " (" + llList2String(g_lSecOwners, --iLength) + ")";
|
||||
if (sOutput) Notify(kID, "Secowners: " + sOutput,FALSE);
|
||||
|
||||
iLength = llGetListLength(g_lBlackList);
|
||||
sOutput="";
|
||||
while (iLength)
|
||||
sOutput += "\n" + llList2String(g_lBlackList, --iLength) + " (" + llList2String(g_lBlackList, --iLength) + ")";
|
||||
if (sOutput) Notify(kID, "Black List: " + sOutput,FALSE);
|
||||
|
||||
if (g_sGroupName) Notify(kID, "Group: " + g_sGroupName,FALSE);
|
||||
if (g_kGroup) Notify(kID, "Group Key: " + (string)g_kGroup,FALSE);
|
||||
sOutput="false";
|
||||
if (g_iOpenAccess) sOutput="true";
|
||||
Notify(kID, "Open Access: "+ sOutput,FALSE);
|
||||
sOutput="false";
|
||||
if (g_iLimitRange) sOutput="true";
|
||||
Notify(kID, "LimitRange: "+ sOutput,FALSE);
|
||||
}
|
||||
else Notify(kID, "Only Owners & Wearer may access this command",FALSE);
|
||||
if (remenu) AuthMenu(kID, iNum);
|
||||
} else if (sStr == "owners" || sStr == "access") { //give owner menu
|
||||
AuthMenu(kID, iNum);
|
||||
// } else if (sStr=="give hud" || sMessage == "give hud") {
|
||||
// if (kID == g_kWearer) llGiveInventory(kID,"Virtual Disgrace - Collar HUD");
|
||||
// else llGiveInventory(kID,"Virtual Disgrace - Owner HUD");
|
||||
// if (remenu) AuthMenu(kID, iNum);
|
||||
|
||||
} else if (sMessage == "owner" && remenu==FALSE) { //request for access menu from chat
|
||||
AuthMenu(kID, iNum);
|
||||
} else if (sCommand == "owner" || sCommand == "tempowner" || sCommand == "secowner" || sCommand == "blacklist") { //add a person to a list
|
||||
string sTmpName = llDumpList2String(llDeleteSubList(lParams,0,0), " "); //get full name
|
||||
if (iNum!=COMMAND_OWNER) {
|
||||
Notify(kID, sOwnerError, FALSE);
|
||||
if (remenu) AuthMenu(kID, Auth(kID,FALSE));
|
||||
} else if (osIsUUID(sTmpName)){
|
||||
g_lQueryId+=[llRequestAgentData( sTmpName, DATA_NAME ),sTmpName,sCommand, kID, remenu];
|
||||
if (remenu) FetchAvi(Auth(kID,FALSE), sCommand, sTmpName, kID);
|
||||
} else
|
||||
FetchAvi(iNum, sCommand, sTmpName, kID);
|
||||
} else if (llSubStringIndex(sCommand,"rem")==0) { //remove person from a list
|
||||
if (sCommand=="remowners") sCommand="remowner";
|
||||
//Debug("got command "+sCommand);
|
||||
string sToken = llGetSubString(sCommand,3,-1);
|
||||
//Debug("got token "+sToken);
|
||||
string sTmpName = llDumpList2String(llDeleteSubList(lParams,0,0), " "); //get full name
|
||||
if (iNum!=COMMAND_OWNER){
|
||||
Notify(kID, sOwnerError, FALSE);
|
||||
if (remenu) AuthMenu(kID, Auth(kID,FALSE));
|
||||
} else if (sTmpName=="")
|
||||
RemPersonMenu(kID, sToken, iNum);
|
||||
else {
|
||||
RemovePerson(sTmpName, sToken, kID);
|
||||
if (remenu) RemPersonMenu(kID, sToken, Auth(kID,FALSE));
|
||||
}
|
||||
|
||||
} else if (sCommand == "setgroup") {
|
||||
if (iNum==COMMAND_OWNER){
|
||||
//if key provided use that, else read current group
|
||||
if (osIsUUID(llList2String(lParams, -1))) g_kGroup = (key)llList2String(lParams, -1);
|
||||
else g_kGroup = (key)llList2String(llGetObjectDetails(llGetKey(), [OBJECT_GROUP]), 0); //record current group key
|
||||
|
||||
if (g_kGroup != "") {
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "group=" + (string)g_kGroup, "");
|
||||
g_iGroupEnabled = TRUE;
|
||||
|
||||
key kGroupHTTPID = llHTTPRequest("http://world.secondlife.com/group/" + (string)g_kGroup, [], ""); //get group name from world api
|
||||
g_lQueryId+=[kGroupHTTPID,"","group", kID, FALSE];
|
||||
}
|
||||
} else {
|
||||
Notify(kID, sOwnerError, FALSE);
|
||||
}
|
||||
if (remenu) AuthMenu(kID, Auth(kID,FALSE));
|
||||
} else if (sCommand == "setgroupname") {
|
||||
if (iNum==COMMAND_OWNER){
|
||||
g_sGroupName = llDumpList2String(llList2List(lParams, 1, -1), " ");
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "groupname=" + g_sGroupName, "");
|
||||
} else {
|
||||
Notify(kID, sOwnerError, FALSE);
|
||||
}
|
||||
} else if (sCommand == "unsetgroup") {
|
||||
if (iNum==COMMAND_OWNER){
|
||||
g_kGroup = "";
|
||||
g_sGroupName = "";
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, g_sScript + "group", "");
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, g_sScript + "groupname", "");
|
||||
g_iGroupEnabled = FALSE;
|
||||
Notify(kID, "Group unset.", FALSE);
|
||||
llRegionSayTo(g_kWearer, g_iInterfaceChannel, "CollarCommand|499|OwnerChange"); //tell attachments owner changed
|
||||
} else {
|
||||
Notify(kID, sOwnerError, FALSE);
|
||||
}
|
||||
if (remenu) AuthMenu(kID, Auth(kID,FALSE));
|
||||
} else if (sCommand == "setopenaccess") {
|
||||
if (iNum==COMMAND_OWNER){
|
||||
g_iOpenAccess = TRUE;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "openaccess=" + (string) g_iOpenAccess, "");
|
||||
Notify(kID, "Your " + CTYPE + " is open to the public.", FALSE);
|
||||
llRegionSayTo(g_kWearer, g_iInterfaceChannel, "CollarCommand|499|OwnerChange"); //tell attachments owner changed
|
||||
} else {
|
||||
Notify(kID, sOwnerError, FALSE);
|
||||
}
|
||||
if (remenu) AuthMenu(kID, Auth(kID,FALSE));
|
||||
} else if (sCommand == "unsetopenaccess") {
|
||||
if (iNum==COMMAND_OWNER){
|
||||
g_iOpenAccess = FALSE;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, g_sScript + "openaccess", "");
|
||||
Notify(kID, "Your " + CTYPE + " is closed to the public.", FALSE);
|
||||
llRegionSayTo(g_kWearer, g_iInterfaceChannel, "CollarCommand|499|OwnerChange"); //tell attachments owner changed
|
||||
} else {
|
||||
Notify(kID, sOwnerError, FALSE);
|
||||
}
|
||||
if (remenu) AuthMenu(kID, Auth(kID,FALSE));
|
||||
} else if (sCommand == "setlimitrange") {
|
||||
if (iNum==COMMAND_OWNER){
|
||||
g_iLimitRange = TRUE;
|
||||
// as the default is range limit on, we do not need to store anything for this
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, g_sScript + "limitrange", "");
|
||||
Notify(kID, "Range is limited.", FALSE);
|
||||
} else {
|
||||
Notify(kID, sOwnerError, FALSE);
|
||||
}
|
||||
if (remenu) AuthMenu(kID, Auth(kID,FALSE));
|
||||
} else if (sCommand == "unsetlimitrange") {
|
||||
if (iNum==COMMAND_OWNER){
|
||||
g_iLimitRange = FALSE;
|
||||
// save off state for limited range (default is on)
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "limitrange=" + (string) g_iLimitRange, "");
|
||||
Notify(kID, "Range is simwide.", FALSE);
|
||||
} else {
|
||||
Notify(kID, sOwnerError, FALSE);
|
||||
}
|
||||
if (remenu) AuthMenu(kID, Auth(kID,FALSE));
|
||||
} else if (sCommand == "runaway"){
|
||||
list lButtons=[];
|
||||
string message="Only the wearer or an Owner can access this menu";
|
||||
if (iNum == COMMAND_OWNER && kID == g_kWearer) { //wearer-owner called for menu
|
||||
if (g_iRunawayDisable){
|
||||
lButtons=["Stay","Enable"];
|
||||
message="\nYou chose to disable the runaway function.\n\nAs an owner you can restore this ability if desired.";
|
||||
} else {
|
||||
lButtons=["Runaway!", "Disable"];
|
||||
message="\nYou can run away from your owners or you can disable your ability to ever run from them.";
|
||||
}
|
||||
} else if (kID == g_kWearer){ //wearer called for menu
|
||||
if (g_iRunawayDisable){
|
||||
lButtons=["Stay","Cancel","Remain","Don't Run", "Stay Loyal"];
|
||||
message="\nACCESS DENIED:\n\nYou chose to disable the runaway function.\n\nOnly primary owners can restore this ability.";
|
||||
} else {
|
||||
lButtons=["Runaway!", "Disable"];
|
||||
message="\nYou can run away from your owners or you can disable your ability to ever run from them.";
|
||||
}
|
||||
} else if (iNum == COMMAND_OWNER ) { //owner called for menu
|
||||
if (g_iRunawayDisable){
|
||||
lButtons=["Release", "Enable"];
|
||||
message="\nYou can release this sub of your service or you can return their ability to run away on their own.";
|
||||
} else {
|
||||
lButtons=["Release"];
|
||||
message="\nYou can release this sub of your service.";
|
||||
}
|
||||
}
|
||||
//Debug("runaway button");
|
||||
Dialog(kID, message, lButtons, [UPMENU], 0, iNum, "runawayMenu");
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
default {
|
||||
on_rez(integer iParam) {
|
||||
llResetScript();
|
||||
}
|
||||
|
||||
state_entry() {
|
||||
//llSetMemoryLimit(65536); //this script needs to be profiled, and its memory limited
|
||||
g_sScript = "auth_";
|
||||
g_kWearer = llGetOwner(); //until set otherwise, wearer is owner
|
||||
SetPrefix("auto");
|
||||
//added for attachment auth
|
||||
g_iInterfaceChannel = (integer)("0x" + llGetSubString(g_kWearer,30,-1));
|
||||
if (g_iInterfaceChannel > 0) g_iInterfaceChannel = -g_iInterfaceChannel;
|
||||
//Debug("Auth starting: "+(string)llGetFreeMemory());
|
||||
// Request owner list. Be careful about doing this in all scripts,
|
||||
// because we can easily flood the 64 event limit in LSL's event queue
|
||||
// if all the scripts send a ton of link messages at the same time on
|
||||
// startup.
|
||||
llMessageLinked(LINK_SET, LM_SETTING_REQUEST, g_sScript + "owner", "");
|
||||
llMessageLinked(LINK_SET, LM_SETTING_REQUEST, g_sScript + "secowners", "");
|
||||
llMessageLinked(LINK_SET, LM_SETTING_REQUEST, g_sScript + "tempowners", "");
|
||||
llMessageLinked(LINK_SET, LM_SETTING_REQUEST, g_sScript + "blacklist", "");
|
||||
//Debug("Starting");
|
||||
}
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID) {
|
||||
if (iNum == COMMAND_NOAUTH) { //authenticate messages on COMMAND_NOAUTH
|
||||
integer iAuth = Auth((string)kID, FALSE);
|
||||
if ( kID == g_kWearer && sStr == "runaway") { // note that this will work *even* if the wearer is blacklisted or locked out
|
||||
if (g_iRunawayDisable){
|
||||
llOwnerSay("Runaway is currently disabled.");
|
||||
} else {
|
||||
llOwnerSay("Running away from all owners started, your owners will now be notified!");
|
||||
integer n;
|
||||
integer stop = llGetListLength(g_lOwners+g_lTempOwners);
|
||||
for (n = 0; n < stop; n += 2) {
|
||||
key kOwner = (key)llList2String(g_lOwners+g_lTempOwners, n);
|
||||
if (kOwner != g_kWearer)
|
||||
{
|
||||
Notify(kOwner, llKey2Name(g_kWearer) + " has run away!",FALSE);
|
||||
}
|
||||
}
|
||||
llMessageLinked(LINK_THIS, LM_SETTING_SAVE, g_sScript + "owner=", "");
|
||||
llMessageLinked(LINK_THIS, LM_SETTING_SAVE, g_sScript + "secowners=", "");
|
||||
llMessageLinked(LINK_THIS, LM_SETTING_DELETE, g_sScript + "all", "");
|
||||
llOwnerSay("Runaway finished, the " + CTYPE + " will now release locks!");
|
||||
// moved reset request from settings to here to allow noticifation of owners.
|
||||
llMessageLinked(LINK_SET, COMMAND_OWNER, "clear", kID); // clear RLV restrictions
|
||||
llMessageLinked(LINK_SET, COMMAND_OWNER, "runaway", kID); // this is not a LM loop, since it is now really authed
|
||||
llResetScript();
|
||||
}
|
||||
}
|
||||
else if (kID != g_kWearer && iAuth == COMMAND_OWNER && sStr == "runaway") { //owner requests the runaway menu
|
||||
//We trap here and pull up the UserCommand manually to avoid passing 'runaway' prematurely to linkmessage (this was unlocking/unleashing)
|
||||
UserCommand(iAuth, "runaway", kID, FALSE);
|
||||
}
|
||||
else llMessageLinked(LINK_SET, iAuth, sStr, kID);
|
||||
|
||||
//Debug("noauth: " + sStr + " from " + (string)kID + " who has auth " + (string)iAuth);
|
||||
return; // NOAUTH messages need go no further
|
||||
} else if (UserCommand(iNum, sStr, kID, FALSE)) return;
|
||||
else if (iNum == LM_SETTING_RESPONSE) {
|
||||
//Debug("Got setting response: "+sStr);
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
integer i = llSubStringIndex(sToken, "_");
|
||||
if (llGetSubString(sToken, 0, i) == g_sScript) {
|
||||
sToken = llGetSubString(sToken, i + 1, -1);
|
||||
if (sToken == "owner") {
|
||||
// temporarily stash owner list so we can see if it's changing.
|
||||
list tmpowners = g_lOwners;
|
||||
g_lOwners = llParseString2List(sValue, [","], []);
|
||||
// only say the owner list if it has changed (including on_rez)
|
||||
if (llGetListLength(g_lOwners) && tmpowners != g_lOwners) SayOwners();
|
||||
} else if (sToken == "tempowner") {
|
||||
// temporarily stash owner list so we can see if it's changing.
|
||||
list tmpowners = g_lTempOwners;
|
||||
g_lTempOwners = llParseString2List(sValue, [","], []);
|
||||
//Debug("Tempowners: "+llDumpList2String(g_lTempOwners,","));
|
||||
// only say the owner list if it has changed (including on_rez)
|
||||
if (llGetListLength(g_lTempOwners) && tmpowners != g_lTempOwners) SayOwners();
|
||||
} else if (sToken == "group") {
|
||||
g_kGroup = (key)sValue;
|
||||
//check to see if the object's group is set properly
|
||||
if (g_kGroup != "") {
|
||||
if ((key)llList2String(llGetObjectDetails(llGetKey(), [OBJECT_GROUP]), 0) == g_kGroup) g_iGroupEnabled = TRUE;
|
||||
else g_iGroupEnabled = FALSE;
|
||||
}
|
||||
else g_iGroupEnabled = FALSE;
|
||||
}
|
||||
else if (sToken == "groupname") g_sGroupName = sValue;
|
||||
else if (sToken == "openaccess") g_iOpenAccess = (integer)sValue;
|
||||
else if (sToken == "limitrange") g_iLimitRange = (integer)sValue;
|
||||
else if (sToken == "runawayDisable") g_iRunawayDisable = (integer)sValue;
|
||||
else if (sToken == "secowners") g_lSecOwners = llParseString2List(sValue, [","], [""]);
|
||||
else if (sToken == "blacklist") g_lBlackList = llParseString2List(sValue, [","], [""]);
|
||||
}
|
||||
else if (sToken == "Global_prefix") SetPrefix(sValue);
|
||||
else if (sToken == "Global_CType") CTYPE = sValue;
|
||||
} else if (iNum == LM_SETTING_EMPTY) {
|
||||
//Debug("Got setting empty: "+sStr);
|
||||
integer i = llSubStringIndex(sStr, "_");
|
||||
if (llGetSubString(sStr, 0, i) == g_sScript) {
|
||||
sStr = llGetSubString(sStr, i + 1, -1);
|
||||
if (sStr == "owner") {
|
||||
g_lOwners = [];
|
||||
SayOwners();
|
||||
} else if (sStr == "tempowner") {
|
||||
g_lTempOwners = [];
|
||||
SayOwners();
|
||||
} else if (sStr == "group") {
|
||||
g_kGroup = NULL_KEY;
|
||||
g_iGroupEnabled = FALSE;
|
||||
}
|
||||
else if (sStr == "groupname") g_sGroupName = "";
|
||||
else if (sStr == "openaccess") g_iOpenAccess = FALSE;
|
||||
else if (sStr == "limitrange") g_iLimitRange = TRUE;
|
||||
else if (sStr == "runawayDisable") g_iRunawayDisable = FALSE;
|
||||
else if (sStr == "secowners") g_lSecOwners = [];
|
||||
else if (sStr == "blacklist") g_lBlackList = [];
|
||||
}
|
||||
} else if (iNum == LM_SETTING_SAVE) {
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
if (sToken == "Global_prefix") SetPrefix(sValue);
|
||||
}
|
||||
// JS: For backwards compatibility until all attachments/etc are rolled over to new interface
|
||||
//added for attachment auth (Garvin)
|
||||
else if (iNum == ATTACHMENT_REQUEST) {
|
||||
integer iAuth = Auth((string)kID, TRUE);
|
||||
llMessageLinked(LINK_SET, ATTACHMENT_RESPONSE, (string)iAuth+"|"+sStr, kID);
|
||||
}
|
||||
// JS: Remove ATTACHMENT_REQUEST & RESPONSE after all attachments have been updated properly
|
||||
else if (iNum == INTERFACE_REQUEST) {
|
||||
list lParams = llParseString2List(sStr, ["|"], []);
|
||||
string sTarget = llList2String(lParams, 0);
|
||||
string sCommand = llList2String(lParams, 1);
|
||||
if (sTarget == "auth_") {
|
||||
if (sCommand == "level") {
|
||||
string sAuth = (string)Auth((string)kID, TRUE);
|
||||
lParams = llListReplaceList(lParams, ["level=" + sAuth], 1, 1);
|
||||
}
|
||||
else return; // do not send response if the message was erroneous
|
||||
llMessageLinked(LINK_SET, INTERFACE_RESPONSE, llDumpList2String(lParams, "|"), kID);
|
||||
}
|
||||
} else if (iNum == WEARERLOCKOUT) {
|
||||
if (sStr == "on") g_iWearerlocksOut=TRUE;
|
||||
else if (sStr == "off") g_iWearerlocksOut=FALSE;
|
||||
} else if (iNum == DIALOG_RESPONSE) {
|
||||
integer iMenuIndex = llListFindList(g_lMenuIDs, [kID]);
|
||||
if (~iMenuIndex) {
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
|
||||
//remove stride from g_lMenuIDs
|
||||
string sMenu=llList2String(g_lMenuIDs, iMenuIndex + 1);
|
||||
g_lMenuIDs = llDeleteSubList(g_lMenuIDs, iMenuIndex - 1, iMenuIndex - 2 + g_iMenuStride);
|
||||
|
||||
if (sMenu == "Auth") {
|
||||
//g_kAuthMenuID responds to setowner, setsecowner, setblacklist, remowner, remsecowner, remblacklist, setgroup, unsetgroup, setopenaccess, unsetopenaccess
|
||||
if (sMessage == UPMENU)
|
||||
llMessageLinked(LINK_SET, iAuth, "menu " + g_sParentMenu, kAv);
|
||||
else {
|
||||
list lTranslation=[
|
||||
"+ Owner","owner",
|
||||
// "+ Temp Owner","tempowner",
|
||||
"+ Secowner","secowner",
|
||||
"+ Blacklisted","blacklist",
|
||||
"− Owner","remowner",
|
||||
// "− Temp Owner","remtempowner",
|
||||
"− Secowner","remsecowner",
|
||||
"− Blacklisted","remblacklist",
|
||||
"Group ☐","setgroup",
|
||||
"Group ☒","unsetgroup",
|
||||
"Public ☐","setopenaccess",
|
||||
"Public ☒","unsetopenaccess",
|
||||
"LimitRange ☐","setlimitrange",
|
||||
"LimitRange ☒","unsetlimitrange",
|
||||
//"Give Hud","givehud",
|
||||
"List Owners","listowners",
|
||||
"Runaway","runaway"
|
||||
];
|
||||
integer buttonIndex=llListFindList(lTranslation,[sMessage]);
|
||||
if (~buttonIndex){
|
||||
sMessage=llList2String(lTranslation,buttonIndex+1);
|
||||
}
|
||||
//Debug("Sending UserCommand "+sMessage);
|
||||
UserCommand(iAuth, sMessage, kAv, TRUE);
|
||||
}
|
||||
} else if (sMenu == "remowner" || sMenu == "remsecowner" || sMenu == "remblacklist" ) {
|
||||
if (sMessage == UPMENU) {
|
||||
AuthMenu(kAv, iAuth);
|
||||
} else if (sMessage == "Remove All") {
|
||||
UserCommand(iAuth, sMenu + " Remove All", kAv,TRUE);
|
||||
} else if (sMenu == "remowner") {
|
||||
UserCommand(iAuth, sMenu+" " + llList2String(g_lOwners, (integer)sMessage*2 - 1), kAv, TRUE);
|
||||
} else if (sMenu == "remtempowner") {
|
||||
UserCommand(iAuth, sMenu+" " + llList2String(g_lTempOwners, (integer)sMessage*2 - 1), kAv, TRUE);
|
||||
} else if(sMenu == "remsecowner") {
|
||||
UserCommand(iAuth, sMenu+" " + llList2String(g_lSecOwners, (integer)sMessage*2 - 1), kAv, TRUE);
|
||||
} else if(sMenu == "remblacklist") {
|
||||
UserCommand(iAuth, sMenu+" " + llList2String(g_lBlackList, (integer)sMessage*2 - 1), kAv, TRUE);
|
||||
}
|
||||
} else if (sMenu == "runawayMenu" ) { //no chat commands for this menu, by design, so handle it all here
|
||||
if (sMessage == UPMENU) {
|
||||
AuthMenu(kAv, iAuth);
|
||||
} else if (sMessage == "Runaway!") {
|
||||
llMessageLinked(LINK_SET, COMMAND_NOAUTH, "runaway", kAv);
|
||||
} else if (sMessage == "Enable") {
|
||||
if ((~llListFindList(g_lTempOwners,[(string)kAv])) && ! (~llListFindList(g_lOwners,[(string)kAv])) ){
|
||||
Notify(kAv,"Temporary owners can't enable runaway.",FALSE);
|
||||
} else {
|
||||
g_iRunawayDisable=FALSE;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, g_sScript+"runawayDisable","");
|
||||
Notify(kAv,"The ability to runaway has been restored.", TRUE);
|
||||
UserCommand(iAuth, "runaway", kAv, TRUE);
|
||||
}
|
||||
} else if (sMessage == "Disable") {
|
||||
g_iRunawayDisable=TRUE;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript+"runawayDisable=1","");
|
||||
llOwnerSay("You have disabled your ability to runaway.");
|
||||
UserCommand(iAuth, "runaway", kAv, TRUE);
|
||||
} else if (sMessage == "Cancel") {
|
||||
return; //no remenu on canel
|
||||
} else if (sMessage == "Release") {
|
||||
integer iOwnerIndex=llListFindList(g_lOwners,[(string)kAv]);
|
||||
if (~iOwnerIndex){
|
||||
string name=llList2String(g_lOwners,iOwnerIndex+1);
|
||||
UserCommand(iAuth, "remowner "+name, kAv, FALSE); //no remenu, owner is done with this sub
|
||||
//llMessageLinked(LINK_SET, COMMAND_OWNER, "runaway", kID); //let other scripts know we're running away
|
||||
} else {
|
||||
Notify(kAv, "You are not on the owners list.", TRUE);
|
||||
UserCommand(iAuth,"runaway",kAv, TRUE); //remenu to runaway
|
||||
}
|
||||
} else {
|
||||
UserCommand(iAuth,"runaway",kAv, TRUE); //remenu to runaway
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (iNum == FIND_AGENT) { //reply from add-by-name or add-from-menu (via FetchAvi dialog)
|
||||
if (kID == REQUEST_KEY) {
|
||||
list params = llParseString2List(sStr, ["|"], []);
|
||||
if (llList2String(params, 0) == g_sScript) {
|
||||
string sRequestType = llList2String(params, 4);
|
||||
key kAv = llList2Key(params, 2);
|
||||
integer iAuth= llList2Integer(params, 3);
|
||||
string sNewOwner=llList2String(params, 5);
|
||||
if (osIsUUID(sNewOwner)){
|
||||
AddUniquePerson((key)sNewOwner, llKey2Name((key)sNewOwner), sRequestType, kAv); //should be safe to uase key2name here, as we added from sensor dialog
|
||||
//FetchAvi(llList2Integer(params, 3), sRequestType, "", kAv); //remenu
|
||||
integer iNewAuth=Auth(kAv,FALSE);
|
||||
if (iNewAuth == COMMAND_OWNER){
|
||||
UserCommand(iNewAuth,sRequestType,kAv,TRUE);
|
||||
//FetchAvi(COMMAND_OWNER, sRequestType, "", kAv); //remenu
|
||||
} else {
|
||||
AuthMenu(kAv,iNewAuth);
|
||||
}
|
||||
} else {
|
||||
AuthMenu(kAv,iAuth);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (iNum == DIALOG_TIMEOUT) {
|
||||
integer iMenuIndex = llListFindList(g_lMenuIDs, [kID]);
|
||||
//remove stride from g_lMenuIDs
|
||||
//we have to subtract from the index because the dialog id comes in the middle of the stride
|
||||
g_lMenuIDs = llDeleteSubList(g_lMenuIDs, iMenuIndex - 1, iMenuIndex - 2 + g_iMenuStride);
|
||||
}
|
||||
}
|
||||
|
||||
http_response(key kQueryId, integer iStatus, list lMeta, string sBody) { //response to a group name lookup
|
||||
integer listIndex=llListFindList(g_lQueryId,[kQueryId]);
|
||||
if (listIndex!= -1){
|
||||
key g_kDialoger=llList2Key(g_lQueryId,listIndex+3);
|
||||
g_lQueryId=llDeleteSubList(g_lQueryId,listIndex,listIndex+g_iQueryStride-1);
|
||||
|
||||
g_sGroupName = "(group name hidden)";
|
||||
if (iStatus == 200) {
|
||||
integer iPos = llSubStringIndex(sBody, "<title>");
|
||||
integer iPos2 = llSubStringIndex(sBody, "</title>");
|
||||
if ((~iPos) // Found
|
||||
&& iPos2 > iPos // Has to be after it
|
||||
&& iPos2 <= iPos + 43 // 36 characters max (that's 7+36 because <title> has 7)
|
||||
&& !~llSubStringIndex(sBody, "AccessDenied") // Check as per groupname.py (?)
|
||||
) {
|
||||
g_sGroupName = llGetSubString(sBody, iPos + 7, iPos2 - 1);
|
||||
}
|
||||
}
|
||||
|
||||
Notify(g_kDialoger, "Group set to " + g_sGroupName + ".", FALSE);
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "groupname=" + g_sGroupName, "");
|
||||
}
|
||||
}
|
||||
|
||||
dataserver(key kQueryId, string sData){ //response after an add-by-uuid
|
||||
integer listIndex=llListFindList(g_lQueryId,[kQueryId]);
|
||||
if (listIndex!= -1){
|
||||
key newOwner=llList2Key(g_lQueryId,listIndex+1);
|
||||
string sRequestType=llList2String(g_lQueryId,listIndex+2);
|
||||
key kAv =llList2Key(g_lQueryId,listIndex+3);
|
||||
integer remenu =llList2Integer(g_lQueryId,listIndex+4);
|
||||
|
||||
g_lQueryId=llDeleteSubList(g_lQueryId,listIndex,listIndex+g_iQueryStride-1);
|
||||
|
||||
AddUniquePerson(newOwner, sData, sRequestType, kAv);
|
||||
if (remenu){
|
||||
integer iNewAuth=Auth(kAv,FALSE);
|
||||
if (iNewAuth == COMMAND_OWNER){
|
||||
UserCommand(iNewAuth,sRequestType,kAv,TRUE);
|
||||
//FetchAvi(COMMAND_OWNER, sRequestType, "", kAv); //remenu
|
||||
} else {
|
||||
AuthMenu(kAv,iNewAuth);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
changed(integer iChange) {
|
||||
if (iChange & CHANGED_OWNER) llResetScript();
|
||||
/*
|
||||
if (iChange & CHANGED_REGION) {
|
||||
if (g_iProfiled){
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
@@ -1,391 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - badwords //
|
||||
// version 3.990 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//MESSAGE MAP
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
integer COMMAND_SAFEWORD = 510; // new for safeword
|
||||
|
||||
integer LM_SETTING_SAVE = 2000;//scripts send messages on this channel to have settings saved to httpdb
|
||||
integer LM_SETTING_RESPONSE = 2002;//the httpdb script will send responses on this channel
|
||||
integer LM_SETTING_DELETE = 2003;//delete token from DB
|
||||
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
|
||||
integer ANIM_START = 7000;
|
||||
integer ANIM_STOP = 7001;
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
//5000 block is reserved for IM slaves
|
||||
string CTYPE = "collar";
|
||||
string WEARERNAME;
|
||||
|
||||
string g_sNoSound = "silent" ;
|
||||
string g_sBadWordSound;
|
||||
|
||||
string g_sBadWordAnim ;
|
||||
|
||||
list g_lBadWords;
|
||||
string g_sPenance = "I didn't do it!";
|
||||
integer g_iListenerHandle;
|
||||
|
||||
key g_kWearer;
|
||||
list g_lMenuIDs;
|
||||
integer g_iMenuStride=3;
|
||||
integer g_iIsEnabled=0;
|
||||
|
||||
integer g_iHasSworn = FALSE;
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
Dialog(key kID, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth, string sName) {
|
||||
key kMenuID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kID + "|" + sPrompt + "|" + (string)iPage + "|" + llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kMenuID);
|
||||
|
||||
integer iIndex = llListFindList(g_lMenuIDs, [kID]);
|
||||
if (~iIndex) g_lMenuIDs = llListReplaceList(g_lMenuIDs, [kID, kMenuID, sName], iIndex, iIndex + g_iMenuStride - 1);
|
||||
else g_lMenuIDs += [kID, kMenuID, sName];
|
||||
|
||||
//Debug("Made "+sName+" menu.");
|
||||
}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer) {
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else {
|
||||
if (llGetAgentSize(kID)!=ZERO_VECTOR) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
ListenControl() {
|
||||
if(g_iIsEnabled && llGetListLength(g_lBadWords)) g_iListenerHandle = llListen(0, "", g_kWearer, "");
|
||||
else llListenRemove(g_iListenerHandle);
|
||||
}
|
||||
|
||||
string DePunctuate(string sStr) {
|
||||
string sLastChar = llGetSubString(sStr, -1, -1);
|
||||
if (sLastChar == "," || sLastChar == "." || sLastChar == "!" || sLastChar == "?") sStr = llGetSubString(sStr, 0, -2);
|
||||
return sStr;
|
||||
}
|
||||
|
||||
string WordPrompt() {
|
||||
string sName = llKey2Name(g_kWearer);
|
||||
string sPrompt = sName + " is forbidden from saying ";
|
||||
integer iLength = llGetListLength(g_lBadWords);
|
||||
if (!iLength) sPrompt = sName + " is not forbidden from saying anything.";
|
||||
else if (iLength == 1) sPrompt += llList2String(g_lBadWords, 0);
|
||||
else if (iLength == 2) sPrompt += llList2String(g_lBadWords, 0) + " or " + llList2String(g_lBadWords, 1);
|
||||
else sPrompt += llDumpList2String(llDeleteSubList(g_lBadWords, -1, -1), ", ") + ", or " + llList2String(g_lBadWords, -1);
|
||||
|
||||
sPrompt += "\nThe penance phrase to clear the punishment anim is '" + g_sPenance + "'.";
|
||||
return sPrompt;
|
||||
}
|
||||
|
||||
MenuBadwords(key kID, integer iNum){
|
||||
list lButtons = ["Penance", "Add", "Remove", "Animation", "Sound", "Clear"];
|
||||
if (g_iIsEnabled) lButtons += ["OFF"];
|
||||
else lButtons += ["ON"];
|
||||
|
||||
string sText="\n\nwww.opencollar.at/badwords\n\n";
|
||||
sText+="\nBad Words: " + llDumpList2String(g_lBadWords, ", ");
|
||||
sText+="\nBad Word Anim: " + g_sBadWordAnim;
|
||||
sText+="\nPenance: " + g_sPenance;
|
||||
sText+="\nBad Word Sound: " + g_sBadWordSound;
|
||||
|
||||
Dialog(kID, sText, lButtons, ["BACK"],0, iNum, "BadwordsMenu");
|
||||
}
|
||||
|
||||
// returns TRUE if eligible (AUTHED link message number)
|
||||
UserCommand(integer iNum, string sStr, key kID, integer remenu) { // here iNum: auth value, sStr: user command, kID: avatar id
|
||||
if (iNum != COMMAND_OWNER && kID != g_kWearer) return;
|
||||
//Debug("Got command:"+sStr);
|
||||
sStr=llStringTrim(sStr,STRING_TRIM);
|
||||
list lParams = llParseString2List(sStr, [" "], []);
|
||||
string sCommand = llList2String(lParams, 0);
|
||||
if (llToLower(sStr) == "badwords" || llToLower(sStr) == "menu badwords") {
|
||||
MenuBadwords(kID, iNum);
|
||||
} else if (llToLower(sCommand)=="badwords"){
|
||||
if (iNum != COMMAND_OWNER) return;
|
||||
sCommand = llToLower(llList2String(lParams, 1));
|
||||
if (sCommand == "add") { //support owner adding words
|
||||
list lNewBadWords = llDeleteSubList(lParams, 0, 1);
|
||||
if (llGetListLength(lNewBadWords)){
|
||||
while (llGetListLength(lNewBadWords)){
|
||||
string sNewWord=llToLower(DePunctuate(llList2String(lNewBadWords,-1)));
|
||||
if (llListFindList(g_lBadWords, [sNewWord]) == -1) g_lBadWords += [sNewWord];
|
||||
lNewBadWords=llDeleteSubList(lNewBadWords,-1,-1);
|
||||
}
|
||||
if (llGetListLength(g_lBadWords)) {
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, "badwords_words=" + llDumpList2String(g_lBadWords, ","), "");
|
||||
Notify(kID, WordPrompt(),TRUE);
|
||||
}
|
||||
if (remenu) MenuBadwords(kID,iNum);
|
||||
} else {
|
||||
string sText = "\n- Submit the new badword in the field below.\n- Submit a blank field to go back.";
|
||||
Dialog(kID, sText, [], [], 0, iNum, "BadwordsAdd");
|
||||
}
|
||||
} else if (sCommand == "animation") { //Get all text after the command, strip spaces from start and end
|
||||
if (llGetListLength(lParams)>2){
|
||||
integer iPos=llSubStringIndex(llToLower(sStr),"on");
|
||||
string sName = llStringTrim(llGetSubString(sStr, iPos+2, -1),STRING_TRIM);
|
||||
if(sName == "Default") sName = "~shock";
|
||||
if (llGetInventoryType(sName) == INVENTORY_ANIMATION) {
|
||||
g_sBadWordAnim = sName;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, "badwords_animation=" + g_sBadWordAnim, "");
|
||||
Notify(kID, "Punishment animation for bad words is now '" + g_sBadWordAnim + "'.",FALSE);
|
||||
} else Notify(kID, sName + " is not a valid animation name.",FALSE);
|
||||
if (remenu) MenuBadwords(kID,iNum);
|
||||
} else {
|
||||
list lPoseList = ["Default"];
|
||||
integer iMax = llGetInventoryNumber(INVENTORY_ANIMATION);
|
||||
integer i;
|
||||
string sName;
|
||||
for (i=0;i<iMax;i++)
|
||||
{
|
||||
sName=llGetInventoryName(INVENTORY_ANIMATION, i);
|
||||
//check here if the anim start with ~ or for some reason does not get a name returned (spares to check that all again in the menu ;)
|
||||
if (sName != "" && llGetSubString(sName, 0, 0) != "~") lPoseList+=sName;
|
||||
}
|
||||
string sText = "Current punishment animation is: "+g_sBadWordAnim+"\n\n";
|
||||
sText += "Select a new animation to use as a punishment.\n\n";
|
||||
Dialog(kID, sText, lPoseList, ["BACK"],0, iNum, "BadwordsAnimation");
|
||||
}
|
||||
} else if (sCommand == "sound") { //Get all text after the command, strip spaces from start and end
|
||||
if (llGetListLength(lParams)>2){
|
||||
integer iPos=llSubStringIndex(llToLower(sStr),"nd");
|
||||
string sName = llStringTrim(llGetSubString(sStr, iPos+2, -1),STRING_TRIM);
|
||||
if (sName == "silent") Notify(kID, "Punishment will be silent.",FALSE);
|
||||
else if (llGetInventoryType(sName) == INVENTORY_SOUND) {
|
||||
Notify(kID, "You will hear the sound "+sName+" when "+WEARERNAME+" is punished.",FALSE);
|
||||
} else {
|
||||
Notify(kID, "Can't find sound "+sName+", using default.",FALSE);
|
||||
sName = "Default" ;
|
||||
}
|
||||
g_sBadWordSound = sName;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, "badwords_sound=" + g_sBadWordSound, "");
|
||||
if (remenu) MenuBadwords(kID,iNum);
|
||||
} else {
|
||||
list lSoundList = ["Default","silent"];
|
||||
integer iMax = llGetInventoryNumber(INVENTORY_SOUND);
|
||||
integer i;
|
||||
string sName;
|
||||
for (i=0;i<iMax;i++)
|
||||
{
|
||||
sName=llGetInventoryName(INVENTORY_SOUND, i);
|
||||
//check here if the sound start with ~ or for some reason does not get a name returned (spares to check that all again in the menu ;)
|
||||
if (sName != "" && llGetSubString(sName, 0, 0) != "~") lSoundList+=[sName];
|
||||
}
|
||||
string sText = "Current sound is: "+g_sBadWordSound+"\n\n";
|
||||
sText += "Select a new sound to use.\n\n";
|
||||
Dialog(kID, sText, lSoundList, ["BACK"],0, iNum, "BadwordsSound");
|
||||
}
|
||||
} else if (sCommand == "penance") {
|
||||
if (llGetListLength(lParams)>2){
|
||||
integer iPos=llSubStringIndex(llToLower(sStr),"ce");
|
||||
g_sPenance = llStringTrim(llGetSubString(sStr, iPos+2, -1),STRING_TRIM);
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, "badwords_penance=" + g_sPenance, "");
|
||||
Notify(kID, WordPrompt() ,TRUE);
|
||||
if (remenu) MenuBadwords(kID,iNum);
|
||||
} else {
|
||||
string sText = "\n- Submit the new penance in the field below.\n- Submit a blank field to go back.";
|
||||
sText += "\n\n- Current penance is: " + g_sPenance;
|
||||
Dialog(kID, sText, [], [],0, iNum, "BadwordsPenance");
|
||||
}
|
||||
} else if (sCommand == "remove") {
|
||||
list lNewBadWords = llDeleteSubList(lParams, 0, 1);
|
||||
if (llGetListLength(lNewBadWords)){
|
||||
while (llGetListLength(lNewBadWords)){
|
||||
string sNewWord=llToLower(DePunctuate(llList2String(lNewBadWords,-1)));
|
||||
integer iIndex=llListFindList(g_lBadWords, [sNewWord]);
|
||||
if (~iIndex) g_lBadWords = llDeleteSubList(g_lBadWords,iIndex,iIndex);
|
||||
lNewBadWords=llDeleteSubList(lNewBadWords,-1,-1);
|
||||
}
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, "badwords_words=" + llDumpList2String(g_lBadWords, ","), "");
|
||||
Notify(kID, WordPrompt(),TRUE);
|
||||
if (remenu) MenuBadwords(kID,iNum);
|
||||
} else {
|
||||
if (llGetListLength(g_lBadWords)) Dialog(kID, "Select a badword to remove or clear them all.", g_lBadWords, ["Clear", "BACK"],0, iNum, "BadwordsRemove");
|
||||
else {
|
||||
Notify(kID, "The list of badwords is currently empty.", FALSE);
|
||||
MenuBadwords(kID,iNum);
|
||||
}
|
||||
}
|
||||
} else if (sCommand == "on") {
|
||||
g_iIsEnabled = 1;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, "badwords_on=1", "");
|
||||
Notify(kID, "Use of bad words will now be punished.",FALSE);
|
||||
if (remenu) MenuBadwords(kID,iNum);
|
||||
} else if(sCommand == "off") {
|
||||
g_iIsEnabled = 0;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, "badwords_on","");
|
||||
Notify(kID, "Use of bad words will not be punished.",FALSE);
|
||||
if (remenu) MenuBadwords(kID,iNum);
|
||||
} else if(sCommand == "clear") {
|
||||
g_lBadWords = [];
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, "badwords_words","");
|
||||
Notify(kID, "The list of bad words has been cleared.",FALSE);
|
||||
if (remenu) MenuBadwords(kID,iNum);
|
||||
}
|
||||
|
||||
ListenControl();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
default {
|
||||
on_rez(integer iParam) {
|
||||
ListenControl();
|
||||
}
|
||||
|
||||
state_entry() {
|
||||
llSetMemoryLimit(36*1024);
|
||||
g_kWearer = llGetOwner();
|
||||
g_sBadWordAnim = "~shock" ;
|
||||
g_sBadWordSound = "Default" ;
|
||||
WEARERNAME = llKey2Name(g_kWearer); //quick and dirty default, will get replaced by value from settings
|
||||
//Debug("Starting");
|
||||
}
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID) {
|
||||
//Debug("Got message:"+(string)iNum+" "+sStr);
|
||||
if (iNum <= COMMAND_EVERYONE && iNum >= COMMAND_OWNER) UserCommand(iNum, sStr, kID, FALSE);
|
||||
else if (iNum == MENUNAME_REQUEST && sStr == "Apps") llMessageLinked(LINK_SET, MENUNAME_RESPONSE, "Apps|Badwords", "");
|
||||
else if (iNum == COMMAND_SAFEWORD)
|
||||
{
|
||||
//stop sound and animation
|
||||
if(g_sBadWordSound != g_sNoSound) llStopSound();
|
||||
llMessageLinked(LINK_SET, ANIM_STOP, g_sBadWordAnim, "");
|
||||
g_iHasSworn = FALSE;
|
||||
}
|
||||
else if (iNum == LM_SETTING_RESPONSE) {
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
integer i = llSubStringIndex(sToken, "_");
|
||||
if (llGetSubString(sToken, 0, i) == "badwords_") {
|
||||
sToken = llGetSubString(sToken, i + 1, -1);
|
||||
if (sToken == "on") g_iIsEnabled = (integer)sValue;
|
||||
else if (sToken == "animation") g_sBadWordAnim = sValue;
|
||||
else if (sToken == "sound") g_sBadWordSound = sValue;
|
||||
else if (sToken == "words") g_lBadWords = llParseString2List(llToLower(sValue), [","], []);
|
||||
else if (sToken == "penance") g_sPenance = sValue;
|
||||
ListenControl();
|
||||
} else if (sToken == "Global_CType") CTYPE = sValue;
|
||||
else if (sToken == "Global_WearerName") WEARERNAME = sValue;
|
||||
}
|
||||
else if (iNum == DIALOG_RESPONSE) {
|
||||
integer iMenuIndex = llListFindList(g_lMenuIDs, [kID]);
|
||||
if (~iMenuIndex) {
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
|
||||
//remove stride from g_lMenuIDs
|
||||
string sMenu=llList2String(g_lMenuIDs, iMenuIndex + 1);
|
||||
g_lMenuIDs = llDeleteSubList(g_lMenuIDs, iMenuIndex - 1, iMenuIndex - 2 + g_iMenuStride);
|
||||
|
||||
if (sMenu=="BadwordsMenu") {
|
||||
if (sMessage == "BACK") llMessageLinked(LINK_SET, iAuth, "menu apps", kAv);
|
||||
else UserCommand(iAuth, "badwords "+sMessage, kAv, TRUE);
|
||||
} else if (sMenu=="BadwordsAdd") {
|
||||
if (sMessage) UserCommand(iAuth, "badwords add " + sMessage, kAv, TRUE);
|
||||
else MenuBadwords(kID,iNum);
|
||||
} else if (sMenu=="BadwordsRemove") {
|
||||
if (sMessage == "BACK") MenuBadwords(kID,iNum);
|
||||
else if (sMessage == "Clear") UserCommand(iAuth, "badwords clear", kAv, TRUE);
|
||||
else if (sMessage) UserCommand(iAuth, "badwords remove " + sMessage, kAv, TRUE);
|
||||
else MenuBadwords(kID,iNum);
|
||||
} else if (sMenu=="BadwordsAnimation") {
|
||||
if (sMessage == "BACK") MenuBadwords(kID,iNum);
|
||||
else UserCommand(iAuth, "badwords animation " + sMessage, kAv, TRUE);
|
||||
} else if (sMenu=="BadwordsSound") {
|
||||
if (sMessage == "BACK") MenuBadwords(kID,iNum);
|
||||
else UserCommand(iAuth, "badwords sound " + sMessage, kAv, TRUE);
|
||||
} else if (sMenu=="BadwordsPenance") {
|
||||
if (sMessage) UserCommand(iAuth, "badwords penance " + sMessage, kAv, TRUE);
|
||||
else MenuBadwords(kID,iNum);
|
||||
}
|
||||
}
|
||||
} else if (iNum == DIALOG_TIMEOUT) {
|
||||
integer iMenuIndex = llListFindList(g_lMenuIDs, [kID]);
|
||||
//remove stride from g_lMenuIDs
|
||||
//we have to subtract from the index because the dialog id comes in the middle of the stride
|
||||
g_lMenuIDs = llDeleteSubList(g_lMenuIDs, iMenuIndex - 1, iMenuIndex - 2 + g_iMenuStride);
|
||||
}
|
||||
}
|
||||
|
||||
listen(integer iChannel, string sName, key kID, string sMessage) {
|
||||
//release anim if penance & play anim if swear
|
||||
if ((~(integer)llSubStringIndex(llToLower(sMessage), llToLower(g_sPenance))) && g_iHasSworn ) { //stop sound
|
||||
if(g_sBadWordSound != g_sNoSound) llStopSound();
|
||||
//stop anim
|
||||
llMessageLinked(LINK_SET, ANIM_STOP, g_sBadWordAnim, "");
|
||||
Notify(g_kWearer, "Penance accepted.",FALSE);
|
||||
g_iHasSworn = FALSE;
|
||||
}
|
||||
else if (~llSubStringIndex(sMessage, "rembadword")) return; //subs could theoretically circumvent this feature by sticking "rembadowrd" in all chat, but it doesn't seem likely to happen often
|
||||
else { //check for swear
|
||||
sMessage = llToLower(sMessage);
|
||||
list lWords = llParseString2List(sMessage, [" "], []);
|
||||
while (llGetListLength(lWords)) {
|
||||
string sWord = llList2String(lWords, -1);
|
||||
sWord = DePunctuate(sWord);
|
||||
|
||||
if (llListFindList(g_lBadWords, [sWord]) != -1) {
|
||||
//start sound
|
||||
if(g_sBadWordSound != g_sNoSound) {
|
||||
if(g_sBadWordSound == "Default") llLoopSound( "4546cdc8-8682-6763-7d52-2c1e67e8257d", 1.0 );
|
||||
else llLoopSound( g_sBadWordSound, 1.0 );
|
||||
}
|
||||
//start anim
|
||||
llMessageLinked(LINK_SET, ANIM_START, g_sBadWordAnim, "");
|
||||
llWhisper(0, WEARERNAME + " has said a bad word and is being punished.");
|
||||
g_iHasSworn = TRUE;
|
||||
}
|
||||
lWords=llDeleteSubList(lWords,-1,-1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
changed(integer iChange) {
|
||||
if (iChange & CHANGED_REGION) {
|
||||
if (g_iProfiled) {
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
@@ -1,646 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - bell //
|
||||
// version 3.995 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//scans for sounds starting with: bell_
|
||||
//show/hide for elements named: Bell
|
||||
//2009-01-30 Cleo Collins - 1. draft
|
||||
|
||||
string g_sSubMenu = "Bell";
|
||||
string g_sParentMenu = "Apps";
|
||||
key g_kDialogID;
|
||||
|
||||
list g_lLocalButtons = ["Next Sound","Vol +","Delay +","Ring it!","Vol -","Delay -"];
|
||||
float g_fVolume=0.5; // volume of the bell
|
||||
float g_fVolumeStep=0.1; // stepping for volume
|
||||
|
||||
float g_fSpeed=1.0; // Speed of the bell
|
||||
float g_fSpeedStep=0.5; // stepping for Speed adjusting
|
||||
float g_fSpeedMin=0.5; // stepping for Speed adjusting
|
||||
float g_fSpeedMax=5.0; // stepping for Speed adjusting
|
||||
|
||||
integer g_iBellOn=0; // are we ringing. Off is 0, On = Auth of person which enabled
|
||||
string g_sBellOn="ON"; // menu text of bell on
|
||||
string g_sBellOff="OFF"; // menu text of bell off
|
||||
|
||||
integer g_iBellShow=FALSE; // is the bell visible
|
||||
string g_sBellShow="SHOW"; //menu text of bell visible
|
||||
string g_sBellHide="HIDE"; //menu text of bell hidden
|
||||
|
||||
list g_listBellSounds=["10b27c32-43b5-40fb-b5a2-bbf770fbec5c",
|
||||
"a4c075a9-359e-4055-b093-5aa42cddea1c",
|
||||
"1e6f849d-9fee-42f2-b89a-98882a28b152",
|
||||
"d1cdd688-42d7-4780-804f-0abe94ebca2a",
|
||||
"ac855add-8834-4284-a6c1-74769b7cccb4",
|
||||
"aba3c635-efb6-4642-aea4-5a4ea94df059",
|
||||
"a6a3fcd4-3330-451f-b332-3fd59e3d698a",
|
||||
"74811182-df1d-4b72-a9de-87f3706ac7bd",
|
||||
"1d1b675c-4bee-4cc4-b225-69793893e66b",
|
||||
"687a10f6-5c97-419f-8fc4-51013b821d9d",
|
||||
"0c3774b9-90d9-4089-9198-f0445fa053e6",
|
||||
"d71c05d2-1869-4e94-b077-9de8551e8917"];
|
||||
key g_kCurrentBellSound ; // curent bell sound key
|
||||
integer g_iCurrentBellSound; // curent bell sound sumber
|
||||
integer g_iBellSoundCount; // number of avail bell sounds
|
||||
|
||||
key g_kLastToucher ; // store tocher key
|
||||
float g_fNextTouch ; // store time for the next touch
|
||||
float g_fTouch = 10.0 ; // timeout for touch chat notify
|
||||
|
||||
list g_lBellElements; // list with number of prims related to the bell
|
||||
list g_lGlows; // 2-strided list [integer link_num, float glow]
|
||||
|
||||
float g_fNextRing; // store time for the next ringing here;
|
||||
|
||||
key g_kWearer; // key of the current wearer to reset only on owner changes
|
||||
|
||||
integer g_iHasControl=FALSE; // dow we have control over the keyboard?
|
||||
|
||||
list g_lButtons;
|
||||
integer g_iHide ; // global hide
|
||||
|
||||
//MESSAGE MAP
|
||||
//integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
//integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
//integer COMMAND_RLV_RELAY = 507;
|
||||
|
||||
//integer SEND_IM = 1000; deprecated. each script should send its own IMs now. This is to reduce even the tiny bt of lag caused by having IM slave scripts
|
||||
//integer POPUP_HELP = 1001;
|
||||
|
||||
integer LM_SETTING_SAVE = 2000;//scripts send messages on this channel to have settings saved to httpdb
|
||||
//str must be in form of "token=value"
|
||||
//integer LM_SETTING_REQUEST = 2001;//when startup, scripts send requests for settings on this channel
|
||||
integer LM_SETTING_RESPONSE = 2002;//the httpdb script will send responses on this channel
|
||||
integer LM_SETTING_DELETE = 2003;//delete token from DB
|
||||
integer LM_SETTING_EMPTY = 2004;//sent by httpdb script when a token has no value in the db
|
||||
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
integer MENUNAME_REMOVE = 3003;
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
//integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
string UPMENU = "BACK";//when your menu hears this, give the parent menu
|
||||
string g_sScript;
|
||||
string CTYPE="collar";
|
||||
string WEARERNAME;
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
key Dialog(key kRCPT, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth)
|
||||
{
|
||||
key kID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kRCPT + "|" + sPrompt + "|" + (string)iPage + "|" + llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kID);
|
||||
//Debug("Made menu.");
|
||||
return kID;
|
||||
}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer)
|
||||
{
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else
|
||||
{
|
||||
if (llGetAgentSize(kID)!=ZERO_VECTOR) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
DoMenu(key kID, integer iAuth)
|
||||
{
|
||||
string sPrompt = "\n";
|
||||
// sPrompt += "(Menu will time out in " + (string)g_iTimeOut + " seconds.)\n";
|
||||
list lMyButtons;
|
||||
|
||||
//fill in your button list here
|
||||
|
||||
// Show buton for ringing the bell and add a text for it
|
||||
if (g_iBellOn>0) // the bell rings currently
|
||||
{
|
||||
lMyButtons+= g_sBellOff;
|
||||
sPrompt += "Bell is ringing";
|
||||
}
|
||||
else
|
||||
{
|
||||
lMyButtons+= g_sBellOn;
|
||||
sPrompt += "Bell is NOT ringing";
|
||||
}
|
||||
|
||||
// Show button for showing/hidding the bell and add a text for it, if there is a bell
|
||||
if (g_iBellShow) // the bell is hidden
|
||||
{
|
||||
lMyButtons+= g_sBellHide;
|
||||
sPrompt += " and shown.\n\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
lMyButtons+= g_sBellShow;
|
||||
sPrompt += " and NOT shown.\n\n";
|
||||
}
|
||||
|
||||
// and show the volume and timing of the bell sound
|
||||
sPrompt += "The volume of the bell is now: "+(string)((integer)(g_fVolume*10))+"/10.\n";
|
||||
sPrompt += "The bell rings every "+llGetSubString((string)g_fSpeed,0,2)+" seconds when moving.\n";
|
||||
sPrompt += "Currently used sound: "+(string)(g_iCurrentBellSound+1)+"/"+(string)g_iBellSoundCount+"\n";
|
||||
sPrompt +="\nwww.opencollar.at/bell";
|
||||
|
||||
lMyButtons += g_lLocalButtons + g_lButtons;
|
||||
|
||||
g_kDialogID=Dialog(kID, sPrompt, lMyButtons, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
SetBellElementAlpha()
|
||||
{
|
||||
if (g_iHide) return ; // ***** if collar is hide, don't do anything
|
||||
//loop through stored links, setting color if element type is bell
|
||||
|
||||
integer n;
|
||||
integer iLinkElements = llGetListLength(g_lBellElements);
|
||||
for (n = 0; n < iLinkElements; n++)
|
||||
{
|
||||
llSetLinkAlpha(llList2Integer(g_lBellElements,n), (float)g_iBellShow, ALL_SIDES);
|
||||
UpdateGlow(llList2Integer(g_lBellElements,n), g_iBellShow);
|
||||
}
|
||||
}
|
||||
|
||||
UpdateGlow(integer link, integer alpha)
|
||||
{
|
||||
if (alpha == 0)
|
||||
{
|
||||
SavePrimGlow(link);
|
||||
llSetLinkPrimitiveParamsFast(link, [PRIM_GLOW, ALL_SIDES, 0.0]); // set no glow;
|
||||
}
|
||||
else RestorePrimGlow(link);
|
||||
}
|
||||
|
||||
SavePrimGlow(integer link)
|
||||
{
|
||||
float glow = llList2Float(llGetLinkPrimitiveParams(link,[PRIM_GLOW,0]),0); // get current prim glow
|
||||
integer i = llListFindList(g_lGlows,[link]); // search in list
|
||||
if (glow > 0) // if glow
|
||||
{
|
||||
if (i !=-1) g_lGlows = llListReplaceList(g_lGlows,[glow],i+1,i+1); // update if present
|
||||
else g_lGlows += [link, glow]; // add if absent
|
||||
}
|
||||
else if (i !=-1) g_lGlows = llDeleteSubList(g_lGlows,i,i+1); // remove if present
|
||||
}
|
||||
|
||||
RestorePrimGlow(integer link)
|
||||
{
|
||||
integer i = llListFindList(g_lGlows,[link]);
|
||||
if (i != -1) llSetLinkPrimitiveParamsFast(link, [PRIM_GLOW, ALL_SIDES, llList2Float(g_lGlows, i+1)]);
|
||||
}
|
||||
|
||||
BuildBellElementList()
|
||||
{
|
||||
integer n;
|
||||
integer iLinkCount = llGetNumberOfPrims();
|
||||
list lParams;
|
||||
|
||||
// clear list just in case
|
||||
g_lBellElements = [];
|
||||
|
||||
//root prim is 1, so start at 2
|
||||
for (n = 2; n <= iLinkCount; n++)
|
||||
{
|
||||
// read description
|
||||
lParams=llParseString2List((string)llGetObjectDetails(llGetLinkKey(n), [OBJECT_DESC]), ["~"], []);
|
||||
// check inf name is baell name
|
||||
if (llList2String(lParams, 0)=="Bell")
|
||||
{
|
||||
// if so store the number of the prim
|
||||
g_lBellElements += [n];
|
||||
// Debug("added " + (string)n + " to elements");
|
||||
}
|
||||
}
|
||||
if (llGetListLength(g_lBellElements)==0){
|
||||
llMessageLinked(LINK_SET, MENUNAME_REMOVE, g_sParentMenu + "|" + g_sSubMenu, "");
|
||||
llRemoveInventory(llGetScriptName());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
PrepareSounds()
|
||||
{
|
||||
// parse names of sounds in inventiory if those are for the bell
|
||||
integer i;
|
||||
integer m=llGetInventoryNumber(INVENTORY_SOUND);
|
||||
string s;
|
||||
for (i=0;i<m;i++)
|
||||
{
|
||||
s=llGetInventoryName(INVENTORY_SOUND,i);
|
||||
if (llSubStringIndex(s,"bell_")==0)
|
||||
{
|
||||
// sound found, add key to list
|
||||
g_listBellSounds+=llGetInventoryKey(s);
|
||||
}
|
||||
}
|
||||
// and set the current sound
|
||||
g_iBellSoundCount=llGetListLength(g_listBellSounds);
|
||||
g_iCurrentBellSound=0;
|
||||
g_kCurrentBellSound=llList2Key(g_listBellSounds,g_iCurrentBellSound);
|
||||
}
|
||||
|
||||
// returns TRUE if eligible (AUTHED link message number)
|
||||
integer UserCommand(integer iNum, string sStr, key kID) // here iNum: auth value, sStr: user command, kID: avatar id
|
||||
{
|
||||
if (iNum > COMMAND_WEARER || iNum < COMMAND_OWNER) return FALSE; // sanity check
|
||||
string test=llToLower(sStr);
|
||||
if (sStr == "menu " + g_sSubMenu || sStr == "bell")
|
||||
{// the command prefix + bell without any extentsion is used in chat
|
||||
//give this plugin's menu to kID
|
||||
DoMenu(kID, iNum);
|
||||
}
|
||||
// we now chekc for chat commands
|
||||
else if (llSubStringIndex(test,"bell")==0)
|
||||
{
|
||||
// it is a chat commad for the bell so process it
|
||||
list lParams = llParseString2List(test, [" "], []);
|
||||
string sToken = llList2String(lParams, 1);
|
||||
string sValue = llList2String(lParams, 2);
|
||||
|
||||
if (sToken=="volume")
|
||||
{
|
||||
integer n=(integer)sValue;
|
||||
if (n<1) n=1;
|
||||
if (n>10) n=10;
|
||||
g_fVolume=(float)n/10;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "vol=" + (string)llFloor(g_fVolume*10), "");
|
||||
Notify(kID,"Bell volume set to "+(string)n, TRUE);
|
||||
}
|
||||
else if (sToken=="delay")
|
||||
{
|
||||
g_fSpeed=(float)sValue;
|
||||
if (g_fSpeed<g_fSpeedMin) g_fSpeed=g_fSpeedMin;
|
||||
if (g_fSpeed>g_fSpeedMax) g_fSpeed=g_fSpeedMax;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "speed=" + (string)llFloor(g_fSpeed*10), "");
|
||||
Notify(kID,"Bell delay set to "+llGetSubString((string)g_fSpeed,0,2)+" seconds.", TRUE);
|
||||
}
|
||||
else if (sToken=="show" || sToken=="hide")
|
||||
{
|
||||
if (sToken=="show")
|
||||
{
|
||||
g_iBellShow=TRUE;
|
||||
Notify(kID,"The bell is now visible.",TRUE);
|
||||
}
|
||||
else
|
||||
{
|
||||
g_iBellShow=FALSE;
|
||||
Notify(kID,"The bell is now invisible.",TRUE);
|
||||
}
|
||||
SetBellElementAlpha();
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "show=" + (string)g_iBellShow, "");
|
||||
}
|
||||
else if (sToken=="on")
|
||||
{
|
||||
if (iNum!=COMMAND_GROUP)
|
||||
{
|
||||
if (g_iBellOn==0)
|
||||
{
|
||||
g_iBellOn=iNum;
|
||||
if (!g_iHasControl) llRequestPermissions(g_kWearer,PERMISSION_TAKE_CONTROLS);
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "on=" + (string)g_iBellOn, "");
|
||||
Notify(kID,"The bell rings now.",TRUE);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Notify(kID,"Group users or Open Acces users cannot change the ring status of the bell.",TRUE);
|
||||
}
|
||||
}
|
||||
else if (sToken=="off")
|
||||
{
|
||||
if ((g_iBellOn>0)&&(iNum!=COMMAND_GROUP))
|
||||
{
|
||||
g_iBellOn=0;
|
||||
|
||||
if (g_iHasControl)
|
||||
{
|
||||
llReleaseControls();
|
||||
g_iHasControl=FALSE;
|
||||
}
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "on=" + (string)g_iBellOn, "");
|
||||
Notify(kID,"The bell is now quiet.",TRUE);
|
||||
}
|
||||
else
|
||||
{
|
||||
Notify(kID,"Group users or Open Access users cannot change the ring status of the bell.",TRUE);
|
||||
}
|
||||
}
|
||||
else if (sToken=="nextsound")
|
||||
{
|
||||
g_iCurrentBellSound++;
|
||||
if (g_iCurrentBellSound>=g_iBellSoundCount)
|
||||
{
|
||||
g_iCurrentBellSound=0;
|
||||
}
|
||||
g_kCurrentBellSound=llList2Key(g_listBellSounds,g_iCurrentBellSound);
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "sound=" + (string)g_iCurrentBellSound, "");
|
||||
Notify(kID,"Bell sound changed, now using "+(string)(g_iCurrentBellSound+1)+" of "+(string)g_iBellSoundCount+".",TRUE);
|
||||
}
|
||||
// let the bell ring one time
|
||||
else if (sToken=="ring")
|
||||
{
|
||||
// update variable for time check
|
||||
g_fNextRing=llGetTime()+g_fSpeed;
|
||||
// and play the sound
|
||||
llPlaySound(g_kCurrentBellSound,g_fVolume);
|
||||
}
|
||||
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
string GetName(key uuid)
|
||||
{
|
||||
string name = llGetDisplayName(uuid);
|
||||
if (name == "???" || name == "") name = llKey2Name(uuid);
|
||||
return name;
|
||||
}
|
||||
|
||||
default {
|
||||
on_rez(integer param) {
|
||||
g_kWearer=llGetOwner();
|
||||
if (g_iBellOn) llRequestPermissions(g_kWearer,PERMISSION_TAKE_CONTROLS);
|
||||
}
|
||||
|
||||
state_entry() {
|
||||
//llSetMemoryLimit(65536); //this script needs to be profiled, and its memory limited
|
||||
g_sScript = llStringTrim(llList2String(llParseString2List(llGetScriptName(), ["-"], []), 1), STRING_TRIM) + "_";
|
||||
g_kWearer=llGetOwner(); // key of the wearer
|
||||
WEARERNAME = GetName(g_kWearer); //quick and dirty default, will get replaced by value from settings
|
||||
|
||||
llResetTime(); // reset script time used for ringing the bell in intervalls
|
||||
BuildBellElementList(); //build up list of prims with bell elements
|
||||
|
||||
PrepareSounds();
|
||||
SetBellElementAlpha();
|
||||
//Debug("Starting");
|
||||
}
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID)
|
||||
{
|
||||
if (iNum == MENUNAME_REQUEST && sStr == g_sParentMenu)
|
||||
{
|
||||
// the menu structure is to be build again, so make sure we get recognized
|
||||
llMessageLinked(LINK_SET, MENUNAME_RESPONSE, g_sParentMenu + "|" + g_sSubMenu, "");
|
||||
g_lButtons = [] ; // flush submenu buttons
|
||||
llMessageLinked(LINK_SET, MENUNAME_REQUEST, g_sSubMenu, "");
|
||||
}
|
||||
else if (iNum == MENUNAME_RESPONSE)
|
||||
{
|
||||
list lParts = llParseString2List(sStr, ["|"], []);
|
||||
if (llList2String(lParts, 0) == g_sSubMenu)
|
||||
{//someone wants to stick something in our menu
|
||||
string button = llList2String(lParts, 1);
|
||||
if (llListFindList(g_lButtons, [button]) == -1)
|
||||
{
|
||||
g_lButtons = llListSort(g_lButtons + [button], 1, TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (iNum == MENUNAME_REMOVE)
|
||||
{
|
||||
list lParts = llParseString2List(sStr, ["|"], []);
|
||||
if (llList2String(lParts, 0) == g_sSubMenu)
|
||||
{
|
||||
string button = llList2String(lParts, 1);
|
||||
integer iIndex = llListFindList(g_lButtons , [button]);
|
||||
if (iIndex != -1)
|
||||
{
|
||||
g_lButtons = llDeleteSubList(g_lButtons , iIndex, iIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (iNum == LM_SETTING_RESPONSE)
|
||||
{
|
||||
// some responses from the DB are coming in, check if it is about bell values
|
||||
integer i = llSubStringIndex(sStr, "=");
|
||||
string sToken = llGetSubString(sStr, 0, i - 1);
|
||||
string sValue = llGetSubString(sStr, i + 1, -1);
|
||||
i = llSubStringIndex(sToken, "_");
|
||||
if (llGetSubString(sToken, 0, i) == g_sScript)
|
||||
{
|
||||
sToken = llGetSubString(sToken, i + 1, -1);
|
||||
if (sToken == "on")
|
||||
{
|
||||
g_iBellOn=(integer)sValue;
|
||||
if (g_iBellOn && !g_iHasControl)
|
||||
{
|
||||
llRequestPermissions(g_kWearer,PERMISSION_TAKE_CONTROLS);
|
||||
}
|
||||
else if (!g_iBellOn && g_iHasControl)
|
||||
{
|
||||
llReleaseControls();
|
||||
g_iHasControl=FALSE;
|
||||
}
|
||||
}
|
||||
else if (sToken == "show")
|
||||
{
|
||||
g_iBellShow=(integer)sValue;
|
||||
SetBellElementAlpha();
|
||||
}
|
||||
else if (sToken == "sound")
|
||||
{
|
||||
g_iCurrentBellSound=(integer)sValue;
|
||||
g_kCurrentBellSound=llList2Key(g_listBellSounds,g_iCurrentBellSound);
|
||||
}
|
||||
else if (sToken == "vol") g_fVolume=(float)sValue/10;
|
||||
else if (sToken == "speed") g_fSpeed=(float)sValue/10;
|
||||
} else if (sToken=="Global_WearerName") WEARERNAME=sValue;
|
||||
else if (sToken == "Global_CType") CTYPE = sValue;
|
||||
}
|
||||
else if (UserCommand(iNum, sStr, kID)) return;
|
||||
else if (iNum==DIALOG_RESPONSE)
|
||||
{
|
||||
//str will be a 2-element, pipe-delimited list in form pagenum|response
|
||||
|
||||
if (kID == g_kDialogID)
|
||||
{
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAV = llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
if (sMessage == UPMENU)
|
||||
{
|
||||
//give id the parent menu
|
||||
llMessageLinked(LINK_SET, iAuth, "menu "+g_sParentMenu, kAV);
|
||||
return; // no "remenu"
|
||||
}
|
||||
else if (~llListFindList(g_lLocalButtons, [sMessage]))
|
||||
{
|
||||
//we got a response for something we handle locally
|
||||
if (sMessage == "Vol +") // pump up the volume and store the value
|
||||
{
|
||||
g_fVolume+=g_fVolumeStep;
|
||||
if (g_fVolume>1.0) g_fVolume=1.0;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "vol=" + (string)llFloor(g_fVolume*10), "");
|
||||
}
|
||||
else if (sMessage == "Vol -") // be more quiet, and store the value
|
||||
{
|
||||
g_fVolume-=g_fVolumeStep;
|
||||
if (g_fVolume<0.1) g_fVolume=0.1;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "vol=" + (string)llFloor(g_fVolume*10), "");
|
||||
}
|
||||
else if (sMessage == "Delay +") // dont annoy people and ring slower
|
||||
{
|
||||
g_fSpeed+=g_fSpeedStep;
|
||||
if (g_fSpeed>g_fSpeedMax) g_fSpeed=g_fSpeedMax;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "speed=" + (string)llFloor(g_fSpeed*10), "");
|
||||
}
|
||||
else if (sMessage == "Delay -") // annoy the hell out of the, ring plenty, ring often
|
||||
{
|
||||
g_fSpeed-=g_fSpeedStep;
|
||||
if (g_fSpeed<g_fSpeedMin) g_fSpeed=g_fSpeedMin;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "speed=" + (string)llFloor(g_fSpeed*10), "");
|
||||
}
|
||||
else if (sMessage == "Next Sound") // choose another sound for the bell
|
||||
{
|
||||
g_iCurrentBellSound++;
|
||||
if (g_iCurrentBellSound>=g_iBellSoundCount) g_iCurrentBellSound=0;
|
||||
g_kCurrentBellSound=llList2Key(g_listBellSounds,g_iCurrentBellSound);
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "sound=" + (string)g_iCurrentBellSound, "");
|
||||
}
|
||||
//added a button to ring the bell. same call as when walking.
|
||||
else if (sMessage == "Ring it!")
|
||||
{
|
||||
// update variable for time check
|
||||
g_fNextRing=llGetTime()+g_fSpeed;
|
||||
// and play the sound
|
||||
llPlaySound(g_kCurrentBellSound,g_fVolume);
|
||||
//Debug("Bing");
|
||||
}
|
||||
}
|
||||
else if (sMessage == g_sBellOff || sMessage == g_sBellOn)
|
||||
// someone wants to change if the bell rings or not
|
||||
{
|
||||
string s;
|
||||
if (g_iBellOn>0) s="bell off";
|
||||
else s="bell on";
|
||||
UserCommand(iAuth,s,kAV);
|
||||
}
|
||||
else if (sMessage == g_sBellShow || sMessage == g_sBellHide)
|
||||
// someone wants to hide or show the bell
|
||||
{
|
||||
g_iBellShow=!g_iBellShow;
|
||||
SetBellElementAlpha();
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "show=" + (string)g_iBellShow, "");
|
||||
}
|
||||
else if (~llListFindList(g_lButtons, [sMessage]))
|
||||
{
|
||||
//we got a submenu selection
|
||||
//UserCommand(iAuth, "menu "+sMessage, kAV);
|
||||
llMessageLinked(LINK_SET, iAuth, "menu " + sMessage, kAV);
|
||||
return; // no main menu
|
||||
}
|
||||
// do we want to see the menu again?
|
||||
DoMenu(kAV, iAuth);
|
||||
}
|
||||
}
|
||||
else if(iNum=COMMAND_OWNER && sStr=="runaway")
|
||||
{
|
||||
llSleep(4);
|
||||
SetBellElementAlpha();
|
||||
}
|
||||
}
|
||||
|
||||
control( key kID, integer nHeld, integer nChange )
|
||||
// we watch for movement from
|
||||
{
|
||||
// we dont want the bell to ring, so just exit
|
||||
if (!g_iBellOn) return;
|
||||
// Is the user holding down a movement key
|
||||
if ( nHeld & (CONTROL_LEFT|CONTROL_RIGHT|CONTROL_DOWN|CONTROL_UP|CONTROL_ROT_LEFT|CONTROL_ROT_RIGHT|CONTROL_FWD|CONTROL_BACK) )
|
||||
{
|
||||
// check if the time is ready for the next ring
|
||||
if (llGetTime()>g_fNextRing)
|
||||
{
|
||||
// update variable for time check
|
||||
g_fNextRing=llGetTime()+g_fSpeed;
|
||||
// and play the sound
|
||||
llPlaySound(g_kCurrentBellSound,g_fVolume);
|
||||
//Debug("Bing");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
run_time_permissions(integer nParam)
|
||||
// we requested permissions, now we take control
|
||||
{
|
||||
if( nParam & PERMISSION_TAKE_CONTROLS)
|
||||
{
|
||||
//Debug("Bing");
|
||||
llTakeControls( CONTROL_DOWN|CONTROL_UP|CONTROL_FWD|CONTROL_BACK|CONTROL_LEFT|CONTROL_RIGHT|CONTROL_ROT_LEFT|CONTROL_ROT_RIGHT, TRUE, TRUE);
|
||||
g_iHasControl=TRUE;
|
||||
g_fNextRing=llGetTime()+g_fSpeed;
|
||||
}
|
||||
}
|
||||
|
||||
touch_start(integer n)
|
||||
{
|
||||
if (g_iBellShow && !g_iHide && llListFindList(g_lBellElements,[llDetectedLinkNumber(0)]) != -1)
|
||||
{
|
||||
key toucher = llDetectedKey(0);
|
||||
g_fNextRing=llGetTime()+g_fSpeed;
|
||||
llPlaySound(g_kCurrentBellSound,g_fVolume);
|
||||
if (toucher != g_kLastToucher || llGetTime() > g_fNextTouch)
|
||||
{
|
||||
g_fNextTouch=llGetTime()+g_fTouch;
|
||||
g_kLastToucher = toucher;
|
||||
llSay(0, GetName(toucher) + " plays with the trinket on " + WEARERNAME + "'s "+CTYPE+"." );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
changed(integer change) {
|
||||
if(change & CHANGED_LINK) BuildBellElementList();
|
||||
else if (change & CHANGED_INVENTORY) PrepareSounds();
|
||||
if (change & CHANGED_COLOR) {
|
||||
integer iNewHide=!(integer)llGetAlpha(ALL_SIDES) ; //check alpha
|
||||
if (g_iHide != iNewHide){ //check there's a difference to avoid infinite loop
|
||||
g_iHide = iNewHide;
|
||||
SetBellElementAlpha(); // update hide elements
|
||||
}
|
||||
}
|
||||
if (change & CHANGED_OWNER) llResetScript();
|
||||
|
||||
if (change & CHANGED_REGION) {
|
||||
if (g_iBellOn) g_fNextRing=llGetTime()+g_fSpeed;
|
||||
/* if (g_iProfiled){
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}*/
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,562 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - bookmarks //
|
||||
// version 3.995 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
string SUBMENU_BUTTON = "Bookmarks"; // Name of the submenu
|
||||
string COLLAR_PARENT_MENU = "Apps"; // name of the menu, where the menu plugs in, should be usually Addons. Please do not use the mainmenu anymore
|
||||
string PLUGIN_CHAT_COMMAND = "tp"; // every menu should have a chat command, so the user can easily access it by type for instance *plugin
|
||||
string PLUGIN_CHAT_COMMAND_ALT = "bookmarks"; //taking control over some map/tp commands from rlvtp
|
||||
integer IN_DEBUG_MODE = FALSE; // set to TRUE to enable Debug messages
|
||||
string g_sCard = ".bookmarks"; //Name of the notecards to store destinations.
|
||||
key webLookup;
|
||||
|
||||
list g_lDestinations = []; //Destination list direct from static notecard
|
||||
list g_lDestinations_Slurls = []; //Destination list direct from static notecard
|
||||
list g_lVolatile_Destinations = []; //These are in memory preferences that are not yet saved into the notecard
|
||||
list g_lVolatile_Slurls = []; //These are in memory preferences that are not yet saved into the notecard
|
||||
key g_kRequestHandle = NULL_KEY; //Sim Request Handle to convert global coordinates
|
||||
vector g_vLocalPos = ZERO_VECTOR;
|
||||
key g_kRemoveMenu = NULL_KEY; //Use a separate key for the remove menu ID
|
||||
integer g_iRLVOn = FALSE; //Assume RLV is off until we hear otherwise
|
||||
string g_tempLoc = ""; //This holds a global temp location for manual entry from provided location but no favorite name - g_kTBoxIdLocationOnly
|
||||
|
||||
key g_kMenuID; // menu handler
|
||||
key g_kWearer; // key of the current wearer to reset only on owner changes
|
||||
key g_kTBoxIdSave = "null";
|
||||
key g_kTBoxIdLocationOnly = "null";
|
||||
string g_sScript; // part of script name used for settings
|
||||
key g_kDataID;
|
||||
integer g_iLine = 0;
|
||||
string UPMENU = "BACK"; // when your menu hears this, give the parent menu
|
||||
key g_kCommander;
|
||||
|
||||
string CTYPE = "collar"; // designer can set in notecard to appropriate word for their item
|
||||
|
||||
list PLUGIN_BUTTONS = ["SAVE", "PRINT", "REMOVE"];
|
||||
list g_lButtons;
|
||||
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer LM_SETTING_SAVE = 2000; // scripts send messages on this channel to have settings saved to settings store
|
||||
integer LM_SETTING_RESPONSE = 2002; // the settings script will send responses on this channel
|
||||
integer LM_SETTING_DELETE = 2003; // delete token from settings store
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
integer RLV_CMD = 6000;
|
||||
integer RLV_OFF = 6100; // send to inform plugins that RLV is disabled now, no message or key needed
|
||||
integer RLV_ON = 6101; // send to inform plugins that RLV is enabled now, no message or key needed
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
key Dialog(key kRCPT, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth)
|
||||
{
|
||||
key kID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kRCPT + "|" + sPrompt + "|" + (string)iPage + "|" + llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kID);
|
||||
//Debug("Made menu.");
|
||||
return kID;
|
||||
}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer)
|
||||
{
|
||||
if((integer)llStringLength(sMsg) > 1023) { //Line too long, gotta chop this up!
|
||||
integer i;
|
||||
integer x = 0;
|
||||
for(i = 1023; x <= i; --i) {
|
||||
if(llGetSubString(sMsg, i, i) == "\n") { //got a breaking point
|
||||
Notify(kID, llGetSubString(sMsg, 0, i), iAlsoNotifyWearer);
|
||||
Notify(kID, llGetSubString(sMsg, i, -1), iAlsoNotifyWearer);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else {
|
||||
if (llGetAgentSize(kID)!=ZERO_VECTOR) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
DoMenu(key keyID, integer iAuth)
|
||||
{
|
||||
string sPrompt = "\nTake me away, gumby!\n\nwww.opencollar.at/bookmarks";
|
||||
list lMyButtons = PLUGIN_BUTTONS + g_lButtons + g_lDestinations + g_lVolatile_Destinations;
|
||||
g_kMenuID = Dialog(keyID, sPrompt, lMyButtons, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
integer UserCommand(integer iNum, string sStr, key kID)
|
||||
{
|
||||
if(!(iNum >= COMMAND_OWNER && iNum <= COMMAND_WEARER)) {
|
||||
return FALSE;
|
||||
}
|
||||
// a validated command from a owner, secowner, groupmember or the wearer has been received
|
||||
list lParams = llParseString2List(sStr, [" "], []);
|
||||
//string sCommand = llToLower(llList2String(lParams, 0));
|
||||
//string sValue = llToLower(llList2String(lParams, 1));
|
||||
// So commands can accept a value
|
||||
if(sStr == "reset") {
|
||||
// it is a request for a reset
|
||||
if(iNum == COMMAND_WEARER || iNum == COMMAND_OWNER) {
|
||||
//only owner and wearer may reset
|
||||
llResetScript();
|
||||
}
|
||||
} else if(sStr == PLUGIN_CHAT_COMMAND || sStr == "menu " + SUBMENU_BUTTON || sStr == PLUGIN_CHAT_COMMAND_ALT) {
|
||||
// an authorized user requested the plugin menu by typing the menus chat command
|
||||
DoMenu(kID, iNum);
|
||||
} else if(llGetSubString(sStr, 0, llStringLength(PLUGIN_CHAT_COMMAND + " save") - 1) == PLUGIN_CHAT_COMMAND + " save") { //grab partial string match to capture destination name
|
||||
if(llStringLength(sStr) > llStringLength(PLUGIN_CHAT_COMMAND + " save")) {
|
||||
string sAdd = llStringTrim(llGetSubString(sStr, llStringLength(PLUGIN_CHAT_COMMAND + " save") + 1, -1), STRING_TRIM);
|
||||
if(llListFindList(g_lVolatile_Destinations, [sAdd]) >= 0 || llListFindList(g_lDestinations, [sAdd]) >= 0) {
|
||||
Notify(kID, "This destination name is already taken", FALSE);
|
||||
} else {
|
||||
string slurl = FormatRegionName();
|
||||
addDestination(sAdd, slurl, kID);
|
||||
}
|
||||
} else {
|
||||
// Notify that they need to give a description of the saved destination ie. <prefix>bookmarks save description
|
||||
g_kTBoxIdSave = Dialog(kID,
|
||||
|
||||
"Enter a name for the destination below. Submit a blank field to cancel and return.
|
||||
You can enter:
|
||||
1) A friendly name to save your current location to your favorites
|
||||
2) A new location or SLurl", [], [], 0, iNum);
|
||||
|
||||
}
|
||||
} else if(llGetSubString(sStr, 0, llStringLength(PLUGIN_CHAT_COMMAND + " remove") - 1) == PLUGIN_CHAT_COMMAND + " remove") { //grab partial string match to capture destination name
|
||||
if(llStringLength(sStr) > llStringLength(PLUGIN_CHAT_COMMAND + " remove")) {
|
||||
string sDel = llStringTrim(llGetSubString(sStr, llStringLength(PLUGIN_CHAT_COMMAND + " remove"), -1), STRING_TRIM);
|
||||
if(llListFindList(g_lVolatile_Destinations, [sDel]) < 0) {
|
||||
Notify(kID, "Can't find bookmark " + (string)sDel + " to be deleted", FALSE);
|
||||
} else {
|
||||
integer iIndex;
|
||||
llMessageLinked(LINK_THIS, LM_SETTING_DELETE, g_sScript + sDel, "");
|
||||
iIndex = llListFindList(g_lVolatile_Destinations, [sDel]);
|
||||
g_lVolatile_Destinations = llDeleteSubList(g_lVolatile_Destinations, iIndex, iIndex);
|
||||
g_lVolatile_Slurls = llDeleteSubList(g_lVolatile_Slurls, iIndex, iIndex);
|
||||
Notify(kID, "Removed destination " + sDel, FALSE);
|
||||
}
|
||||
} else {
|
||||
g_kRemoveMenu = Dialog(kID, "Select a bookmark to be removed...", g_lVolatile_Destinations, [UPMENU], 0, iNum);
|
||||
}
|
||||
} else if(llGetSubString(sStr, 0, llStringLength(PLUGIN_CHAT_COMMAND + " print") - 1) == PLUGIN_CHAT_COMMAND + " print") { //grab partial string match to capture destination name
|
||||
PrintDestinations(kID);
|
||||
} else if(llGetSubString(sStr, 0, llStringLength(PLUGIN_CHAT_COMMAND) - 1) == PLUGIN_CHAT_COMMAND) {
|
||||
string sCmd = llStringTrim(llGetSubString(sStr, llStringLength(PLUGIN_CHAT_COMMAND) + 1, -1), STRING_TRIM);
|
||||
g_kCommander = kID;
|
||||
if(llGetSubString(sStr,-2,-1) == "=n" || llGetSubString(sStr,-2,-1) == "=y" || llGetSubString(sStr,-4,-1) == "=add" || llGetSubString(sStr,-4,-1) == "=rem") { //ignore RLV restriction commands in this script
|
||||
} else if(llListFindList(g_lVolatile_Destinations, [sCmd]) >= 0) {
|
||||
integer iIndex = llListFindList(g_lVolatile_Destinations, [sCmd]);
|
||||
TeleportTo(llList2String(g_lVolatile_Slurls, iIndex));
|
||||
} else if(llListFindList(g_lDestinations, [sCmd]) >= 0) { //Found exact match, TP over
|
||||
integer iIndex = llListFindList(g_lDestinations, [sCmd]);
|
||||
TeleportTo(llList2String(g_lDestinations_Slurls, iIndex));
|
||||
} else if(llStringLength(sCmd) > 0) { // We didn't get a case sensitive match, so lets loop through what we know and try find what we need
|
||||
integer i = 0;
|
||||
integer x = llGetListLength(g_lDestinations);
|
||||
string s;
|
||||
integer found = 0;
|
||||
list matchedBookmarks;
|
||||
for(i = 0; i < x; i++) { //First check OC locations
|
||||
s = llList2String(g_lDestinations, i);
|
||||
if(llSubStringIndex(llToLower(s), llToLower(sCmd)) >= 0) {
|
||||
//store it, if we only find one, we'll go there
|
||||
//Notify(kID,"Matched bookmark '"+s+"'",FALSE);
|
||||
found += 1;
|
||||
matchedBookmarks += s;
|
||||
}
|
||||
}
|
||||
i = 0;
|
||||
x = llGetListLength(g_lVolatile_Destinations);
|
||||
for(i = 0; i < x; i++) { //Then check volatile destinations
|
||||
s = llList2String(g_lVolatile_Destinations, i);
|
||||
if(llSubStringIndex(llToLower(s), llToLower(sCmd)) >= 0) {
|
||||
//store it, if we only find one, we'll go there
|
||||
//Notify(kID,"Matched bookmark '"+s+"'",FALSE);
|
||||
found += 1;
|
||||
matchedBookmarks += s;
|
||||
}
|
||||
}
|
||||
if(found == 0) {
|
||||
//old hud command compatibility: 'o:176382.800000/261210.900000/3503.276000=force'
|
||||
if (llSubStringIndex(sCmd,"o:") == 0){} // prevents errors in obsolete huds
|
||||
else Notify(kID, "The bookmark '" + sCmd + "' has not been found in the " + CTYPE + " of " + llKey2Name(g_kWearer) + ".", FALSE);
|
||||
} else if(found > 1) {
|
||||
g_kMenuID = Dialog(kID, "More than one matching bookmark was found in the " + CTYPE + " of " + llKey2Name(g_kWearer) +
|
||||
".\nChoose a bookmark to teleport to.", matchedBookmarks, [UPMENU], 0, iNum);
|
||||
} else { //exactly one matching LM found, so use it
|
||||
UserCommand(iNum, PLUGIN_CHAT_COMMAND + " " + llList2String(matchedBookmarks, 0), g_kCommander); //Push matched result to command for processing
|
||||
}
|
||||
}
|
||||
//Can't find in list, lets try find substring matches
|
||||
else {
|
||||
Notify(kID, "I didn't understand your command.", FALSE);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
addDestination(string sMessage, string sLoc, key kID)
|
||||
{
|
||||
llMessageLinked(LINK_THIS, LM_SETTING_SAVE, g_sScript + sMessage + "=" + sLoc, "");
|
||||
g_lVolatile_Destinations += sMessage;
|
||||
g_lVolatile_Slurls += sLoc;
|
||||
Notify(kID, "Added destination " + sMessage + " with a location of: " + sLoc, FALSE);
|
||||
}
|
||||
|
||||
string FormatRegionName()
|
||||
{
|
||||
//Formatting to regionname(x,x,x)
|
||||
string region = llGetRegionName();
|
||||
vector pos = llGetPos();
|
||||
string posx = (string)llRound(pos.x);
|
||||
string posy = (string)llRound(pos.y);
|
||||
string posz = (string)llRound(pos.z);
|
||||
return (region + "(" + posx + "," + posy + "," + posz + ")");
|
||||
}
|
||||
|
||||
string convertSlurl(string sStr, key kAv, integer iAuth) //convert the slurl http strings to region (xxx,xxx,xxx)
|
||||
{
|
||||
sStr = llStringTrim(llUnescapeURL(sStr), STRING_TRIM);
|
||||
string sIndex = "http:";
|
||||
list lPieces = llParseStringKeepNulls(sStr, ["/"], []);
|
||||
integer iHttploc = 0;
|
||||
string sStringToKeep;
|
||||
integer iHttpInString = llSubStringIndex(llList2String(lPieces, 0), sIndex);
|
||||
if(iHttpInString > 0) {
|
||||
sStringToKeep = llGetSubString(llList2String(lPieces, 0), 0, iHttpInString - 1);
|
||||
}
|
||||
if(llGetListLength(lPieces) == 8) { //
|
||||
string sRegion = llList2String(lPieces, iHttploc + 4);
|
||||
string sLocationx = llList2String(lPieces, iHttploc + 5);
|
||||
string sLocationy = llList2String(lPieces, iHttploc + 6);
|
||||
string sLocationz = llList2String(lPieces, iHttploc + 7);
|
||||
sStr = sStringToKeep + sRegion + "(" + sLocationx + "," + sLocationy + "," + sLocationz + ")";
|
||||
//Debug("Converted slurl, sending for processing..." + sStr);
|
||||
return sStr; //successful conversion, send converted string assembly
|
||||
}
|
||||
//Debug("No slurl detected, sending for processing anyways :" + sStr);
|
||||
return sStr; //failed conversion, send raw string assuming there's no Slurls
|
||||
}
|
||||
|
||||
|
||||
integer isInteger(string input) //for validating location scheme
|
||||
{
|
||||
return ((string)((integer)input) == input);
|
||||
}
|
||||
|
||||
integer validatePlace(string sStr, key kAv, integer iAuth)
|
||||
{
|
||||
//Debug("validatePlaces working on: "+sStr);
|
||||
list lPieces;
|
||||
integer MAX_CHAR_TYPE = 2; //we use +1 due since we're counting with a list split. We can only accept 1 of each of the following: ()~
|
||||
string sAssembledLoc;
|
||||
string sRegionName;
|
||||
string sFriendlyName;
|
||||
sStr = llStringTrim(sStr, STRING_TRIM); //clean up whitespace
|
||||
lPieces = llParseStringKeepNulls(sStr, ["~"], []); // split location from friendly name
|
||||
if(llGetListLength(lPieces) == MAX_CHAR_TYPE) { //We have a tilde, so make sure the friendly name is good
|
||||
if(llStringLength(llList2String(lPieces, 0)) < 1) { return 2;} //make sure friendly name isn't empty
|
||||
sFriendlyName = llStringTrim(llList2String(lPieces, 0), STRING_TRIM); //assign friendly name
|
||||
lPieces = llParseStringKeepNulls(llList2String(lPieces, 1), ["("], []); // split location from friendly name
|
||||
} else if(llGetListLength(lPieces) > MAX_CHAR_TYPE) { return 1; } //too many tildes, retreat
|
||||
else { lPieces = llParseStringKeepNulls(llList2String(lPieces, 0), ["("], []); } // We don't have a friendly name, so let's ignore that for now and split at 0
|
||||
if(llGetListLength(lPieces) == MAX_CHAR_TYPE) { //Check to see we don't have extra ('s - this might also mean there's no location coming...
|
||||
if(llStringLength(llList2String(lPieces, 0)) < 1) { return 4;} //make sure region name isn't empty
|
||||
sRegionName = llStringTrim(llList2String(lPieces, 0), STRING_TRIM); //trim off whitespace from region name
|
||||
} else if(llGetListLength(lPieces) > MAX_CHAR_TYPE) {return 3; } //this location looks wrong, retreat
|
||||
else { //there's no location here, kick out new menu
|
||||
UserCommand(iAuth, PLUGIN_CHAT_COMMAND + " save " + sStr, kAv);
|
||||
UserCommand(iAuth, PLUGIN_CHAT_COMMAND, kAv);
|
||||
return 0;
|
||||
}
|
||||
//we're left with sFriendlyname,sRegionName,["blah","123,123)"] - so lets validate the last list item
|
||||
sAssembledLoc = llStringTrim("(" + llList2String(lPieces, 1), STRING_TRIM); //reattach the bracket we lost, clean up whitespace
|
||||
lPieces = llParseStringKeepNulls(sAssembledLoc, [","], []); // split location from friendly name
|
||||
if(llGetListLength(lPieces) != 3) { return 5; } //Check to see we don't have extra ,'s
|
||||
if(llGetSubString(sAssembledLoc, 0, 0) != "(") { return 6; } //location doesn't start with (
|
||||
if(llGetSubString(sAssembledLoc, llStringLength(sAssembledLoc) - 1, llStringLength(sAssembledLoc) - 1) != ")") { return 7; } //location doesn't end with )
|
||||
lPieces = llParseStringKeepNulls(llGetSubString(sAssembledLoc, 1, llStringLength(sAssembledLoc) - 2), [","], []); // lPieces should be a list of 3 sets of numbers
|
||||
integer i = 0;
|
||||
integer x = llGetListLength(lPieces) - 1;
|
||||
for(i = 0; i <= x; ++i) { //run through this number list to make sure each character is numeric
|
||||
integer y = 0;
|
||||
integer z = llStringLength(llList2String(lPieces, i)) - 1;
|
||||
for(y = 0; y <= z; ++y) {
|
||||
if(isInteger(llGetSubString(llList2String(lPieces, i), y, y)) != 1) { return 8; } //something left in here isn't an integer
|
||||
}
|
||||
}
|
||||
if(sFriendlyName == "") {
|
||||
g_tempLoc = sRegionName + sAssembledLoc; //assign a global for use in response menu
|
||||
g_kTBoxIdLocationOnly = Dialog(kAv,
|
||||
"\nEnter a name for the destination " + sRegionName + sAssembledLoc + "
|
||||
below.\n- Submit a blank field to cancel and return.", [], [], 0, iAuth);
|
||||
|
||||
} else {
|
||||
addDestination(sFriendlyName, sRegionName, kAv);
|
||||
UserCommand(iAuth, PLUGIN_CHAT_COMMAND, kAv);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
ReadDestinations() // On inventory change, re-read our ~destinations notecard and pull from https://raw.githubusercontent.com/OpenCollar/OpenCollarUpdater/main/LSL/~bookmarks
|
||||
{
|
||||
key kAv;
|
||||
webLookup = llHTTPRequest("https://raw.githubusercontent.com/OpenCollar/OpenCollarUpdater/main/LSL/~bookmarks",
|
||||
[HTTP_METHOD, "GET", HTTP_VERBOSE_THROTTLE, FALSE], "");
|
||||
g_lDestinations = [];
|
||||
g_lDestinations_Slurls = [];
|
||||
//start re-reading the notecards
|
||||
if(llGetInventoryKey(g_sCard)) {
|
||||
g_kDataID = llGetNotecardLine(g_sCard, 0);
|
||||
}
|
||||
}
|
||||
|
||||
TeleportTo(string sStr) //take a string in region (x,y,z) format, and retrieve global coordinates. The teleport takes place in the data server section
|
||||
{
|
||||
string sRegion = llStringTrim(llGetSubString(sStr, 0, llSubStringIndex(sStr, "(") - 1), STRING_TRIM);
|
||||
string sCoords = llStringTrim(llGetSubString(sStr, llSubStringIndex(sStr, "(") + 1 , llStringLength(sStr) - 2), STRING_TRIM);
|
||||
list tokens = llParseString2List(sCoords, [","], []);
|
||||
// Extract local X, Y and Z
|
||||
g_vLocalPos.x = llList2Float(tokens, 0);
|
||||
g_vLocalPos.y = llList2Float(tokens, 1);
|
||||
g_vLocalPos.z = llList2Float(tokens, 2);
|
||||
// Request info about the sim
|
||||
if(g_iRLVOn == FALSE) { //If we don't have RLV, we can just send to llMapDestination for a popup
|
||||
llMapDestination(sRegion, g_vLocalPos, ZERO_VECTOR);
|
||||
} else { //We've got RLV, let's use it
|
||||
g_kRequestHandle = llRequestSimulatorData(sRegion, DATA_SIM_POS);
|
||||
}
|
||||
}
|
||||
|
||||
PrintDestinations(key kID) // On inventory change, re-read our ~destinations notecard
|
||||
{
|
||||
integer i;
|
||||
integer length = llGetListLength(g_lDestinations);
|
||||
string sMsg;
|
||||
sMsg += "\n\nThe below can be copied and pasted into the " + g_sCard + " notecard. The format should follow:\n\ndestination name~region name(123,123,123)\n\n";
|
||||
for(i = 0; i < length; i++) {
|
||||
sMsg += llList2String(g_lDestinations, i) + "~" + llList2String(g_lDestinations_Slurls, i) + "\n";
|
||||
}
|
||||
length = llGetListLength(g_lVolatile_Destinations);
|
||||
for(i = 0; i < length; i++) {
|
||||
sMsg += llList2String(g_lVolatile_Destinations, i) + "~" + llList2String(g_lVolatile_Slurls, i) + "\n";
|
||||
}
|
||||
Notify(kID, sMsg, i);
|
||||
}
|
||||
|
||||
default {
|
||||
on_rez(integer iParam) {
|
||||
if(llGetOwner() != g_kWearer) llResetScript(); // Reset if wearer changed
|
||||
}
|
||||
|
||||
state_entry() {
|
||||
//llSetMemoryLimit(65536); //this script needs to be profiled, and its memory limited
|
||||
g_sScript = llStringTrim(llList2String(llParseString2List(llGetScriptName(), ["-"], []), 1), STRING_TRIM) + "_";
|
||||
g_kWearer = llGetOwner(); // store key of wearer
|
||||
|
||||
ReadDestinations(); //Grab our presets
|
||||
// send request to main menu and ask other menus if they want to register with us
|
||||
llMessageLinked(LINK_THIS, MENUNAME_REQUEST, SUBMENU_BUTTON, "");
|
||||
llMessageLinked(LINK_THIS, MENUNAME_RESPONSE, COLLAR_PARENT_MENU + "|" + SUBMENU_BUTTON, "");
|
||||
//Debug("Starting");
|
||||
}
|
||||
|
||||
http_response(key id, integer status, list meta, string body) {
|
||||
if(status == 200) { // be silent on failures.
|
||||
// Debug(body);
|
||||
if(id == webLookup) {
|
||||
list lResponse;
|
||||
lResponse = llParseString2List(body, ["\n"], [""]);
|
||||
integer i = 0;
|
||||
integer x = 0;
|
||||
string sData;
|
||||
list split;
|
||||
x = llGetListLength(lResponse) - 1;
|
||||
for(i = 0; i <= x; ++i) {
|
||||
sData = llStringTrim(llList2String(lResponse, i), STRING_TRIM);
|
||||
split = llParseString2List(sData, ["~"], []);
|
||||
g_lDestinations = [ llStringTrim(llList2String(split, 0), STRING_TRIM) ] + g_lDestinations;
|
||||
g_lDestinations_Slurls = [ llStringTrim(llList2String(split, 1), STRING_TRIM) ] + g_lDestinations_Slurls ;
|
||||
}
|
||||
// Debug("Body: " + body);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dataserver(key kID, string sData) {
|
||||
if(kID == g_kRequestHandle) {
|
||||
// Parse the dataserver response (it is a vector cast to a string)
|
||||
list tokens = llParseString2List(sData, ["<", ",", ">"], []);
|
||||
string pos_str;
|
||||
vector global_pos;
|
||||
// The coordinates given by the dataserver are the ones of the
|
||||
// South-West corner of this sim
|
||||
// => offset with the specified local coordinates
|
||||
global_pos.x = llList2Float(tokens, 0);
|
||||
global_pos.y = llList2Float(tokens, 1);
|
||||
global_pos.z = llList2Float(tokens, 2);
|
||||
global_pos += g_vLocalPos;
|
||||
// Build the command
|
||||
pos_str = (string)((integer)global_pos.x)
|
||||
+ "/" + (string)((integer)global_pos.y)
|
||||
+ "/" + (string)((integer)global_pos.z);
|
||||
//Debug("Global position : "+(string)pos_str); // Debug purposes
|
||||
// Pass command to main
|
||||
if(g_iRLVOn) {
|
||||
string sRlvCmd = "tpto:" + pos_str + "=force";
|
||||
llMessageLinked(LINK_SET, RLV_CMD, sRlvCmd, g_kCommander);
|
||||
}
|
||||
}
|
||||
if(kID == g_kDataID) { //User notecard
|
||||
list split;
|
||||
if(sData != EOF) {
|
||||
if(llGetSubString(sData, 0, 2) != "") { //Ignore blank lines
|
||||
sData = llStringTrim(sData, STRING_TRIM);
|
||||
split = llParseString2List(sData, ["~"], []);
|
||||
g_lDestinations += [ llStringTrim(llList2String(split, 0), STRING_TRIM) ];
|
||||
g_lDestinations_Slurls += [ llStringTrim(llList2String(split, 1), STRING_TRIM) ];
|
||||
}
|
||||
g_iLine++;
|
||||
g_kDataID = llGetNotecardLine(g_sCard, g_iLine);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// listen for linked messages from OC scripts
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID) {
|
||||
// Debug((string)iSender + "|" + (string)iNum + "|" + sStr + "|" + (string)kID);
|
||||
if(iNum == MENUNAME_REQUEST && sStr == COLLAR_PARENT_MENU) {
|
||||
// our parent menu requested to receive buttons, so send ours
|
||||
llMessageLinked(LINK_THIS, MENUNAME_RESPONSE, COLLAR_PARENT_MENU + "|" + SUBMENU_BUTTON, "");
|
||||
g_lButtons = [] ;
|
||||
llMessageLinked(LINK_THIS, MENUNAME_REQUEST, SUBMENU_BUTTON, "");
|
||||
} else if(iNum == RLV_OFF) { // rlvoff -> we have to turn the menu off too
|
||||
g_iRLVOn = FALSE;
|
||||
} else if(iNum == RLV_ON) { // rlvon -> we have to turn the menu on again
|
||||
g_iRLVOn = TRUE;
|
||||
} else if(iNum == MENUNAME_RESPONSE) {
|
||||
// a button is send to be added to a menu
|
||||
list lParts = llParseString2List(sStr, ["|"], []);
|
||||
if(llList2String(lParts, 0) == SUBMENU_BUTTON) {
|
||||
// someone wants to stick something in our menu
|
||||
string button = llList2String(lParts, 1);
|
||||
if(llListFindList(g_lButtons, [button]) == -1) {
|
||||
// if the button isnt in our menu yet, than we add it
|
||||
g_lButtons = llListSort(g_lButtons + [button], 1, TRUE);
|
||||
}
|
||||
}
|
||||
} else if(iNum == LM_SETTING_RESPONSE) {
|
||||
// response from setting store have been received
|
||||
// pares the answer
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
// and check if any values for use are received
|
||||
// replace "value1" by your own token
|
||||
integer i = llSubStringIndex(sToken, "_");
|
||||
if(llGetSubString(sToken, 0, i) == g_sScript) {
|
||||
list lDestination = [llGetSubString(sToken, llSubStringIndex(sToken, "_") + 1, llSubStringIndex(sToken, "="))];
|
||||
if(llListFindList(g_lVolatile_Destinations, lDestination) < 0) {
|
||||
g_lVolatile_Destinations += lDestination;
|
||||
g_lVolatile_Slurls += [sValue];
|
||||
}
|
||||
} else if(sToken == "Global_CType") { CTYPE = sValue; }
|
||||
} else if(UserCommand(iNum, sStr, kID)) {
|
||||
// do nothing more if TRUE
|
||||
} else if(iNum == DIALOG_RESPONSE) {
|
||||
if(llListFindList([g_kMenuID, g_kTBoxIdSave, g_kRemoveMenu, g_kTBoxIdLocationOnly], [kID]) != -1) {
|
||||
//got a menu response meant for us, extract the values
|
||||
list lMenuParams = llParseStringKeepNulls(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0); // avatar using the menu
|
||||
string sMessage = llList2String(lMenuParams, 1); // button label
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2); // menu page
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3); // auth level of avatar
|
||||
list lParams = llParseStringKeepNulls(sStr, ["|"], []);
|
||||
if(kID == g_kTBoxIdLocationOnly) {
|
||||
//got a menu response meant for us. pull out values
|
||||
if(sMessage != "") {
|
||||
addDestination(sMessage, g_tempLoc, kID);
|
||||
}
|
||||
UserCommand(iAuth, PLUGIN_CHAT_COMMAND, kAv);
|
||||
} else if(kID == g_kTBoxIdSave) {
|
||||
//got a menu response meant for us. pull out values
|
||||
// if(sMessage != "") UserCommand(iAuth, "bookmarks save " + sMessage, kAv);
|
||||
//Debug("TBoxIDSave " + sMessage);
|
||||
if(sMessage != "") {
|
||||
validatePlace(convertSlurl(sMessage, kAv, iAuth), kAv, iAuth);
|
||||
} else {
|
||||
UserCommand(iAuth, PLUGIN_CHAT_COMMAND, kAv);
|
||||
}
|
||||
} else if(kID == g_kRemoveMenu) {
|
||||
// Debug("|"+sMessage+"|");
|
||||
if(sMessage == UPMENU) {
|
||||
UserCommand(iAuth, PLUGIN_CHAT_COMMAND, kAv);
|
||||
return;
|
||||
}
|
||||
if(sMessage != "") {
|
||||
//got a menu response meant for us. pull out values
|
||||
UserCommand(iAuth, PLUGIN_CHAT_COMMAND + " remove " + sMessage, kAv);
|
||||
UserCommand(iAuth, PLUGIN_CHAT_COMMAND + " remove", kAv);
|
||||
} else { UserCommand(iAuth, PLUGIN_CHAT_COMMAND, kAv); }
|
||||
} else if(sMessage == UPMENU) {
|
||||
llMessageLinked(LINK_THIS, iAuth, "menu " + COLLAR_PARENT_MENU, kAv);
|
||||
} else if(~llListFindList(PLUGIN_BUTTONS, [sMessage])) {
|
||||
if(sMessage == "SAVE") {
|
||||
UserCommand(iAuth, PLUGIN_CHAT_COMMAND + " save", kAv);
|
||||
} else if(sMessage == "REMOVE") {
|
||||
UserCommand(iAuth, PLUGIN_CHAT_COMMAND + " remove", kAv);
|
||||
} else if(sMessage == "PRINT") {
|
||||
UserCommand(iAuth, PLUGIN_CHAT_COMMAND + " print", kAv);
|
||||
UserCommand(iAuth, PLUGIN_CHAT_COMMAND, kAv);
|
||||
}
|
||||
} else if(~llListFindList(g_lDestinations + g_lVolatile_Destinations, [sMessage])) {
|
||||
UserCommand(iAuth, PLUGIN_CHAT_COMMAND + " " + sMessage, kAv);
|
||||
} else if(~llListFindList(g_lButtons, [sMessage])) {
|
||||
llMessageLinked(LINK_THIS, iAuth, "menu " + sMessage, kAv);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
changed(integer iChange) {
|
||||
if(iChange & CHANGED_INVENTORY) {
|
||||
ReadDestinations();
|
||||
}
|
||||
if(iChange & CHANGED_OWNER) { llResetScript(); }
|
||||
/*
|
||||
if (iChange & CHANGED_REGION) {
|
||||
if (g_iProfiled){
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,475 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - camera //
|
||||
// version 3.996.1 //
|
||||
// Only compatible with OpenSim 0.9 or higher //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2016 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//allows owner to set different camera mode
|
||||
//responds to commands from modes list
|
||||
|
||||
key g_kWearer;
|
||||
integer g_iLastNum;
|
||||
string g_sSubMenu = "Camera";
|
||||
string g_sParentMenu = "Apps";
|
||||
key g_kMenuID;
|
||||
string g_sCurrentMode = "default";
|
||||
float g_fReapeat = 0.5;
|
||||
|
||||
//these 4 are used for syncing dom to us by broadcasting cam pos/rot
|
||||
integer g_iSync2Me;//TRUE if we're currently dumping cam pos/rot iChanges to chat so the owner can sync to us
|
||||
vector g_vCamPos;
|
||||
rotation g_rCamRot;
|
||||
integer g_rBroadChan;
|
||||
|
||||
string g_sJsonModes;
|
||||
|
||||
//MESSAGE MAP
|
||||
integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
integer COMMAND_RLV_RELAY = 507;
|
||||
integer COMMAND_SAFEWORD = 510; // new for safeword
|
||||
integer COMMAND_BLACKLIST = 520;
|
||||
|
||||
//integer SEND_IM = 1000; deprecated. each script should send its own IMs now. This is to reduce even the tiny bt of lag caused by having IM slave scripts
|
||||
integer POPUP_HELP = 1001;
|
||||
|
||||
integer LM_SETTING_SAVE = 2000;//scripts send messages on this channel to have settings saved to settings store
|
||||
//str must be in form of "token=value"
|
||||
integer LM_SETTING_REQUEST = 2001;//when startup, scripts send requests for settings on this channel
|
||||
integer LM_SETTING_RESPONSE = 2002;//the settings script will send responses on this channel
|
||||
integer LM_SETTING_DELETE = 2003;//delete token from store
|
||||
integer LM_SETTING_EMPTY = 2004;//sent when a token has no value in the settings store
|
||||
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
integer MENUNAME_REMOVE = 3003;
|
||||
|
||||
integer RLV_CMD = 6000;
|
||||
integer RLV_CLEAR = 6002;
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
string UPMENU = "BACK";
|
||||
//string MORE = ">";
|
||||
string g_sScript;
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
//changed the mode handles to a Json object with json arrays, one issue remains:
|
||||
//vectors get converted into strings and need to be reconverted to vectors.
|
||||
//For this to work easiest seems to just put for any mode which contains a vector,
|
||||
//the vector as last entry (if there shall be a mode which contains 2 vectors,
|
||||
//this needs to be addressed and handles as excetion in the list lJsonModes function
|
||||
string JsonModes() {
|
||||
string sDefault = llList2Json(JSON_ARRAY, [CAMERA_ACTIVE,FALSE]);
|
||||
string sHuman = llList2Json(JSON_ARRAY, [CAMERA_ACTIVE,TRUE,
|
||||
CAMERA_BEHINDNESS_ANGLE,0.0,
|
||||
CAMERA_BEHINDNESS_LAG,0.0,
|
||||
CAMERA_DISTANCE,2.5,
|
||||
CAMERA_FOCUS_LAG,0.05,
|
||||
CAMERA_POSITION_LOCKED,FALSE,
|
||||
CAMERA_FOCUS_THRESHOLD,0.0,
|
||||
CAMERA_PITCH,20.0,
|
||||
CAMERA_POSITION_LAG,0.0,
|
||||
CAMERA_POSITION_THRESHOLD,0.0,
|
||||
CAMERA_FOCUS_OFFSET,<0.0, 0.0, 0.35>]);
|
||||
string s1stperson = llList2Json(JSON_ARRAY,[CAMERA_ACTIVE,TRUE,
|
||||
CAMERA_DISTANCE, 0.5,
|
||||
CAMERA_FOCUS_OFFSET, <2.5,0,1.0>]);
|
||||
string sAss = llList2Json(JSON_ARRAY,[CAMERA_ACTIVE,TRUE,
|
||||
CAMERA_DISTANCE,0.5]);
|
||||
string sFar = llList2Json(JSON_ARRAY,[CAMERA_ACTIVE,TRUE,
|
||||
CAMERA_DISTANCE,10.0]);
|
||||
string sGod = llList2Json(JSON_ARRAY,[CAMERA_ACTIVE,TRUE,
|
||||
CAMERA_DISTANCE,10.0,
|
||||
CAMERA_PITCH,80.0]);
|
||||
string sGround = llList2Json(JSON_ARRAY,[CAMERA_ACTIVE,TRUE,
|
||||
CAMERA_PITCH,-15.0]);
|
||||
string sWorm = llList2Json(JSON_ARRAY,[CAMERA_ACTIVE,TRUE,
|
||||
CAMERA_PITCH,-15.0,
|
||||
CAMERA_FOCUS_OFFSET, <0.0,0.0,-0.75>]);
|
||||
|
||||
return llList2Json(JSON_OBJECT,["default",sDefault,"human", sHuman, "1stperson",s1stperson,"ass",sAss,"far",sFar,"god",sGod,"ground",sGround,"worm",sWorm]);
|
||||
|
||||
}
|
||||
|
||||
list lJsonModes(string sMode) {
|
||||
string sJsonTmp = llJsonGetValue(g_sJsonModes, [sMode]);
|
||||
list lTest = llJson2List(sJsonTmp);
|
||||
integer index = llGetListLength(lTest)-1;
|
||||
//last entry is checked if it is a vector to be converted from string to vector here:
|
||||
if ((vector)llList2String(lTest,index)) lTest = llListReplaceList(lTest,[(vector)llList2String(lTest,index)],index,index);
|
||||
return lTest;
|
||||
}
|
||||
|
||||
key Dialog(key kRCPT, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth)
|
||||
{
|
||||
key kID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kRCPT + "|" + sPrompt + "|" + (string)iPage + "|" + llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kID);
|
||||
//Debug("Made menu.");
|
||||
return kID;
|
||||
}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer)
|
||||
{
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else
|
||||
{
|
||||
if (llGetAgentSize(kID)) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
CamMode(string sMode) {
|
||||
llClearCameraParams();
|
||||
llSetCameraParams(lJsonModes(sMode));
|
||||
}
|
||||
|
||||
ClearCam()
|
||||
{
|
||||
if (llGetPermissions()&PERMISSION_CONTROL_CAMERA) llClearCameraParams();
|
||||
g_iLastNum = 0;
|
||||
g_iSync2Me = FALSE;
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "camunlock=y", "camera");
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "camdistmax:0=y", "camera");
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, g_sScript + "all", "");
|
||||
}
|
||||
|
||||
CamFocus(vector g_vCamPos, rotation g_rCamRot)
|
||||
{
|
||||
vector vStartPose = llGetCameraPos();
|
||||
rotation rStartRot = llGetCameraRot();
|
||||
float fSteps = 8.0;
|
||||
//Keep fSteps a float, but make sure its rounded off to the nearest 1.0
|
||||
fSteps = (float)llRound(fSteps);
|
||||
|
||||
//Calculate camera position increments
|
||||
vector vPosStep = (g_vCamPos - vStartPose) / fSteps;
|
||||
|
||||
//Calculate camera rotation increments
|
||||
//rotation rStep = (g_rCamRot - rStartRot);
|
||||
//rStep = <rStep.x / fSteps, rStep.y / fSteps, rStep.z / fSteps, rStep.s / fSteps>;
|
||||
|
||||
|
||||
float fCurrentStep = 0.0; //Loop through motion for fCurrentStep = current step, while fCurrentStep <= Total steps
|
||||
for(; fCurrentStep <= fSteps; ++fCurrentStep)
|
||||
{
|
||||
//Set next position in tween
|
||||
vector vNextPos = vStartPose + (vPosStep * fCurrentStep);
|
||||
rotation rNextRot = Slerp( rStartRot, g_rCamRot, fCurrentStep / fSteps);
|
||||
|
||||
//Set camera parameters
|
||||
llSetCameraParams([
|
||||
CAMERA_ACTIVE, 1, //1 is active, 0 is inactive
|
||||
CAMERA_BEHINDNESS_ANGLE, 0.0, //(0 to 180) degrees
|
||||
CAMERA_BEHINDNESS_LAG, 0.0, //(0 to 3) seconds
|
||||
CAMERA_DISTANCE, 0.0, //(0.5 to 10) meters
|
||||
CAMERA_FOCUS, vNextPos + llRot2Fwd(rNextRot), //Region-relative position
|
||||
CAMERA_FOCUS_LAG, 0.0 , //(0 to 3) seconds
|
||||
CAMERA_FOCUS_LOCKED, TRUE, //(TRUE or FALSE)
|
||||
CAMERA_FOCUS_THRESHOLD, 0.0, //(0 to 4) meters
|
||||
CAMERA_POSITION, vNextPos, //Region-relative position
|
||||
CAMERA_POSITION_LAG, 0.0, //(0 to 3) seconds
|
||||
CAMERA_POSITION_LOCKED, TRUE, //(TRUE or FALSE)
|
||||
CAMERA_POSITION_THRESHOLD, 0.0, //(0 to 4) meters
|
||||
CAMERA_FOCUS_OFFSET, ZERO_VECTOR //<-10,-10,-10> to <10,10,10> meters
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
rotation Slerp( rotation a, rotation b, float f ) {
|
||||
float fAngleBetween = llAngleBetween(a, b);
|
||||
if ( fAngleBetween > PI )
|
||||
fAngleBetween = fAngleBetween - TWO_PI;
|
||||
return a*llAxisAngle2Rot(llRot2Axis(b/a)*a, fAngleBetween*f);
|
||||
}//Written by Francis Chung, Taken from http://forums.secondlife.com/showthread.php?p=536622
|
||||
|
||||
LockCam()
|
||||
{
|
||||
llSetCameraParams([
|
||||
CAMERA_ACTIVE, TRUE,
|
||||
//CAMERA_POSITION, llGetCameraPos()
|
||||
CAMERA_POSITION_LOCKED, TRUE
|
||||
]);
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "camunlock=n", "camera");
|
||||
}
|
||||
|
||||
CamMenu(key kID, integer iAuth)
|
||||
{
|
||||
string sPrompt = "\n[http://www.example.com Camera]\n\nCurrent camera mode is " + g_sCurrentMode +
|
||||
"\nThis app requires OpenSim 0.9 and RLV v2.9+";
|
||||
list lButtons = ["CLEAR","FREEZE","MOUSELOOK"];
|
||||
integer n;
|
||||
integer stop = llGetListLength(llJson2List(g_sJsonModes));
|
||||
for (n = 0; n < stop; n +=2)
|
||||
{
|
||||
lButtons += [Capitalize(llList2String(llJson2List(g_sJsonModes),n))];
|
||||
}
|
||||
g_kMenuID = Dialog(kID, sPrompt, lButtons, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
string Capitalize(string sIn)
|
||||
{
|
||||
return llToUpper(llGetSubString(sIn, 0, 0)) + llGetSubString(sIn, 1, -1);
|
||||
}
|
||||
|
||||
SaveSetting(string sToken)
|
||||
{
|
||||
sToken = g_sScript + sToken;
|
||||
string sValue = (string)g_iLastNum;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, sToken + "=" + sValue, "");
|
||||
}
|
||||
|
||||
ChatCamParams(integer chan)
|
||||
{
|
||||
g_vCamPos = llGetCameraPos();
|
||||
g_rCamRot = llGetCameraRot();
|
||||
string sPosLine = osReplaceString((string)g_vCamPos, " ", "", -1, 0) + " " + osReplaceString((string)g_rCamRot, " ", "", -1, 0);
|
||||
//if not channel 0, say to whole region. else just say locally
|
||||
if (chan)
|
||||
{
|
||||
llRegionSay(chan, sPosLine);
|
||||
}
|
||||
else
|
||||
{
|
||||
llSay(chan, sPosLine);
|
||||
}
|
||||
}
|
||||
|
||||
integer UserCommand(integer iNum, string sStr, key kID) // here iNum: auth value, sStr: user command, kID: avatar id
|
||||
{
|
||||
if (iNum > COMMAND_WEARER || iNum < COMMAND_OWNER) return FALSE; // sanity check
|
||||
list lParams = llParseString2List(sStr, [" "], []);
|
||||
string sCommand = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
string sValue2 = llList2String(lParams, 2);
|
||||
if (sStr == "menu " + g_sSubMenu) {
|
||||
CamMenu(kID, iNum);
|
||||
}
|
||||
else if (sCommand == "cam" || sCommand == "camera")
|
||||
{
|
||||
if (sValue == "")
|
||||
{
|
||||
//they just said *cam. give menu
|
||||
CamMenu(kID, iNum);
|
||||
return TRUE;
|
||||
}
|
||||
if (!(llGetPermissions() & PERMISSION_CONTROL_CAMERA))
|
||||
{
|
||||
Notify(kID, "Permissions error: Can not control camera.", FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
if (g_iLastNum && iNum > g_iLastNum)
|
||||
{
|
||||
Notify(kID, "Sorry, cam settings have already been set by someone outranking you.", FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
//Debug("g_iLastNum=" + (string)g_iLastNum);
|
||||
if (sValue == "clear")
|
||||
{
|
||||
ClearCam();
|
||||
Notify(kID, "Cleared camera settings.", TRUE);
|
||||
}
|
||||
else if (sValue == "freeze")
|
||||
{
|
||||
LockCam();
|
||||
Notify(kID, "Freezing current camera position.", TRUE);
|
||||
g_iLastNum = iNum;
|
||||
SaveSetting("freeze");
|
||||
}
|
||||
else if (sValue == "mouselook")
|
||||
{
|
||||
Notify(kID, "Enforcing mouselook.", TRUE);
|
||||
g_iLastNum = iNum;
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "camdistmax:0=n", "camera");
|
||||
SaveSetting("mouselook");
|
||||
}
|
||||
else if ((vector)sValue != ZERO_VECTOR && (vector)sValue2 != ZERO_VECTOR)
|
||||
{
|
||||
Notify(kID, "Setting camera focus to " + sValue + ".", TRUE);
|
||||
//CamFocus((vector)sValue, (vector)sValue2);
|
||||
g_iLastNum = iNum;
|
||||
//Debug("newiNum=" + (string)iNum);
|
||||
}
|
||||
else
|
||||
{
|
||||
integer iIndex = llSubStringIndex(g_sJsonModes, sValue);//llListFindList(g_lModes, [sValue]);
|
||||
if (iIndex != -1)
|
||||
{
|
||||
CamMode(sValue);
|
||||
g_iLastNum = iNum;
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "camunlock=n", "camera");
|
||||
Notify(kID, "Set " + sValue + " camera mode.", TRUE);
|
||||
SaveSetting(sValue);
|
||||
}
|
||||
else
|
||||
{
|
||||
Notify(kID, "Invalid camera mode: " + sValue, FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (sCommand == "camto")
|
||||
{
|
||||
if (!g_iLastNum || iNum <= g_iLastNum)
|
||||
{
|
||||
CamFocus((vector)sValue, (rotation)sValue2);
|
||||
g_iLastNum = iNum;
|
||||
}
|
||||
else
|
||||
{
|
||||
Notify(kID, "Sorry, cam settings have already been set by someone outranking you.", FALSE);
|
||||
}
|
||||
}
|
||||
else if (sCommand == "camdump")
|
||||
{
|
||||
g_rBroadChan = (integer)sValue;
|
||||
integer g_fReapeat = (integer)sValue2;
|
||||
ChatCamParams(g_rBroadChan);
|
||||
if (g_fReapeat)
|
||||
{
|
||||
g_iSync2Me = TRUE;
|
||||
llSetTimerEvent(g_fReapeat);
|
||||
}
|
||||
}
|
||||
else if ((iNum == COMMAND_OWNER || kID == g_kWearer) && sStr == "runaway")
|
||||
{
|
||||
ClearCam();
|
||||
llResetScript();
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
default {
|
||||
on_rez(integer iNum) {
|
||||
llResetScript();
|
||||
}
|
||||
|
||||
state_entry() {
|
||||
//llSetMemoryLimit(65536); //this script needs to be profiled, and its memory limited
|
||||
g_sScript = llStringTrim(llList2String(llParseString2List(llGetScriptName(), ["-"], []), 1), STRING_TRIM) + "_";
|
||||
g_kWearer = llGetOwner();
|
||||
g_sJsonModes = JsonModes();
|
||||
if (llGetAttached()) llRequestPermissions(g_kWearer, PERMISSION_CONTROL_CAMERA | PERMISSION_TRACK_CAMERA);
|
||||
//Debug("Starting");
|
||||
}
|
||||
|
||||
run_time_permissions(integer iPerms)
|
||||
{
|
||||
if (iPerms & (PERMISSION_CONTROL_CAMERA | PERMISSION_TRACK_CAMERA))
|
||||
{
|
||||
llClearCameraParams();
|
||||
}
|
||||
}
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID)
|
||||
{
|
||||
//only respond to owner, secowner, group, wearer
|
||||
if (UserCommand(iNum, sStr, kID)) return;
|
||||
else if (iNum == COMMAND_SAFEWORD || iNum == RLV_CLEAR)
|
||||
{
|
||||
ClearCam();
|
||||
llResetScript();
|
||||
}
|
||||
else if (iNum == MENUNAME_REQUEST && sStr == g_sParentMenu)
|
||||
{
|
||||
llMessageLinked(LINK_SET, MENUNAME_RESPONSE, g_sParentMenu + "|" + g_sSubMenu, "");
|
||||
}
|
||||
else if (iNum == LM_SETTING_RESPONSE)
|
||||
{
|
||||
list lParams = llParseString2List(sStr, ["=", ","], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
integer i = llSubStringIndex(sToken, "_");
|
||||
if (llGetSubString(sToken, 0, i) == g_sScript)
|
||||
{
|
||||
sToken = llGetSubString(sToken, i + 1, -1);
|
||||
if (llGetPermissions() & PERMISSION_CONTROL_CAMERA)
|
||||
{
|
||||
if (sToken == "freeze") LockCam();
|
||||
else if (sToken == "mouselook") llMessageLinked(LINK_SET, RLV_CMD, "camdistmax:0=n", "camera");
|
||||
else if (~llSubStringIndex(g_sJsonModes, sToken)) CamMode(sToken);
|
||||
g_iLastNum = (integer)sValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (iNum == DIALOG_RESPONSE)
|
||||
{
|
||||
if (kID == g_kMenuID)
|
||||
{
|
||||
//got a menu response meant for us. pull out values
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
// integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
if (sMessage == UPMENU)
|
||||
{
|
||||
llMessageLinked(LINK_SET, iAuth, "menu " + g_sParentMenu, kAv);
|
||||
}
|
||||
else
|
||||
{
|
||||
UserCommand(iAuth, "cam " + llToLower(sMessage), kAv);
|
||||
CamMenu(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
timer()
|
||||
{
|
||||
//handle cam pos/rot changes
|
||||
if (g_iSync2Me)
|
||||
{
|
||||
vector vNewPos = llGetCameraPos();
|
||||
rotation rNewRot = llGetCameraRot();
|
||||
if (vNewPos != g_vCamPos || rNewRot != g_rCamRot)
|
||||
{
|
||||
ChatCamParams(g_rBroadChan);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
llSetTimerEvent(0.0);
|
||||
}
|
||||
}
|
||||
|
||||
changed(integer iChange) {
|
||||
/*
|
||||
if (iChange & CHANGED_REGION) {
|
||||
if (g_iProfiled) {
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,492 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - color //
|
||||
// version 3.988 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//on getting color command, give menu to choose which element, followed by menu to pick color
|
||||
|
||||
list g_lElements;
|
||||
string g_sCurrentElement = "";
|
||||
string g_sCurrentCategory = "";
|
||||
list g_lCategories = ["Shades", "Bright", "Soft"];
|
||||
|
||||
list g_lAllColors = [
|
||||
"Light Shade|<0.82745, 0.82745, 0.82745>
|
||||
Gray Shade|<0.70588, 0.70588, 0.70588>
|
||||
Dark Shade|<0.20784, 0.20784, 0.20784>
|
||||
Brown Shade|<0.65490, 0.58431, 0.53333>
|
||||
Red Shade|<0.66275, 0.52549, 0.52549>
|
||||
Blue Shade|<0.64706, 0.66275, 0.71765>
|
||||
Green Shade|<0.62353, 0.69412, 0.61569>
|
||||
Pink Shade|<0.74510, 0.62745, 0.69020>
|
||||
Gold Shade|<0.69020, 0.61569, 0.43529>
|
||||
Black|<0.00000, 0.00000, 0.00000>
|
||||
White|<1.00000, 1.00000, 1.00000>",
|
||||
"Magenta|<1.00000, 0.00000, 0.50196>
|
||||
Pink|<1.00000, 0.14902, 0.50980>
|
||||
Hot Pink|<1.00000, 0.05490, 0.72157>
|
||||
Firefighter|<0.88627, 0.08627, 0.00392>
|
||||
Sun|<1.00000, 1.00000, 0.18039>
|
||||
Flame|<0.92941, 0.43529, 0.00000>
|
||||
Matrix|<0.07843, 1.00000, 0.07843>
|
||||
Electricity|<0.00000, 0.46667, 0.92941>
|
||||
Violet Wand|<0.63922, 0.00000, 0.78824>
|
||||
Black|<0.00000, 0.00000, 0.00000>
|
||||
White|<1.00000, 1.00000, 1.00000>",
|
||||
"Baby Blue|<0.75686, 0.75686, 1.00000>
|
||||
Baby Pink|<1.00000, 0.52157, 0.76078>
|
||||
Rose|<0.93333, 0.64314, 0.72941>
|
||||
Beige|<0.86667, 0.78039, 0.71765>
|
||||
Earth|<0.39608, 0.27451, 0.18824>
|
||||
Ocean|<0.25882, 0.33725, 0.52549>
|
||||
Yolk|<0.98824, 0.73333, 0.29412>
|
||||
Wasabi|<0.47059, 1.00000, 0.65098>
|
||||
Lavender|<0.89020, 0.65882, 0.99608>
|
||||
Black|<0.00000, 0.00000, 0.00000>
|
||||
White|<1.00000, 1.00000, 1.00000>"
|
||||
];
|
||||
|
||||
list g_lColorSettings;
|
||||
|
||||
string g_sParentMenu = "Appearance";
|
||||
string g_sSubMenu = "Colors";
|
||||
|
||||
list g_lColors;
|
||||
integer g_iStridelength = 2;
|
||||
integer g_iLength;
|
||||
list g_lButtons;
|
||||
list g_lNewButtons;
|
||||
|
||||
list g_lMenuIDs;
|
||||
key g_kTouchID;
|
||||
|
||||
integer g_iAppLock = FALSE;
|
||||
string g_sAppLockToken = "Appearance_Lock";
|
||||
|
||||
//MESSAGE MAP
|
||||
//integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
|
||||
//integer SEND_IM = 1000; deprecated. each script should send its own IMs now. This is to reduce even the tiny bt of lag caused by having IM slave scripts
|
||||
integer POPUP_HELP = 1001;
|
||||
|
||||
integer LM_SETTING_SAVE = 2000;//scripts send messages on this channel to have settings saved to httpdb
|
||||
//str must be in form of "token=value"
|
||||
integer LM_SETTING_REQUEST = 2001;//when startup, scripts send requests for settings on this channel
|
||||
integer LM_SETTING_RESPONSE = 2002;//the httpdb script will send responses on this channel
|
||||
integer LM_SETTING_DELETE = 2003;//delete token from DB
|
||||
integer LM_SETTING_EMPTY = 2004;//sent when a token has no value in the httpdb
|
||||
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
integer TOUCH_REQUEST = -9500;
|
||||
integer TOUCH_CANCEL = -9501;
|
||||
integer TOUCH_RESPONSE = -9502;
|
||||
integer TOUCH_EXPIRE = -9503;
|
||||
|
||||
|
||||
//5000 block is reserved for IM slaves
|
||||
|
||||
string UPMENU = "BACK";
|
||||
string CTYPE = "collar";
|
||||
key g_kWearer;
|
||||
string g_sScript;
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
key Dialog(key kRCPT, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth)
|
||||
{
|
||||
key kID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kRCPT + "|" + sPrompt + "|" + (string)iPage + "|"
|
||||
+ llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kID);
|
||||
//Debug("Made menu.");
|
||||
return kID;
|
||||
}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer)
|
||||
{
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else
|
||||
{
|
||||
if (llGetAgentSize(kID)!=ZERO_VECTOR) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
key TouchRequest(key kRCPT, integer iTouchStart, integer iTouchEnd, integer iAuth)
|
||||
{
|
||||
key kID = llGenerateKey();
|
||||
integer iFlags = 0;
|
||||
if (iTouchStart) iFlags = iFlags | 0x01;
|
||||
if (iTouchEnd) iFlags = iFlags | 0x02;
|
||||
llMessageLinked(LINK_SET, TOUCH_REQUEST, (string)kRCPT + "|" + (string)iFlags + "|" + (string)iAuth, kID);
|
||||
return kID;
|
||||
}
|
||||
|
||||
CategoryMenu(key kAv, integer iAuth)
|
||||
{
|
||||
//give kAv a dialog with a list of color cards
|
||||
string sPrompt = "\nSelect a color catagory.";
|
||||
g_lMenuIDs+=[Dialog(kAv, sPrompt, g_lCategories, [UPMENU],0, iAuth)];
|
||||
}
|
||||
|
||||
ColorMenu(key kAv, integer iAuth)
|
||||
{
|
||||
string sPrompt = "\nChoose a color.";
|
||||
list g_lButtons = llList2ListStrided(g_lColors,0,-1,2);
|
||||
g_lMenuIDs+=[Dialog(kAv, sPrompt, g_lButtons, [UPMENU],0, iAuth)];
|
||||
}
|
||||
|
||||
ElementMenu(key kAv, integer iAuth)
|
||||
{
|
||||
string sPrompt = "\nWhich element of the " + CTYPE + " would you like to tint?\n\nChoose *Touch* if you want to select the part by directly clicking on the " + CTYPE + ".";
|
||||
g_lButtons = llListSort(g_lElements, 1, TRUE);
|
||||
g_lMenuIDs+=[Dialog(kAv, sPrompt, g_lButtons, ["*Touch*", UPMENU],0, iAuth)];
|
||||
}
|
||||
|
||||
string ElementType(integer iLinkNumber)
|
||||
{
|
||||
string sDesc = (string)llGetObjectDetails(llGetLinkKey(iLinkNumber), [OBJECT_DESC]);
|
||||
//each prim should have <elementname> in its description, plus "nocolor" or "notexture", if you want the prim to
|
||||
//not appear in the color or texture menus
|
||||
list lParams = llParseString2List(sDesc, ["~"], []);
|
||||
if ((~(integer)llListFindList(lParams, ["nocolor"])) || sDesc == "" || sDesc == " " || sDesc == "(No Description)")
|
||||
{
|
||||
return "nocolor";
|
||||
}
|
||||
else
|
||||
{
|
||||
return llList2String(lParams, 0);
|
||||
}
|
||||
}
|
||||
|
||||
BuildElementList()
|
||||
{
|
||||
integer n;
|
||||
integer iLinkCount = llGetNumberOfPrims();
|
||||
|
||||
//root prim is 1, so start at 2
|
||||
for (n = 2; n <= iLinkCount; n++)
|
||||
{
|
||||
string sElement = ElementType(n);
|
||||
if (!(~llListFindList(g_lElements, [sElement])) && sElement != "nocolor")
|
||||
{
|
||||
g_lElements += [sElement];
|
||||
//llSay(0, "added " + sElement + " to elements");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SetElementColor(string sElement, vector vColor)
|
||||
{
|
||||
integer n;
|
||||
integer iLinkCount = llGetNumberOfPrims();
|
||||
for (n = 2; n <= iLinkCount; n++)
|
||||
{
|
||||
string thiselement = ElementType(n);
|
||||
if (thiselement == sElement)
|
||||
{
|
||||
//set link to new color
|
||||
//llSetLinkPrimitiveParams(n, [PRIM_COLOR, ALL_SIDES, color, 1.0]);
|
||||
llSetLinkColor(n, vColor, ALL_SIDES);
|
||||
}
|
||||
}
|
||||
//create shorter string from the color vectors before saving
|
||||
string sStrColor = Vec2String(vColor);
|
||||
//change the g_lColorSettings list entry for the current element
|
||||
integer iIndex = llListFindList(g_lColorSettings, [sElement]);
|
||||
if (iIndex == -1)
|
||||
{
|
||||
g_lColorSettings += [sElement, sStrColor];
|
||||
}
|
||||
else
|
||||
{
|
||||
g_lColorSettings = llListReplaceList(g_lColorSettings, [sStrColor], iIndex + 1, iIndex + 1);
|
||||
}
|
||||
//save to settings
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + sElement + "=" + sStrColor, "");
|
||||
//g_sCurrentElement = "";
|
||||
}
|
||||
|
||||
|
||||
|
||||
integer StartsWith(string sHayStack, string sNeedle) // http://wiki.secondlife.com/wiki/llSubStringIndex
|
||||
{
|
||||
return llDeleteSubString(sHayStack, llStringLength(sNeedle), -1) == sNeedle;
|
||||
}
|
||||
|
||||
string Vec2String(vector vVec)
|
||||
{
|
||||
list lParts = [vVec.x, vVec.y, vVec.z];
|
||||
|
||||
integer n;
|
||||
for (n = 0; n < 3; n++)
|
||||
{
|
||||
string sStr = llList2String(lParts, n);
|
||||
//remove any trailing 0's or .'s from sStr
|
||||
while ((~(integer)llSubStringIndex(sStr, ".")) && (llGetSubString(sStr, -1, -1) == "0" || llGetSubString(sStr, -1, -1) == "."))
|
||||
{
|
||||
sStr = llGetSubString(sStr, 0, -2);
|
||||
}
|
||||
lParts = llListReplaceList(lParts, [sStr], n, n);
|
||||
}
|
||||
return "<" + llDumpList2String(lParts, ",") + ">";
|
||||
}
|
||||
|
||||
default {
|
||||
on_rez(integer iParam) {
|
||||
llResetScript();
|
||||
}
|
||||
|
||||
state_entry() {
|
||||
//llSetMemoryLimit(65536); //this script needs to be profiled, and its memory limited
|
||||
g_sScript = "color_";
|
||||
g_kWearer = llGetOwner();
|
||||
|
||||
BuildElementList(); //loop through non-root prims, build element list
|
||||
//Debug("Starting");
|
||||
}
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID)
|
||||
{
|
||||
if (sStr == "reset" && (iNum == COMMAND_OWNER || iNum == COMMAND_WEARER))
|
||||
{
|
||||
//clear saved settings
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, g_sScript + "all", "");
|
||||
llResetScript();
|
||||
}
|
||||
else if (iNum >= COMMAND_OWNER && iNum <= COMMAND_WEARER)
|
||||
{
|
||||
if (sStr == "settings")
|
||||
{
|
||||
string out;
|
||||
integer i = 0;
|
||||
for (; i < llGetListLength(g_lColorSettings); i += 2)
|
||||
{
|
||||
if (i != 0) out += ",";
|
||||
out += llList2String(g_lColorSettings, i) + "=";
|
||||
out += llList2String(g_lColorSettings, i + 1);
|
||||
}
|
||||
Notify(kID, "Color Settings: " + out,FALSE);
|
||||
}
|
||||
else if (StartsWith(sStr, "setcolor"))
|
||||
{
|
||||
if (kID!=g_kWearer && iNum!=COMMAND_OWNER)
|
||||
{
|
||||
Notify(kID,"You are not allowed to change the colors.", FALSE);
|
||||
}
|
||||
else if (g_iAppLock)
|
||||
{
|
||||
Notify(kID,"The appearance of the " + CTYPE + " is locked. You cannot access this menu now!", FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
list lParams = llParseString2List(sStr, [" "], []);
|
||||
string sElement = llList2String(lParams, 1);
|
||||
lParams = llParseString2List(sStr, ["<"], []);
|
||||
vector vColor = (vector)("<"+llList2String(lParams, 1));
|
||||
SetElementColor(sElement, vColor);
|
||||
}
|
||||
}
|
||||
else if (sStr == "menu "+ g_sSubMenu || sStr == "colors")
|
||||
{
|
||||
if (kID!=g_kWearer && iNum!=COMMAND_OWNER)
|
||||
{
|
||||
Notify(kID,"You are not allowed to change the colors.", FALSE);
|
||||
llMessageLinked(LINK_SET, iNum, "menu "+g_sParentMenu, kID);
|
||||
}
|
||||
else if (g_iAppLock)
|
||||
{
|
||||
Notify(kID,"The appearance of the " + CTYPE + " is locked. You cannot access this menu now!", FALSE);
|
||||
llMessageLinked(LINK_SET, iNum, "menu "+g_sParentMenu, kID);
|
||||
}
|
||||
else
|
||||
{
|
||||
g_sCurrentElement = "";
|
||||
ElementMenu(kID, iNum);
|
||||
}
|
||||
}
|
||||
else if (llGetSubString(sStr,0,13) == "lockappearance")
|
||||
{
|
||||
if (iNum == COMMAND_OWNER)
|
||||
{
|
||||
if(llGetSubString(sStr, -1, -1) == "0")
|
||||
{
|
||||
g_iAppLock = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_iAppLock = TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
else if (iNum == LM_SETTING_RESPONSE)
|
||||
{
|
||||
integer i = llSubStringIndex(sStr, "=");
|
||||
string sToken = llGetSubString(sStr, 0, i - 1);
|
||||
string sValue = llGetSubString(sStr, i + 1, -1);
|
||||
i = llSubStringIndex(sToken, "_");
|
||||
if (llGetSubString(sToken, 0, i) == g_sScript)
|
||||
{
|
||||
sToken = llGetSubString(sToken, i + 1, -1);
|
||||
SetElementColor(sToken, (vector)sValue);
|
||||
}
|
||||
else if (sToken == g_sAppLockToken)
|
||||
{
|
||||
g_iAppLock = (integer)sValue;
|
||||
}
|
||||
else if (sToken == "Global_CType") CTYPE = sValue;
|
||||
}
|
||||
else if (iNum == MENUNAME_REQUEST && sStr == g_sParentMenu)
|
||||
{
|
||||
llMessageLinked(LINK_SET, MENUNAME_RESPONSE, g_sParentMenu + "|" + g_sSubMenu, "");
|
||||
}
|
||||
else if (iNum == DIALOG_RESPONSE)
|
||||
{
|
||||
integer iMenuIndex = llListFindList(g_lMenuIDs, [kID]);
|
||||
if (iMenuIndex != -1)
|
||||
{
|
||||
g_lMenuIDs=llDeleteSubList(g_lMenuIDs,iMenuIndex,iMenuIndex);
|
||||
//got a menu response meant for us. pull out values
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
if (sMessage == UPMENU)
|
||||
{
|
||||
if (g_sCurrentElement == "")
|
||||
{
|
||||
//main menu
|
||||
llMessageLinked(LINK_SET, iAuth, "menu "+g_sParentMenu, kAv);
|
||||
}
|
||||
else if (g_sCurrentCategory == "")
|
||||
{
|
||||
g_sCurrentElement = "";
|
||||
ElementMenu(kAv, iAuth);
|
||||
}
|
||||
else
|
||||
{
|
||||
g_sCurrentCategory = "";
|
||||
CategoryMenu(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
else if (sMessage == "*Touch*")
|
||||
{
|
||||
Notify(kAv, "Please touch the part of the " + CTYPE + " you want to recolor.", FALSE);
|
||||
g_kTouchID = TouchRequest(kAv, TRUE, FALSE, iAuth);
|
||||
}
|
||||
else if (g_sCurrentElement == "")
|
||||
{
|
||||
//we just got the element name
|
||||
g_sCurrentElement = sMessage;
|
||||
g_sCurrentCategory = "";
|
||||
CategoryMenu(kAv, iAuth);
|
||||
}
|
||||
|
||||
else if (g_sCurrentCategory == "")
|
||||
{
|
||||
g_lColors = [];
|
||||
g_sCurrentCategory = sMessage;
|
||||
integer iIndex = llListFindList(g_lCategories,[sMessage]);
|
||||
//sDatakID = llGetNotecardLine("colors-" + g_sCurrentCategory, g_iLine);
|
||||
//we'll have gotten several lines like "Chartreuse|<0.54118, 0.98431, 0.09020>"
|
||||
//parse that into 2-strided list of colorname, colorvector
|
||||
g_lColors = llParseString2List(llList2String(g_lAllColors, iIndex), ["\n", "|"], []);
|
||||
g_lColors = llListSort(g_lColors, 2, TRUE);
|
||||
ColorMenu(kAv,iAuth);
|
||||
}
|
||||
//JS: Just curious, why do we have to convert an integer to an (um) integer?? Or did I miss something about indexes in C++??
|
||||
else if (~(integer)llListFindList(g_lColors, [sMessage]))
|
||||
{
|
||||
//found a color, now set it
|
||||
integer iIndex = llListFindList(g_lColors, [sMessage]);
|
||||
vector vColor = (vector)llList2String(g_lColors, iIndex + 1);
|
||||
//llSay(0, "color = " + (string)vColor);
|
||||
//loop through links, setting color if element type matches what we're changing
|
||||
//root prim is 1, so start at 2
|
||||
SetElementColor(g_sCurrentElement, vColor);
|
||||
//ElementMenu(kID);
|
||||
ColorMenu(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (iNum == DIALOG_TIMEOUT)
|
||||
{
|
||||
integer iMenuIndex = llListFindList(g_lMenuIDs, [kID]);
|
||||
if (iMenuIndex != -1)
|
||||
{
|
||||
g_lMenuIDs=llDeleteSubList(g_lMenuIDs,iMenuIndex,iMenuIndex);
|
||||
}
|
||||
}
|
||||
else if (iNum == TOUCH_RESPONSE)
|
||||
{
|
||||
if (kID == g_kTouchID)
|
||||
{
|
||||
list lParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lParams, 0);
|
||||
integer iAuth = (integer)llList2String(lParams, 1);
|
||||
integer iLinkNumber = (integer)llList2String(lParams, 3);
|
||||
|
||||
string sElement = ElementType(iLinkNumber);
|
||||
if (sElement != "nocolor")
|
||||
{
|
||||
CategoryMenu(kAv, iAuth);
|
||||
g_sCurrentElement = sElement;
|
||||
Notify(kAv, "You selected \""+sElement+"\".", FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
Notify(kAv, "You selected a prim which is not colorable. You can try again.", FALSE);
|
||||
ElementMenu(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
changed(integer iChange) {
|
||||
if (iChange & CHANGED_REGION) {
|
||||
if (g_iProfiled) {
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
}
|
||||
@@ -1,552 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - couples //
|
||||
// version 3.990.1 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
string g_sParentMenu = "Animations";
|
||||
string g_sSubMenu = " Couples";
|
||||
string UPMENU = "BACK";
|
||||
//string MORE = ">";
|
||||
key g_kAnimmenu; //Dialog handle
|
||||
key g_kPart; //Dialog handle
|
||||
key g_kTimerMenu; //Dialog handle
|
||||
integer g_iAnimTimeout;
|
||||
integer g_iPermissionTimeout;
|
||||
|
||||
key g_kWearer;
|
||||
|
||||
string STOP_COUPLES = "STOP";
|
||||
string TIME_COUPLES = "TIME";
|
||||
|
||||
integer g_iLine1;
|
||||
integer g_iLine2;
|
||||
key g_kDataID1;
|
||||
key g_kDataID2;
|
||||
string CARD1 = "coupleanims";
|
||||
string CARD2 = "coupleanims_personal";
|
||||
integer card1line1;
|
||||
integer card1line2;
|
||||
integer iCardComplete;
|
||||
|
||||
string WEARERNAME;
|
||||
|
||||
list g_lAnimCmds;//1-strided list of strings that will trigger
|
||||
list g_lAnimSettings;//4-strided list of subAnim|domAnim|offset|text, running parallel to g_lAnimCmds,
|
||||
//such that g_lAnimCmds[0] corresponds to g_lAnimSettings[0:3], and g_lAnimCmds[1] corresponds to g_lAnimSettings[4:7], etc
|
||||
|
||||
key g_kCardID1;//used to detect whether coupleanims card has changed
|
||||
key g_kCardID2;
|
||||
float g_fRange = 10.0;//only scan within this range for anim partners
|
||||
|
||||
float g_fWalkingDistance = 1.0; // How close to try to get to the target point while walking, in meters
|
||||
float g_fWalkingTau = 1.5; // how hard to push me toward partner while walking
|
||||
float g_fAlignTau = 0.05; // how hard to push me toward partner while aligning
|
||||
float g_fAlignDelay = 0.6; // how long to let allignment settle (in seconds)
|
||||
|
||||
key g_kCmdGiver; // id of the avatar having issued the last command
|
||||
integer g_iCmdAuth; // auth level of that avatar
|
||||
integer g_iCmdIndex;
|
||||
key g_kPartner;
|
||||
string g_sPartnerName;
|
||||
float g_fTimeOut = 20.0;//duration of anim
|
||||
|
||||
integer g_iTargetID; // remember the walk target to delete; target handle
|
||||
string g_sSubAnim;
|
||||
string g_sDomAnim;
|
||||
|
||||
//MESSAGE MAP
|
||||
integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
//integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
//integer COMMAND_EVERYONE = 504;
|
||||
//integer COMMAND_RLV_RELAY = 507;
|
||||
|
||||
//integer SEND_IM = 1000; deprecated. each script should send its own IMs now. This is to reduce even the tiny bt of lag caused by having IM slave scripts
|
||||
integer POPUP_HELP = 1001;
|
||||
|
||||
integer LM_SETTING_SAVE = 2000;//scripts send messages on this channel to have settings saved to httpdb
|
||||
//str must be in form of "token=value"
|
||||
//integer LM_SETTING_REQUEST = 2001;//when startup, scripts send requests for settings on this channel
|
||||
integer LM_SETTING_RESPONSE = 2002;//the httpdb script will send responses on this channel
|
||||
integer LM_SETTING_DELETE = 2003;//delete token from DB
|
||||
//integer LM_SETTING_EMPTY = 2004;//sent by httpdb script when a token has no value in the db
|
||||
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
//integer MENUNAME_REMOVE = 3003;
|
||||
|
||||
integer RLV_CMD = 6000;
|
||||
//integer RLV_REFRESH = 6001;//RLV plugins should reinstate their restrictions upon receiving this message.
|
||||
//integer RLV_CLEAR = 6002;//RLV plugins should clear their restriction lists upon receiving this message.
|
||||
|
||||
integer ANIM_START = 7000;//send this with the name of an anim in the string part of the message to play the anim
|
||||
integer ANIM_STOP = 7001;//send this with the name of an anim in the string part of the message to stop the anim
|
||||
//integer CPLANIM_PERMREQUEST = 7002;//id should be av's key, str should be cmd name "hug", "kiss", etc
|
||||
//integer CPLANIM_PERMRESPONSE = 7003;//str should be "1" for got perms or "0" for not. id should be av's key
|
||||
//integer CPLANIM_START = 7004;//str should be valid anim name. id should be av
|
||||
//integer CPLANIM_STOP = 7005;//str should be valid anim name. id should be av
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
//integer DIALOG_TIMEOUT = -9002;
|
||||
integer SENSORDIALOG = -9003;
|
||||
|
||||
string g_sScript;
|
||||
string g_sStopString = "stop";
|
||||
integer g_iStopChan = 99;
|
||||
integer g_iListener; //stop listener handle
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
key Dialog(key kRCPT, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth)
|
||||
{
|
||||
key kID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kRCPT + "|" + sPrompt + "|" + (string)iPage + "|" + llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kID);
|
||||
//Debug("Made menu.");
|
||||
return kID;
|
||||
}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer)
|
||||
{
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else
|
||||
{
|
||||
if (llGetAgentSize(kID)!=ZERO_VECTOR) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
refreshTimer(){
|
||||
integer timeNow=llGetUnixTime();
|
||||
if (g_iAnimTimeout <= timeNow && g_iAnimTimeout > 0){
|
||||
//Debug("Anim timeout="+(string)g_iAnimTimeout+"\ntime now="+(string)timeNow);
|
||||
g_iAnimTimeout=0;
|
||||
StopAnims();
|
||||
} else if (g_iPermissionTimeout <= timeNow && g_iPermissionTimeout > 0){
|
||||
//Debug("Perm timeout="+(string)g_iPermissionTimeout+"\ntime now="+(string)timeNow);
|
||||
g_iPermissionTimeout=0;
|
||||
llListenRemove(g_iListener);
|
||||
//llMessageLinked(LINK_SET, CPLANIM_PERMRESPONSE, "0", g_kPartner);
|
||||
g_kPartner = NULL_KEY;
|
||||
}
|
||||
integer nextTimeout=g_iAnimTimeout;
|
||||
if (g_iPermissionTimeout < g_iAnimTimeout && g_iPermissionTimeout > 0){
|
||||
nextTimeout=g_iPermissionTimeout;
|
||||
}
|
||||
llSetTimerEvent(nextTimeout-timeNow);
|
||||
}
|
||||
|
||||
CoupleAnimMenu(key kID, integer iAuth)
|
||||
{
|
||||
string sPrompt = "\nChoose an animation to play.\n\nAnimations will play " ;
|
||||
if(g_fTimeOut == 0) sPrompt += "ENDLESS." ;
|
||||
else sPrompt += "for "+(string)llCeil(g_fTimeOut)+" seconds.";
|
||||
sPrompt += "\n\nwww.opencollar.at/animations\n\n";
|
||||
list lButtons = g_lAnimCmds;//we're limiting this to 9 couple anims then
|
||||
lButtons += [TIME_COUPLES, STOP_COUPLES];
|
||||
g_kAnimmenu=Dialog(kID, sPrompt, lButtons, [UPMENU],0, iAuth);
|
||||
}
|
||||
|
||||
//added to stop eventual still going animations
|
||||
StopAnims()
|
||||
{
|
||||
if (llGetInventoryType(g_sSubAnim) == INVENTORY_ANIMATION) llMessageLinked(LINK_SET, ANIM_STOP, g_sSubAnim, "");
|
||||
if (llGetInventoryType(g_sDomAnim) == INVENTORY_ANIMATION)
|
||||
{
|
||||
if (llKey2Name(g_kPartner) != "") llStopAnimation(g_sDomAnim);
|
||||
}
|
||||
|
||||
g_sSubAnim = "";
|
||||
g_sDomAnim = "";
|
||||
}
|
||||
|
||||
// Calmly walk up to your partner and face them. Does not position the avatar precicely
|
||||
MoveToPartner() {
|
||||
list partnerDetails = llGetObjectDetails(g_kPartner, [OBJECT_POS, OBJECT_ROT]);
|
||||
vector partnerPos = llList2Vector(partnerDetails, 0);
|
||||
rotation partnerRot = llList2Rot(partnerDetails, 1);
|
||||
vector partnerEuler = llRot2Euler(partnerRot);
|
||||
|
||||
// turn to face the partner
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "setrot:" + (string)(-PI_BY_TWO-partnerEuler.z) + "=force", NULL_KEY);
|
||||
|
||||
g_iTargetID = llTarget(partnerPos, g_fWalkingDistance);
|
||||
llMoveToTarget(partnerPos, g_fWalkingTau);
|
||||
}
|
||||
|
||||
default {
|
||||
on_rez(integer start) {
|
||||
//added to stop anims after relog when you logged off while in an endless couple anim
|
||||
if (g_sSubAnim != "" && g_sDomAnim != "") {
|
||||
llSleep(1.0); // wait a second to make sure the poses script reseted properly
|
||||
StopAnims();
|
||||
}
|
||||
llResetScript();
|
||||
}
|
||||
|
||||
state_entry() {
|
||||
//llSetMemoryLimit(65536); //this script needs to be profiled, and its memory limited
|
||||
g_sScript = "coupleanim_";
|
||||
g_kWearer = llGetOwner();
|
||||
WEARERNAME = llKey2Name(g_kWearer); //quick and dirty default, will get replaced by value from settings
|
||||
if (llGetInventoryType(CARD1) == INVENTORY_NOTECARD) { //card is present, start reading
|
||||
g_kCardID1 = llGetInventoryKey(CARD1);
|
||||
g_iLine1 = 0;
|
||||
g_lAnimCmds = [];
|
||||
g_lAnimSettings = [];
|
||||
g_kDataID1 = llGetNotecardLine(CARD1, g_iLine1);
|
||||
}
|
||||
if (llGetInventoryType(CARD2) == INVENTORY_NOTECARD) { //card is present, start reading
|
||||
g_kCardID2 = llGetInventoryKey(CARD2);
|
||||
g_iLine2 = 0;
|
||||
g_kDataID2 = llGetNotecardLine(CARD2, g_iLine2);
|
||||
}
|
||||
|
||||
llMessageLinked(LINK_SET, MENUNAME_RESPONSE, g_sParentMenu + "|" + g_sSubMenu, "");
|
||||
//Debug("Starting");
|
||||
}
|
||||
|
||||
listen(integer channel, string sName, key kID, string sMessage) {
|
||||
//Debug("listen: " + sMessage + ", channel=" + (string)channel);
|
||||
llListenRemove(g_iListener);
|
||||
if (channel == g_iStopChan)
|
||||
{//this abuses the GROUP auth a bit but i think it's ok.
|
||||
//Debug("message on stop channel");
|
||||
llMessageLinked(LINK_SET, COMMAND_GROUP, "stopcouples", kID);
|
||||
}
|
||||
}
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID)
|
||||
{
|
||||
//if you don't care who gave the command, so long as they're one of the above, you can just do this instead:
|
||||
if (iNum >= COMMAND_OWNER && iNum <= COMMAND_WEARER)
|
||||
{
|
||||
//the command was given by either owner, secowner, group member, or wearer
|
||||
list lParams = llParseString2List(sStr, [" "], []);
|
||||
g_kCmdGiver = kID; g_iCmdAuth = iNum;
|
||||
string sCommand = llToLower(llList2String(lParams, 0));
|
||||
string sValue = llToLower(llList2String(lParams, 1));
|
||||
integer tmpiIndex = llListFindList(g_lAnimCmds, [sCommand]);
|
||||
if (tmpiIndex != -1) //if the couple anim exists
|
||||
{
|
||||
g_iCmdIndex = tmpiIndex;
|
||||
//Debug(sCommand);
|
||||
//we got an anim command.
|
||||
if (llGetListLength(lParams) > 1)//we've been given a name of someone to kiss. scan for it
|
||||
{
|
||||
string sTmpName = llDumpList2String(llList2List(lParams, 1, -1), " ");//this makes it so we support even full names in the command
|
||||
//llSensor("", NULL_KEY, AGENT, g_fRange, PI); //replaced with call to sensor dialog
|
||||
g_kPart=llGenerateKey();
|
||||
llMessageLinked(LINK_THIS, SENSORDIALOG, (string)g_kCmdGiver + "|\nChoose a partner:\n|0|``"+(string)AGENT+"`"+(string)g_fRange+"`"+(string)PI +"`"+sTmpName+"`1"+ "|BACK|" + (string)iNum, g_kPart);
|
||||
}
|
||||
else //no name given.
|
||||
{
|
||||
if (kID == g_kWearer) //if commander is not sub, then treat commander as partner
|
||||
{
|
||||
llMessageLinked(LINK_SET, POPUP_HELP, "Error: you didn't give the name of the person you want to animate. To " + sCommand + " Nandana Singh, for example, you could say /_CHANNEL__PREFIX" + sCommand + " nan", g_kWearer);
|
||||
}
|
||||
else //else set partner to commander
|
||||
{
|
||||
g_kPartner = g_kCmdGiver;
|
||||
g_sPartnerName = llGetDisplayName(g_kPartner);
|
||||
if (g_sPartnerName == "???" || g_sPartnerName == "") g_sPartnerName = llKey2Name(g_kWearer); //sanity check, fallback if necessary
|
||||
//added to stop eventual still going animations
|
||||
StopAnims();
|
||||
//llMessageLinked(LINK_SET, CPLANIM_PERMREQUEST, sCommand, g_kPartner);
|
||||
llRequestPermissions(g_kPartner, PERMISSION_TRIGGER_ANIMATION);
|
||||
llOwnerSay("Offering to " + sCommand + " " + g_sPartnerName + ".");
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (sStr == "stopcouples")
|
||||
{
|
||||
StopAnims();
|
||||
}
|
||||
else if (sStr == "menu "+g_sSubMenu || sStr == "couples")
|
||||
{
|
||||
CoupleAnimMenu(kID, iNum);
|
||||
}
|
||||
}
|
||||
else if (iNum == MENUNAME_REQUEST && sStr == g_sParentMenu)
|
||||
{
|
||||
llMessageLinked(LINK_SET, MENUNAME_RESPONSE, g_sParentMenu + "|" + g_sSubMenu, "");
|
||||
}
|
||||
else if (iNum == LM_SETTING_RESPONSE)
|
||||
{
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
if(sToken == g_sScript + "timeout")
|
||||
{
|
||||
g_fTimeOut = (float)sValue;
|
||||
} else if (sToken=="Global_WearerName") WEARERNAME=sValue;
|
||||
}
|
||||
else if (iNum == DIALOG_RESPONSE)
|
||||
{
|
||||
if (kID == g_kAnimmenu)
|
||||
{
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
if (sMessage == UPMENU)
|
||||
{
|
||||
llMessageLinked(LINK_SET, iAuth, "menu " + g_sParentMenu, kAv);
|
||||
}
|
||||
else if (sMessage == STOP_COUPLES)
|
||||
{
|
||||
StopAnims();
|
||||
CoupleAnimMenu(kAv, iAuth);
|
||||
}
|
||||
else if (sMessage == TIME_COUPLES)
|
||||
{
|
||||
string sPrompt = "\nChoose the duration for couple animations.\n\nCurrent duration: ";
|
||||
if(g_fTimeOut == 0) sPrompt += "ENDLESS." ;
|
||||
else sPrompt += "for "+(string)llCeil(g_fTimeOut)+" seconds.";
|
||||
g_kTimerMenu=Dialog(kAv, sPrompt, ["10", "20", "30","40", "50", "60","90", "120", "ENDLESS"], [UPMENU],0, iAuth);
|
||||
}
|
||||
else
|
||||
{
|
||||
integer iIndex = llListFindList(g_lAnimCmds, [sMessage]);
|
||||
if (iIndex != -1)
|
||||
{
|
||||
g_kCmdGiver = kAv;
|
||||
g_iCmdAuth = iAuth;
|
||||
g_iCmdIndex = iIndex;
|
||||
//llSensor("", NULL_KEY, AGENT, g_fRange, PI);
|
||||
g_kPart=llGenerateKey();
|
||||
llMessageLinked(LINK_THIS, SENSORDIALOG, (string)g_kCmdGiver + "|\nChoose a partner:\n|0|``"+(string)AGENT+"`"+(string)g_fRange+"`"+(string)PI + "|BACK|" + (string)iAuth, g_kPart);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (kID == g_kPart)
|
||||
{
|
||||
//Debug("Response from partner"+sStr);
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
if (sMessage == UPMENU)
|
||||
{
|
||||
CoupleAnimMenu(kAv, iAuth);
|
||||
}
|
||||
else
|
||||
{
|
||||
//process return from sensordialog
|
||||
g_kPartner = (key)sMessage;
|
||||
g_sPartnerName = llGetDisplayName(g_kPartner);
|
||||
if (g_sPartnerName == "???" || g_sPartnerName == "") g_sPartnerName = llKey2Name(g_kPartner); //sanity check, fallback if necessary
|
||||
StopAnims();
|
||||
string sCommand = llList2String(g_lAnimCmds, g_iCmdIndex);
|
||||
llRequestPermissions(g_kPartner, PERMISSION_TRIGGER_ANIMATION);
|
||||
llOwnerSay("Offering to "+ sCommand +" "+ g_sPartnerName);
|
||||
Notify(g_kPartner, WEARERNAME + " would like to give you a " + sCommand + ". Click [Yes] to accept.", FALSE );
|
||||
}
|
||||
}
|
||||
else if (kID == g_kTimerMenu)
|
||||
{
|
||||
//Debug("Response from timer menu"+sStr);
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
if (sMessage == UPMENU)
|
||||
{
|
||||
CoupleAnimMenu(kAv, iAuth);
|
||||
}
|
||||
else if ((integer)sMessage > 0 && ((string)((integer)sMessage) == sMessage))
|
||||
{
|
||||
g_fTimeOut = (float)((integer)sMessage);
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "timeout=" + (string)g_fTimeOut, "");
|
||||
Notify (kAv, "Couple Anmiations play now for " + (string)llRound(g_fTimeOut) + " seconds.",TRUE);
|
||||
CoupleAnimMenu(kAv, iAuth);
|
||||
}
|
||||
else if (sMessage == "ENDLESS")
|
||||
{
|
||||
g_fTimeOut = 0.0;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "timeout=0.0", "");
|
||||
Notify (kAv, "Couple Anmiations play now forever. Use the menu or type *stopcouples to stop them again.",TRUE);
|
||||
CoupleAnimMenu(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
not_at_target()
|
||||
{
|
||||
// Opensim leash fix
|
||||
if (g_iTargetID==0) return;
|
||||
//this might make us chase the partner. we'll see. that might not be bad
|
||||
llTargetRemove(g_iTargetID);
|
||||
MoveToPartner();
|
||||
}
|
||||
at_target(integer tiNum, vector targetpos, vector ourpos)
|
||||
{
|
||||
// Opensim leash fix
|
||||
if (g_iTargetID==0) return;
|
||||
llTargetRemove(tiNum);
|
||||
g_iTargetID = 0;
|
||||
llStopMoveToTarget();
|
||||
|
||||
//AlignWithPartner
|
||||
float offset = 10.0;
|
||||
if (g_iCmdIndex != -1) offset = (float)llList2String(g_lAnimSettings, g_iCmdIndex * 4 + 2);
|
||||
list partnerDetails = llGetObjectDetails(g_kPartner, [OBJECT_POS, OBJECT_ROT]);
|
||||
vector partnerPos = llList2Vector(partnerDetails, 0);
|
||||
rotation partnerRot = llList2Rot(partnerDetails, 1);
|
||||
vector myPos = llList2Vector(llGetObjectDetails(llGetOwner(), [OBJECT_POS]), 0);
|
||||
|
||||
vector target = partnerPos + (<1.0, 0.0, 0.0> * partnerRot * offset); // target is <offset> meters in front of the partner
|
||||
target.z = myPos.z; // ignore height differences
|
||||
llMoveToTarget(target, g_fAlignTau);
|
||||
llSleep(g_fAlignDelay);
|
||||
llStopMoveToTarget();
|
||||
|
||||
//we've arrived. let's play the anim and spout the text
|
||||
g_sSubAnim = llList2String(g_lAnimSettings, g_iCmdIndex * 4);
|
||||
g_sDomAnim = llList2String(g_lAnimSettings, g_iCmdIndex * 4 + 1);
|
||||
|
||||
|
||||
llMessageLinked(LINK_SET, ANIM_START, g_sSubAnim, "");
|
||||
llStartAnimation(g_sDomAnim);//note that we don't double check for permissions here, so if the coupleanim1 script sends its messages out of order, this might fail
|
||||
g_iListener = llListen(g_iStopChan, "", g_kPartner, g_sStopString);
|
||||
//llInstantMessage(g_kPartner, "If you would like to stop the animation early, say /" + (string)g_iStopChan + g_sStopString + " to stop.");
|
||||
Notify(g_kPartner, "If you would like to stop the animation early, say /" + (string)g_iStopChan + g_sStopString + " to stop.", FALSE);
|
||||
|
||||
|
||||
string text = llList2String(g_lAnimSettings, g_iCmdIndex * 4 + 3);
|
||||
if (text != "")
|
||||
{
|
||||
string sName = llGetObjectName();
|
||||
string sObjectName;
|
||||
text = osReplaceString(text, "_PARTNER_", g_sPartnerName, -1, 0);
|
||||
text = osReplaceString(text, "_SELF_", WEARERNAME, -1, 0);
|
||||
llSetObjectName("");
|
||||
llSay(0, "/me " + text);
|
||||
llSetObjectName(sName);
|
||||
}
|
||||
if (g_fTimeOut > 0.0){
|
||||
g_iAnimTimeout=llGetUnixTime()+(integer)g_fTimeOut;
|
||||
} else {
|
||||
g_iAnimTimeout=0;
|
||||
}
|
||||
refreshTimer();
|
||||
}
|
||||
timer()
|
||||
{
|
||||
refreshTimer();
|
||||
}
|
||||
dataserver(key kID, string sData)
|
||||
{
|
||||
if (sData == EOF){
|
||||
iCardComplete++;
|
||||
} else {
|
||||
list lParams = llParseString2List(sData, ["|"], []);
|
||||
//don't try to add empty or misformatted lines
|
||||
//valid if length = 4 or 5 (since text is optional) and anims exist
|
||||
integer iLength = llGetListLength(lParams);
|
||||
if (iLength == 4 || iLength == 5){
|
||||
if (!llGetInventoryType(llList2String(lParams, 1)) == INVENTORY_ANIMATION){
|
||||
llOwnerSay(CARD1 + " line " + (string)g_iLine1 + ": animation '" + llList2String(lParams, 1) + "' is not present. Skipping.");
|
||||
} else if (!llGetInventoryType(llList2String(lParams, 2)) == INVENTORY_ANIMATION){
|
||||
llOwnerSay(CARD1 + " line " + (string)g_iLine2 + ": animation '" + llList2String(lParams, 2) + "' is not present. Skipping.");
|
||||
} else {
|
||||
integer iIndex = llListFindList(g_lAnimCmds, llList2List(lParams, 0, 0));
|
||||
if (iIndex != -1){
|
||||
g_lAnimCmds=llDeleteSubList(g_lAnimCmds,iIndex,iIndex);
|
||||
g_lAnimSettings=llDeleteSubList(g_lAnimSettings,iIndex*4,iIndex*4+3);
|
||||
}
|
||||
//add cmd, and text
|
||||
g_lAnimCmds += llList2List(lParams, 0, 0);
|
||||
//anim names, offset,
|
||||
g_lAnimSettings += llList2List(lParams, 1, 3);
|
||||
//text. this has to be done by casting to string instead of list2list, else lines that omit text will throw off the stride
|
||||
g_lAnimSettings += [llList2String(lParams, 4)];
|
||||
//Debug(llDumpList2String(g_lAnimCmds, ","));
|
||||
//Debug(llDumpList2String(g_lAnimSettings, ","));
|
||||
}
|
||||
}
|
||||
if ( iCardComplete <2){
|
||||
if (kID == g_kDataID1){
|
||||
g_iLine1++;
|
||||
g_kDataID1 = llGetNotecardLine(CARD1, g_iLine1);
|
||||
} else if (kID == g_kDataID2){
|
||||
g_iLine2++;
|
||||
g_kDataID2 = llGetNotecardLine(CARD2, g_iLine2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
run_time_permissions(integer perm)
|
||||
{
|
||||
if (perm & PERMISSION_TRIGGER_ANIMATION)
|
||||
{
|
||||
key kID = llGetPermissionsKey();
|
||||
//Debug("changed anim permissions\nPerm ID="+(string)kID+"g_kPartner="+(string)g_kPartner);
|
||||
if (kID == g_kPartner)
|
||||
{
|
||||
g_iPermissionTimeout=0;
|
||||
MoveToPartner();
|
||||
}
|
||||
else
|
||||
{
|
||||
Notify(kID, "Sorry, but the request timed out.",TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
changed(integer iChange)
|
||||
{
|
||||
if (iChange & CHANGED_INVENTORY)
|
||||
{
|
||||
if (llGetInventoryKey(CARD1) != g_kCardID1)
|
||||
{
|
||||
//because notecards get new uuids on each save, we can detect if the notecard has changed by seeing if the current uuid is the same as the one we started with
|
||||
//just switch states instead of restarting, so we can preserve any settings we may have gotten from db
|
||||
state default;
|
||||
}
|
||||
if (llGetInventoryKey(CARD2) != g_kCardID1)
|
||||
{
|
||||
state default;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
if (iChange & CHANGED_REGION) {
|
||||
if (g_iProfiled) {
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,722 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - dialog //
|
||||
// version 3.989 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//an adaptation of Schmobag Hogfather's SchmoDialog script
|
||||
|
||||
//MESSAGE MAP
|
||||
integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
//integer COMMAND_EVERYONE = 504;
|
||||
//integer COMMAND_RLV_RELAY = 507;
|
||||
//integer COMMAND_SAFEWORD = 510;
|
||||
//integer COMMAND_RELAY_SAFEWORD = 511;
|
||||
|
||||
//integer SEND_IM = 1000; deprecated. each script should send its own IMs now. This is to reduce even the tiny bt of lag caused by having IM slave scripts
|
||||
//integer POPUP_HELP = 1001;
|
||||
|
||||
integer LM_SETTING_SAVE = 2000;//scripts send messages on this channel to have settings saved to httpdb
|
||||
//str must be in form of "token=value"
|
||||
//integer LM_SETTING_REQUEST = 2001;//when startup, scripts send requests for settings on this channel
|
||||
integer LM_SETTING_RESPONSE = 2002;//the httpdb script will send responses on this channel
|
||||
integer LM_SETTING_DELETE = 2003;//delete token from DB
|
||||
//integer LM_SETTING_EMPTY = 2004;//sent by httpdb script when a token has no value in the db
|
||||
|
||||
//integer MENUNAME_REQUEST = 3000;
|
||||
//integer MENUNAME_RESPONSE = 3001;
|
||||
//integer MENUNAME_REMOVE = 3003;
|
||||
|
||||
//integer RLV_CMD = 6000;
|
||||
//integer RLV_REFRESH = 6001;//RLV plugins should reinstate their restrictions upon receiving this message.
|
||||
//integer RLV_CLEAR = 6002;//RLV plugins should clear their restriction lists upon receiving this message.
|
||||
//integer RLV_VERSION = 6003; //RLV Plugins can recieve the used rl viewer version upon receiving this message..
|
||||
|
||||
//integer RLV_OFF = 6100; // send to inform plugins that RLV is disabled now, no message or key needed
|
||||
//integer RLV_ON = 6101; // send to inform plugins that RLV is enabled now, no message or key needed
|
||||
|
||||
//integer ANIM_START = 7000;//send this with the name of an anim in the string part of the message to play the anim
|
||||
//integer ANIM_STOP = 7001;//send this with the name of an anim in the string part of the message to stop the anim
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
integer SENSORDIALOG = -9003;
|
||||
integer FIND_AGENT = -9005;
|
||||
|
||||
integer iPagesize = 12;
|
||||
string MORE = "►";
|
||||
string PREV = "◄";
|
||||
string UPMENU = "BACK"; // string to identify the UPMENU button in the utility lButtons
|
||||
//string SWAPBTN = "swap";
|
||||
//string SYNCBTN = "sync";
|
||||
string BLANK = "-";
|
||||
integer g_iTimeOut = 300;
|
||||
integer g_iReapeat = 5;//how often the timer will go off, in seconds
|
||||
|
||||
list g_lMenus;//11-strided list in form listenChan, dialogid, listener, starttime, recipient, prompt, list buttons, utility buttons, currentpage, button digits, auth level
|
||||
//where "list buttons" means the big list of choices presented to the user
|
||||
//and "page buttons" means utility buttons that will appear on every page, such as one saying "go up one level"
|
||||
//and "currentpage" is an integer meaning which page of the menu the user is currently viewing
|
||||
|
||||
list g_lRemoteMenus;
|
||||
|
||||
integer g_iStrideLength = 12;
|
||||
|
||||
// List of user keys who opt-out of chat-spammage, ie chose "off"
|
||||
list MRSBUN = []; // blatant monty python reference - list of those who do not like spam
|
||||
string SPAMSWITCH = "verbose"; // lowercase chat-command token
|
||||
|
||||
key g_kWearer;
|
||||
string g_sScript;
|
||||
|
||||
list g_lSensorDetails;
|
||||
integer g_bSensorLock;
|
||||
integer g_iSensorTimeout;
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer)
|
||||
{
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else
|
||||
{
|
||||
if (llGetAgentSize(kID)!=ZERO_VECTOR) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
Dialog(key kRecipient, string sPrompt, list lMenuItems, list lUtilityButtons, integer iPage, key kID, integer iWithNums, integer iAuth,string extraInfo)
|
||||
{
|
||||
//calculate page start and end
|
||||
integer iNumitems = llGetListLength(lMenuItems);
|
||||
integer iStart = 0;
|
||||
integer iMyPageSize = iPagesize - llGetListLength(lUtilityButtons);
|
||||
string sPagerPrompt;
|
||||
if (iNumitems > iMyPageSize)
|
||||
{
|
||||
iMyPageSize=iMyPageSize-2;//we'll use two slots for the MORE and PREV button, so shrink the page accordingly
|
||||
|
||||
integer numPages=(iNumitems-1)/iMyPageSize;
|
||||
if (iPage>numPages)iPage=0;
|
||||
else if (iPage<0) iPage=numPages;
|
||||
|
||||
iStart = iPage * iMyPageSize;
|
||||
//multi page menu
|
||||
sPagerPrompt = sPagerPrompt + "\nPage "+(string)(iPage+1)+"/"+(string)(numPages+1);
|
||||
}
|
||||
integer iEnd = iStart + iMyPageSize - 1;
|
||||
if (iEnd >= iNumitems) iEnd = iNumitems - 1;
|
||||
integer iPagerPromptLen = GetStringBytes(sPagerPrompt);
|
||||
//Debug("start at "+(string)iStart+", end at "+(string)iEnd);
|
||||
|
||||
//if we've been told to, calculate numbering from buttons supplied, inlined ButtonDigits function
|
||||
if (iWithNums == -1){
|
||||
integer iNumButtons=llGetListLength(lMenuItems);
|
||||
iWithNums=llStringLength((string)iNumButtons);
|
||||
//if ( iNumButtons < 10 ) iWithNums = 1;
|
||||
//else if (iNumButtons < 100) iWithNums = 2;
|
||||
//else if (iNumButtons < 1000) iWithNums = 3; // more than 100 is unlikely, considering the size of a LM
|
||||
while (iNumButtons--) {
|
||||
if (GetStringBytes(llList2String(lMenuItems,iNumButtons))>18) {
|
||||
jump longButtonName; //one of the options is too long for a button, thats all we need to know.
|
||||
}
|
||||
}
|
||||
iWithNums=0;
|
||||
@longButtonName;
|
||||
}
|
||||
//Debug("numbered list:"+(string)iWithNums);
|
||||
|
||||
// create list of buttons to use, and number them if needed
|
||||
string sNumberedButtons;
|
||||
integer iNBPromptlen;
|
||||
list lButtons; //list of buttons to be used in the dialog, sliced by page and maybe with numbers added, not the lMenuItems we were supplied
|
||||
if (iWithNums) { // put numbers in front of buttons: "00 Button1", "01 Button2", ...
|
||||
integer iCur;
|
||||
sNumberedButtons="\n"; //let's make this a linebreak instead
|
||||
for (iCur = iStart; iCur <= iEnd; iCur++)
|
||||
{
|
||||
string sButton = llList2String(lMenuItems, iCur);
|
||||
if ((key)sButton) {
|
||||
//fixme: inlined single use key2name function
|
||||
if (llGetDisplayName((key)sButton)) sButton=llGetDisplayName((key)sButton);
|
||||
else sButton=llKey2Name((key)sButton);
|
||||
}
|
||||
|
||||
//inlined single use Integer2String function
|
||||
string sButtonNumber = (string)iCur;
|
||||
while (llStringLength(sButtonNumber)<iWithNums){
|
||||
sButtonNumber = "0"+sButtonNumber;
|
||||
}
|
||||
sButton=sButtonNumber + " " + sButton;
|
||||
//Debug("ButtonNumber="+sButtonNumber);
|
||||
|
||||
sNumberedButtons+=sButton+"\n";
|
||||
sButton = TruncateString(sButton, 24);
|
||||
lButtons += [sButton];
|
||||
}
|
||||
iNBPromptlen=GetStringBytes(sNumberedButtons);
|
||||
} else if (iNumitems > iMyPageSize) {
|
||||
lButtons = llList2List(lMenuItems, iStart, iEnd);
|
||||
} else {
|
||||
lButtons = lMenuItems;
|
||||
}
|
||||
//Debug("buttons:"+llDumpList2String(lButtons,","));
|
||||
|
||||
//make a prompt small enough to fit in the 512 limit for dialogs, prepare overflow for chat message
|
||||
integer iPromptlen=GetStringBytes(sPrompt);
|
||||
string sThisPrompt;
|
||||
string sThisChat;
|
||||
if (iPromptlen + iNBPromptlen + iPagerPromptLen < 512) { //we can fit it all in the dialog
|
||||
sThisPrompt = sPrompt + sNumberedButtons + sPagerPrompt ;
|
||||
} else if (iPromptlen + iPagerPromptLen < 512) { //we can fit in the whole prompt and pager info, but not the buttons list
|
||||
sThisPrompt = sPrompt + sPagerPrompt;
|
||||
sThisChat = sNumberedButtons;
|
||||
} else { //can't fit prompt and pager, so send truncated prompt, pager and chat full prompt and button list
|
||||
sThisPrompt=TruncateString(sPrompt,510-iPagerPromptLen)+sPagerPrompt;
|
||||
sThisChat = sPrompt+sNumberedButtons;
|
||||
}
|
||||
//Debug("prompt:"+sThisPrompt);
|
||||
|
||||
//unless asked not to, chat anything that wouldn't fit to menu user
|
||||
if (! ~llListFindList(MRSBUN, [kRecipient])){
|
||||
integer iRemainingChatLen;
|
||||
while (iRemainingChatLen=llStringLength(sThisChat)){ //capture and compare in one go
|
||||
if(iRemainingChatLen<1015) {
|
||||
Notify(kRecipient,sThisChat,FALSE); //if its short enough, IM it in one chunk
|
||||
sThisChat="";
|
||||
} else {
|
||||
string sMessageChunk=TruncateString(sPrompt,1015);
|
||||
Notify(kRecipient,sMessageChunk,FALSE);
|
||||
sThisChat=llGetSubString(sThisChat,llStringLength(sMessageChunk),-1);
|
||||
}
|
||||
}
|
||||
}
|
||||
//Debug("chat prompt:"+sThisChat);
|
||||
|
||||
//calculate random channel number for dialog, inlined single use RandomUniqueChanel function
|
||||
integer iChan=llRound(llFrand(10000000)) + 100000;
|
||||
while (~llListFindList(g_lMenus, [iChan])){
|
||||
iChan=llRound(llFrand(10000000)) + 100000;
|
||||
}
|
||||
integer iListener = llListen(iChan, "", kRecipient, "");
|
||||
|
||||
//send dialog to viewer
|
||||
if (llGetListLength(lMenuItems+lUtilityButtons)){
|
||||
list lNavButtons;
|
||||
if (iNumitems > iMyPageSize) {
|
||||
lNavButtons=[PREV,MORE];
|
||||
}
|
||||
llDialog(kRecipient, sThisPrompt, PrettyButtons(lButtons, lUtilityButtons, lNavButtons), iChan);
|
||||
}
|
||||
else llTextBox(kRecipient, sThisPrompt, iChan);
|
||||
|
||||
//set dialog timeout
|
||||
llSetTimerEvent(g_iReapeat);
|
||||
integer ts = llGetUnixTime() + g_iTimeOut;
|
||||
|
||||
//write entry in tracking list
|
||||
g_lMenus += [iChan, kID, iListener, ts, kRecipient, sPrompt, llDumpList2String(lMenuItems, "|"), llDumpList2String(lUtilityButtons, "|"), iPage, iWithNums, iAuth,extraInfo];
|
||||
//Debug("Made Dialog");
|
||||
}
|
||||
|
||||
integer GetStringBytes(string sStr)
|
||||
{
|
||||
sStr = llEscapeURL(sStr);
|
||||
integer l = llStringLength(sStr);
|
||||
list lAtoms = llParseStringKeepNulls(sStr, ["%"], []);
|
||||
return l - 2 * llGetListLength(lAtoms) + 2;
|
||||
}
|
||||
|
||||
string TruncateString(string sStr, integer iBytes)
|
||||
{
|
||||
sStr = llEscapeURL(sStr);
|
||||
integer j = 0;
|
||||
string sOut;
|
||||
integer l = llStringLength(sStr);
|
||||
for (; j < l; j++)
|
||||
{
|
||||
string c = llGetSubString(sStr, j, j);
|
||||
if (c == "%")
|
||||
{
|
||||
if (iBytes >= 2)
|
||||
{
|
||||
sOut += llGetSubString(sStr, j, j+2);
|
||||
j += 2;
|
||||
iBytes -= 2;
|
||||
}
|
||||
}
|
||||
else if (iBytes >= 1)
|
||||
{
|
||||
sOut += c;
|
||||
iBytes --;
|
||||
}
|
||||
}
|
||||
return llUnescapeURL(sOut);
|
||||
}
|
||||
|
||||
list PrettyButtons(list lOptions, list lUtilityButtons, list iPagebuttons){ //returns a list formatted to that "options" will start in the top left of a dialog, and "utilitybuttons" will start in the bottom right
|
||||
list lSpacers;
|
||||
list lCombined = lOptions + lUtilityButtons + iPagebuttons;
|
||||
while (llGetListLength(lCombined) % 3 != 0 && llGetListLength(lCombined) < 12)
|
||||
{
|
||||
lSpacers += [BLANK];
|
||||
lCombined = lOptions + lSpacers + lUtilityButtons + iPagebuttons;
|
||||
}
|
||||
// check if a UPBUTTON is present and remove it for the moment
|
||||
integer u = llListFindList(lCombined, [UPMENU]);
|
||||
if (u != -1)
|
||||
{
|
||||
lCombined = llDeleteSubList(lCombined, u, u);
|
||||
}
|
||||
|
||||
list lOut = llList2List(lCombined, 9, 11);
|
||||
lOut += llList2List(lCombined, 6, 8);
|
||||
lOut += llList2List(lCombined, 3, 5);
|
||||
lOut += llList2List(lCombined, 0, 2);
|
||||
|
||||
//make sure we move UPMENU to the lower right corner
|
||||
if (u != -1)
|
||||
{
|
||||
lOut = llListInsertList(lOut, [UPMENU], 2);
|
||||
}
|
||||
|
||||
return lOut;
|
||||
}
|
||||
/*
|
||||
list PrettyMain(list lOptions)
|
||||
{
|
||||
integer iA=llListFindList(lOptions,["Access"]);
|
||||
integer iO=llListFindList(lOptions,["Options"]);
|
||||
integer iH=llListFindList(lOptions,["Help/About"]);
|
||||
|
||||
if(~iA && ~iO && ~iH) //all three buttons found. Otherwise menu isn't main or is messed up, and we return
|
||||
{
|
||||
lOptions=llDeleteSubList(lOptions,iA,iA);
|
||||
if(iO>iA) --iO;
|
||||
if(iH>iA) --iH;
|
||||
lOptions=llDeleteSubList(lOptions,iO,iO);
|
||||
if (iH>iO) --iH;
|
||||
lOptions=llDeleteSubList(lOptions,iH,iH);
|
||||
return lOptions+["Access","Options","Help/About"];
|
||||
}
|
||||
else return lOptions;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
RemoveMenuStride(integer iIndex) //fixme: duplicates entire global lMenu list
|
||||
{
|
||||
//tell this function the menu you wish to remove, identified by list index
|
||||
//it will close the listener, remove the menu's entry from the list, and return the new list
|
||||
//should be called in the listen event, and on menu timeout
|
||||
integer iListener = llList2Integer(g_lMenus, iIndex + 2);
|
||||
llListenRemove(iListener);
|
||||
g_lMenus=llDeleteSubList(g_lMenus, iIndex, iIndex + g_iStrideLength - 1);
|
||||
}
|
||||
|
||||
CleanList()
|
||||
{
|
||||
//Debug("cleaning list");
|
||||
//loop through menus and remove any whose timeouts are in the past
|
||||
//start at end of list and loop down so that indices don't get messed up as we remove items
|
||||
integer iLength = llGetListLength(g_lMenus);
|
||||
integer n;
|
||||
integer iNow = llGetUnixTime();
|
||||
for (n = iLength - g_iStrideLength; n >= 0; n -= g_iStrideLength)
|
||||
{
|
||||
integer iDieTime = llList2Integer(g_lMenus, n + 3);
|
||||
//Debug("dietime: " + (string)iDieTime);
|
||||
if (iNow > iDieTime)
|
||||
{
|
||||
//Debug("menu timeout");
|
||||
key kID = llList2Key(g_lMenus, n + 1);
|
||||
llMessageLinked(LINK_SET, DIALOG_TIMEOUT, "", kID);
|
||||
RemoveMenuStride(n);
|
||||
}
|
||||
}
|
||||
if (g_iSensorTimeout>iNow){ //sensor took too long to return. Ignore it, and do the next in the list
|
||||
g_lSensorDetails=llDeleteSubList(g_lSensorDetails,0,3);
|
||||
if (llGetListLength(g_lSensorDetails)>0){
|
||||
dequeueSensor();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ClearUser(key kRCPT)
|
||||
{
|
||||
//find any strides belonging to user and remove them
|
||||
integer iIndex = llListFindList(g_lMenus, [kRCPT]);
|
||||
while (~iIndex)
|
||||
{
|
||||
//Debug("removed stride for " + (string)kRCPT);
|
||||
RemoveMenuStride(iIndex -4);
|
||||
//g_lMenus = llDeleteSubList(g_lMenus, iIndex - 4, iIndex - 5 + g_iStrideLength);
|
||||
iIndex = llListFindList(g_lMenus, [kRCPT]);
|
||||
}
|
||||
//Debug(llDumpList2String(g_lMenus, ","));
|
||||
}
|
||||
|
||||
integer UserCommand(integer iNum, string sStr, key kID)
|
||||
{
|
||||
if (iNum < COMMAND_OWNER || iNum > COMMAND_WEARER) return FALSE;
|
||||
if (iNum == COMMAND_GROUP) return FALSE;
|
||||
list lParams = llParseString2List(llToLower(sStr), ["="], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
if (sToken == SPAMSWITCH) // add/rem user to verbose=off list
|
||||
{
|
||||
integer i = llListFindList(MRSBUN, [kID]);
|
||||
if (sValue == "off")
|
||||
{
|
||||
if (~i) return TRUE; // already in list
|
||||
MRSBUN += [kID];
|
||||
Notify(kID, "Verbose Feature activated for you.", FALSE);
|
||||
}
|
||||
else if (~i)
|
||||
{
|
||||
MRSBUN = llDeleteSubList(MRSBUN, i, i);
|
||||
Notify(kID, "Verbose Feature de-activated for you.", FALSE);
|
||||
}
|
||||
else return TRUE; // not in list to start with
|
||||
if (!llGetListLength(MRSBUN)) llMessageLinked(LINK_THIS, LM_SETTING_DELETE, g_sScript + SPAMSWITCH, "");
|
||||
else llMessageLinked(LINK_THIS, LM_SETTING_SAVE, g_sScript + SPAMSWITCH + "=" + llList2CSV(MRSBUN), "");
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
dequeueSensor(){
|
||||
//get sStr of first set of sensor details, unpack it and run the apropriate sensor
|
||||
//Debug((string)llGetListLength(g_lSensorDetails));
|
||||
list lParams = llParseStringKeepNulls(llList2String(g_lSensorDetails,2), ["|"], []);
|
||||
//sensor information is encoded in the first 5 fields of the lButtons list, ready to feed to the sensor command,
|
||||
list lSensorInfo = llParseStringKeepNulls(llList2String(lParams, 3), ["`"], []);
|
||||
/* Debug("Running sensor with\n"+
|
||||
llList2String(lSensorInfo,0)+"\n"+
|
||||
llList2String(lSensorInfo,1)+"\n"+
|
||||
(string)llList2Integer(lSensorInfo,2)+"\n"+
|
||||
(string)llList2Float(lSensorInfo,3)+"\n"+
|
||||
(string)llList2Float(lSensorInfo,4)
|
||||
);
|
||||
*/
|
||||
llSensor(llList2String(lSensorInfo,0),(key)llList2String(lSensorInfo,1),llList2Integer(lSensorInfo,2),llList2Float(lSensorInfo,3),llList2Float(lSensorInfo,4));
|
||||
g_iSensorTimeout=llGetUnixTime()+10;
|
||||
llSetTimerEvent(g_iReapeat);
|
||||
|
||||
}
|
||||
|
||||
default {
|
||||
on_rez(integer iParam) {
|
||||
llResetScript();
|
||||
}
|
||||
|
||||
state_entry() {
|
||||
//llSetMemoryLimit(65536); //this script needs to be profiled, and its memory limited
|
||||
g_sScript = "dialog_";
|
||||
g_kWearer=llGetOwner();
|
||||
//Debug("Starting");
|
||||
}
|
||||
|
||||
sensor(integer num_detected){
|
||||
//get sensot request info from list
|
||||
list lSensorInfo=llList2List(g_lSensorDetails,0,3);
|
||||
g_lSensorDetails=llDeleteSubList(g_lSensorDetails,0,3);
|
||||
|
||||
list lParams=llParseStringKeepNulls(llList2String(lSensorInfo,2), ["|"], []);
|
||||
list lButtons = llParseStringKeepNulls(llList2String(lParams, 3), ["`"], []);
|
||||
//sensor information is encoded in the first 5 fields of the lButtons list, we've run the sensor so we don't need that now.
|
||||
//6th field is "find" information
|
||||
//7th is boolean, 0 for return a dialog, 1 for return the first matching name
|
||||
string sFind=llList2String(lButtons,5);
|
||||
integer bReturnFirstMatch=llList2Integer(lButtons,6);
|
||||
lButtons=[];
|
||||
|
||||
integer i;
|
||||
for (i=0; i<num_detected;i++){
|
||||
lButtons += llDetectedKey(i);
|
||||
if (bReturnFirstMatch){ //if we're supposed to be finding the first match,
|
||||
if (llSubStringIndex(llToLower(llDetectedName(i)),llToLower(sFind))==0){ //if they match, send it back as a dialogresponse without popping the dialog
|
||||
llMessageLinked(LINK_SET, DIALOG_RESPONSE, llList2String(lParams,0) + "|" + (string)llDetectedKey(i)+ "|0|" + llList2String(lParams,5), (key)llList2String(lSensorInfo,3));
|
||||
//if we have more sensors to run, run another one now, else unlock subsys and quite
|
||||
if (llGetListLength(g_lSensorDetails) > 0){
|
||||
dequeueSensor();
|
||||
} else {
|
||||
g_bSensorLock=FALSE;
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//pack buttons back into a ` delimited list, and put it back into lParams
|
||||
string sButtons=llDumpList2String(lButtons,"`");
|
||||
lParams=llListReplaceList(lParams,[sButtons],3,3);
|
||||
|
||||
//fake fresh dialog call with our new buttons in place, using the rest of the information we were sent
|
||||
llMessageLinked(LINK_THIS,DIALOG,llDumpList2String(lParams,"|"),(key)llList2String(lSensorInfo,3));
|
||||
|
||||
//if we have more sensors to run, run another one now, else unlock subsys and quite
|
||||
if (llGetListLength(g_lSensorDetails) > 0){
|
||||
dequeueSensor();
|
||||
} else {
|
||||
g_bSensorLock=FALSE;
|
||||
}
|
||||
|
||||
}
|
||||
no_sensor()
|
||||
{
|
||||
list lSensorInfo=llList2List(g_lSensorDetails,0,3);
|
||||
g_lSensorDetails=llDeleteSubList(g_lSensorDetails,0,3);
|
||||
|
||||
list lParams=llParseStringKeepNulls(llList2String(lSensorInfo,2), ["|"], []);
|
||||
lParams=llListReplaceList(lParams,[""],3,3);
|
||||
|
||||
//fake fresh dialog call with our new buttons in place, using the rest of the information we were sent
|
||||
llMessageLinked(LINK_THIS,DIALOG,llDumpList2String(lParams,"|"),(key)llList2String(lSensorInfo,3));
|
||||
|
||||
//if we have more sensors to run, run another one now, else unlock subsys and quit
|
||||
if (llGetListLength(g_lSensorDetails) > 0){
|
||||
dequeueSensor();
|
||||
} else {
|
||||
g_bSensorLock=FALSE;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID)
|
||||
{
|
||||
if (iNum == FIND_AGENT) {
|
||||
//Debug("FIND_AGENT:"+sStr);
|
||||
list lParams = llParseStringKeepNulls(sStr, ["|"], []);
|
||||
if (llList2String(lParams, 0) == "getavi_"){ //identifies a getavi_ request
|
||||
//fixme: REQ(params[1]),
|
||||
string REQ = llList2String(lParams, 1); //name of script that sent the message
|
||||
key kRCPT = llGetOwnerKey((key)llList2String(lParams, 2)); //key of requesting user
|
||||
integer iAuth = (integer)llList2String(lParams, 3); //auth of requesting user
|
||||
string TYPE = llList2String(lParams, 4); //type field, returned in the response to help calling script track the nature of the search
|
||||
string find = llList2String(lParams, 5); //find string.. only return avatars whose neames start with this string
|
||||
if (find == " ") find = "";
|
||||
list excl = llParseString2List(llList2String(lParams, 6), [","], []); //list of uuids to exclude from the search
|
||||
|
||||
//list AVIS = [];
|
||||
list agentList = llGetAgentList(AGENT_LIST_REGION, []);
|
||||
integer numAgents = llGetListLength(agentList);
|
||||
while(numAgents--){
|
||||
key avId=llList2Key(agentList, numAgents);
|
||||
string name = llKey2Name(avId);
|
||||
if ( !(~llSubStringIndex(llToLower(name), llToLower(find))) ||
|
||||
(~llListFindList(excl,[(string)avId]))) {
|
||||
//if this name does not contain find string or key is in the exclude list
|
||||
agentList=llDeleteSubList(agentList,numAgents,numAgents); //delete this agent from the list
|
||||
} else if (osIsNpc(avId)) {
|
||||
agentList=llDeleteSubList(agentList,numAgents,numAgents);
|
||||
}
|
||||
}
|
||||
|
||||
numAgents = llGetListLength(agentList);
|
||||
if (!numAgents){
|
||||
string findNotify;
|
||||
if (find != "") findNotify = "starting with \"" + find + "\" ";
|
||||
llInstantMessage(kRCPT, "No (other) avatars "+ findNotify + "in this region.");
|
||||
} else {
|
||||
//Debug("Found avatars:"+llDumpList2String(agentList,","));
|
||||
ClearUser(kRCPT);
|
||||
Dialog(kRCPT, "\nChoose the person you like to add:\n", agentList, [UPMENU], 0, kID, -1, iAuth, "getavi_|"+REQ+"|"+TYPE); //iDigits==-1 means dialog should calculate numbered dialogs
|
||||
}
|
||||
//} else {
|
||||
//Debug(sStr);
|
||||
}
|
||||
} else
|
||||
if (iNum == SENSORDIALOG){
|
||||
//first, store all incoming parameters in a global sensor details list
|
||||
|
||||
//test for locked sensor subsystem
|
||||
//if subsys locked, do nothing
|
||||
//if subsys open, run sensor with first set of details in the list, and set timeout
|
||||
|
||||
//list g_lSensorDetailsList;
|
||||
//list g_bSensorLock;
|
||||
g_lSensorDetails+=[iSender, iNum, sStr, kID];
|
||||
|
||||
if (! g_bSensorLock){
|
||||
g_bSensorLock=TRUE;
|
||||
dequeueSensor();
|
||||
}
|
||||
|
||||
} else
|
||||
if (iNum == DIALOG)
|
||||
{//give a dialog with the options on the button labels
|
||||
//str will be pipe-delimited list with rcpt|prompt|page|backtick-delimited-list-buttons|backtick-delimited-utility-buttons|auth
|
||||
//Debug("DIALOG:"+sStr);
|
||||
|
||||
list lParams = llParseStringKeepNulls(sStr, ["|"], []);
|
||||
key kRCPT = llGetOwnerKey((key)llList2String(lParams, 0));
|
||||
integer iIndex = llListFindList(g_lRemoteMenus, [kRCPT]);
|
||||
if (~iIndex)
|
||||
{
|
||||
if (llKey2Name(kRCPT)=="") //if recipient is not in the sim. Inlined single use InSim(kRCPT) function
|
||||
{
|
||||
llHTTPRequest(llList2String(g_lRemoteMenus, iIndex+1), [HTTP_METHOD, "POST"], sStr+"|"+(string)kID);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_lRemoteMenus = llListReplaceList(g_lRemoteMenus, [], iIndex, iIndex+1);
|
||||
}
|
||||
}
|
||||
string sPrompt = llList2String(lParams, 1);
|
||||
integer iPage = (integer)llList2String(lParams, 2);
|
||||
list lButtons = llParseString2List(llList2String(lParams, 3), ["`"], []);
|
||||
integer iDigits=-1; //iDigits==-1 means Dialog should run idigits on the buttons
|
||||
list ubuttons = llParseString2List(llList2String(lParams, 4), ["`"], []);
|
||||
integer iAuth = COMMAND_NOAUTH;
|
||||
if (llGetListLength(lParams)>=6) iAuth = llList2Integer(lParams, 5);
|
||||
//first clean out any strides already in place for that user. prevents having lots of listens open if someone uses the menu several times while sat
|
||||
ClearUser(kRCPT);
|
||||
Dialog(kRCPT, sPrompt, lButtons, ubuttons, iPage, kID, iDigits, iAuth,"");
|
||||
}
|
||||
else if (llGetSubString(sStr, 0, 10) == "remotemenu:")
|
||||
{
|
||||
if (iNum == COMMAND_OWNER || iNum == COMMAND_SECOWNER)
|
||||
{
|
||||
string sCmd = llGetSubString(sStr, 11, -1);
|
||||
//Debug("dialog cmd:" + sCmd);
|
||||
if (llGetSubString(sCmd, 0, 3) == "url:")
|
||||
{
|
||||
integer iIndex = llListFindList(g_lRemoteMenus, [kID]);
|
||||
if (~iIndex)
|
||||
{
|
||||
g_lRemoteMenus = llListReplaceList(g_lRemoteMenus, [kID, llGetSubString(sCmd, 4, -1)], iIndex, iIndex+1);
|
||||
}
|
||||
else
|
||||
{
|
||||
g_lRemoteMenus += [kID, llGetSubString(sCmd, 4, -1)];
|
||||
}
|
||||
llMessageLinked(LINK_SET, iNum, "menu", kID);
|
||||
}
|
||||
else if (llGetSubString(sCmd, 0, 2) == "off")
|
||||
{
|
||||
integer iIndex = llListFindList(g_lRemoteMenus, [kID]);
|
||||
if (~iIndex)
|
||||
{
|
||||
g_lRemoteMenus = llListReplaceList(g_lRemoteMenus, [], iIndex, iIndex+1);
|
||||
}
|
||||
}
|
||||
else if (llGetSubString(sCmd, 0, 8) == "response:")
|
||||
{
|
||||
list lParams = llParseString2List(llGetSubString(sCmd, 9, -1), ["|"], []);
|
||||
//llMessageLinked(LINK_SET, DIALOG_RESPONSE, (string)kAv + "|" + sMessage + "|" + (string)iPage, kMenuID);
|
||||
llMessageLinked(LINK_SET, DIALOG_RESPONSE, llList2String(lParams, 0) + "|" + llList2String(lParams, 1) + "|" + llList2String(lParams, 2), llList2String(lParams, 3));
|
||||
}
|
||||
else if (llGetSubString(sCmd, 0, 7) == "timeout:")
|
||||
{
|
||||
llMessageLinked(LINK_SET, DIALOG_TIMEOUT, "", llGetSubString(sCmd, 8, -1));
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (UserCommand(iNum, sStr, kID)) return;
|
||||
else if (iNum == LM_SETTING_RESPONSE)
|
||||
{
|
||||
list lParams = llParseString2List(llToLower(sStr), ["="], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
if (sToken == g_sScript + SPAMSWITCH) MRSBUN = llParseString2List(sValue, [","], []);
|
||||
}
|
||||
}
|
||||
|
||||
listen(integer iChan, string sName, key kID, string sMessage)
|
||||
{
|
||||
integer iMenuIndex = llListFindList(g_lMenus, [iChan]);
|
||||
if (~iMenuIndex)
|
||||
{
|
||||
key kMenuID = llList2Key(g_lMenus, iMenuIndex + 1);
|
||||
key kAv = llList2Key(g_lMenus, iMenuIndex + 4);
|
||||
string sPrompt = llList2String(g_lMenus, iMenuIndex + 5);
|
||||
// SA: null strings should not be kept for dialog buttons
|
||||
list items = llParseString2List(llList2String(g_lMenus, iMenuIndex + 6), ["|"], []);
|
||||
list ubuttons = llParseString2List(llList2String(g_lMenus, iMenuIndex + 7), ["|"], []);
|
||||
integer iPage = llList2Integer(g_lMenus, iMenuIndex + 8);
|
||||
integer iDigits = llList2Integer(g_lMenus, iMenuIndex + 9);
|
||||
integer iAuth = llList2Integer(g_lMenus, iMenuIndex + 10);
|
||||
string sExtraInfo = llList2String(g_lMenus, iMenuIndex + 11);
|
||||
|
||||
RemoveMenuStride(iMenuIndex);
|
||||
|
||||
if (sMessage == MORE) Dialog(kID, sPrompt, items, ubuttons, ++iPage, kMenuID, iDigits, iAuth,sExtraInfo);
|
||||
else if (sMessage == PREV) Dialog(kID, sPrompt, items, ubuttons, --iPage, kMenuID, iDigits, iAuth, sExtraInfo);
|
||||
else if (sMessage == BLANK) Dialog(kID, sPrompt, items, ubuttons, iPage, kMenuID, iDigits, iAuth, sExtraInfo);
|
||||
else {
|
||||
string sAnswer;
|
||||
integer iIndex = llListFindList(ubuttons, [sMessage]);
|
||||
if (iDigits && !~iIndex)
|
||||
{
|
||||
integer iBIndex = (integer) llGetSubString(sMessage, 0, iDigits);
|
||||
sAnswer = llList2String(items, iBIndex);
|
||||
}
|
||||
else sAnswer = sMessage;
|
||||
if (llSubStringIndex(sExtraInfo,"getavi_|")==0){
|
||||
//Debug("Getavi response:"+sAnswer);
|
||||
list lExtraInfo=llParseString2List(sExtraInfo,["|"],[]); //unpack info for avi dialog
|
||||
string REQ=llList2String(lExtraInfo,1); //name of script that originated the request
|
||||
string TYPE=llList2String(lExtraInfo,2); //type string sent in initial request by calling script
|
||||
|
||||
llMessageLinked(LINK_THIS, FIND_AGENT, REQ+"|"+"getavi_"+"|"+(string)kAv+"|"+(string)iAuth+"|"+TYPE+"|"+sAnswer, kMenuID);
|
||||
|
||||
}
|
||||
llMessageLinked(LINK_SET, DIALOG_RESPONSE, (string)kAv + "|" + sAnswer + "|" + (string)iPage + "|" + (string)iAuth, kMenuID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
timer()
|
||||
{
|
||||
CleanList();
|
||||
|
||||
//if list is empty after that, then stop timer
|
||||
|
||||
if (!llGetListLength(g_lMenus) && !llGetListLength(g_lSensorDetails))
|
||||
{
|
||||
//Debug("no active dialogs, stopping timer");
|
||||
llSetTimerEvent(0.0);
|
||||
}
|
||||
}
|
||||
|
||||
changed(integer iChange){
|
||||
if (iChange & CHANGED_OWNER) llResetScript();
|
||||
/*
|
||||
if (iChange & CHANGED_REGION) {
|
||||
if (g_iProfiled){
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
@@ -1,300 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - garble //
|
||||
// version 3.988 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//original by Joy Stipe
|
||||
|
||||
//OpenCollar MESSAGE MAP
|
||||
// messages for authenticating users
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
//integer COMMAND_EVERYONE = 504;
|
||||
//integer COMMAND_OBJECT = 506;
|
||||
//integer COMMAND_RLV_RELAY = 507;
|
||||
integer COMMAND_SAFEWORD = 510;
|
||||
//integer COMMAND_BLACKLIST = 520;
|
||||
//integer COMMAND_WEARERLOCKEDOUT = 521;
|
||||
|
||||
// messages for storing and retrieving values in the settings script
|
||||
integer LM_SETTING_SAVE = 2000;
|
||||
integer LM_SETTING_REQUEST = 2001;
|
||||
integer LM_SETTING_RESPONSE = 2002;
|
||||
integer LM_SETTING_DELETE = 2003;
|
||||
integer LM_SETTING_EMPTY = 2004;
|
||||
|
||||
|
||||
// messages for creating OC menu structure
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
integer MENUNAME_REMOVE = 3003;
|
||||
|
||||
// messages for RLV commands
|
||||
integer RLV_CMD = 6000;
|
||||
integer RLV_REFRESH = 6001;//RLV plugins should reinstate their restrictions upon receiving this message.
|
||||
integer RLV_CLEAR = 6002;//RLV plugins should clear their restriction lists upon receiving this message.
|
||||
|
||||
string g_sParentMenu = "Apps";
|
||||
string GARBLE = "☐ Garble";
|
||||
string UNGARBLE = "☒ Garble";
|
||||
|
||||
string WEARERNAME;
|
||||
|
||||
string SAFE = "RED";
|
||||
key g_kWearer;
|
||||
string gsPref;
|
||||
string gsFir;
|
||||
integer giCRC;
|
||||
integer giGL;
|
||||
integer bOn;
|
||||
integer g_iBinder;
|
||||
key g_kBinder;
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
Notify(key _k, string _m, integer NotifyWearer)
|
||||
{
|
||||
if (_k == g_kWearer) llOwnerSay(_m);
|
||||
else
|
||||
{
|
||||
if (llGetAgentSize(_k)) llRegionSayTo(_k, 0, _m);
|
||||
else llInstantMessage(_k, _m);
|
||||
if (NotifyWearer) llOwnerSay(_m);
|
||||
}
|
||||
}
|
||||
|
||||
string GetScriptID()
|
||||
{
|
||||
// strip away "OpenCollar - " leaving the script's individual name
|
||||
list parts = llParseString2List(llGetScriptName(), ["-"], []);
|
||||
return llStringTrim(llList2String(parts, 1), STRING_TRIM) + "_";
|
||||
}
|
||||
|
||||
string PeelToken(string in, integer slot)
|
||||
{
|
||||
integer i = llSubStringIndex(in, "_");
|
||||
if (!slot) return llGetSubString(in, 0, i);
|
||||
return llGetSubString(in, i + 1, -1);
|
||||
}
|
||||
|
||||
SetPrefix(string in)
|
||||
{
|
||||
if (in != "auto") gsPref = in;
|
||||
else
|
||||
{
|
||||
string sName = llKey2Name(g_kWearer);
|
||||
integer i = llSubStringIndex(sName, " ") + 1;
|
||||
string init = llGetSubString(sName, 0, 0) + llGetSubString(sName, i, i);
|
||||
gsPref = llToLower(init);
|
||||
}
|
||||
//Debug("Prefix set to: " + gsPref);
|
||||
}
|
||||
|
||||
string garble(string _i)
|
||||
{
|
||||
// return punctuations unharmed
|
||||
if (_i == "." || _i == "," || _i == ";" || _i == ":" || _i == "?") return _i;
|
||||
if (_i == "!" || _i == " " || _i == "(" || _i == ")") return _i;
|
||||
// phonetically garble letters that have a rather consistent sound through a gag
|
||||
if (_i == "a" || _i == "e" || _i == "i" || _i == "o" || _i == "u" || _i == "y") return "eh";
|
||||
if (_i == "c" || _i == "k" || _i == "q") return "k";
|
||||
if (_i == "m") return "w";
|
||||
if (_i == "s" || _i == "z") return "shh";
|
||||
if (_i == "b" || _i == "p" || _i == "v") return "f";
|
||||
if (_i == "x") return "ek";
|
||||
// randomly garble everything else
|
||||
if (llFloor(llFrand(10.0) < 1)) return _i;
|
||||
return "nh";
|
||||
}
|
||||
|
||||
bind(key _k, integer auth)
|
||||
{
|
||||
bOn = TRUE;
|
||||
g_iBinder = auth;
|
||||
g_kBinder = _k;
|
||||
llMessageLinked(LINK_SET, MENUNAME_RESPONSE, g_sParentMenu + "|" + UNGARBLE, "");
|
||||
llMessageLinked(LINK_SET, MENUNAME_REMOVE, g_sParentMenu + "|" + GARBLE, "");
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, GetScriptID() + "Binder=" + (string)_k + "," + (string)auth, "");
|
||||
// Garbler only listen to the wearer, as a failsafe
|
||||
giGL = llListen(giCRC, "", g_kWearer, "");
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "redirchat:" + (string)giCRC + "=add,chatshout=n,sendim=n", NULL_KEY);
|
||||
if (llGetAgentSize(_k) != ZERO_VECTOR)
|
||||
{
|
||||
if (_k != g_kWearer) llOwnerSay(llKey2Name(_k) + " ordered you to be quiet");
|
||||
Notify(_k, WEARERNAME + "'s speech is now garbled", FALSE);
|
||||
}
|
||||
llMessageLinked(LINK_THIS, auth, "menu "+g_sParentMenu, _k);
|
||||
}
|
||||
|
||||
release(key _k ,integer auth)
|
||||
{
|
||||
bOn = g_iBinder = FALSE;
|
||||
g_kBinder = NULL_KEY;
|
||||
llMessageLinked(LINK_SET, MENUNAME_RESPONSE, g_sParentMenu + "|" + GARBLE, "");
|
||||
llMessageLinked(LINK_SET, MENUNAME_REMOVE, g_sParentMenu + "|" + UNGARBLE, "");
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, GetScriptID() + "Binder", "");
|
||||
llListenRemove(giGL);
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "chatshout=y,sendim=y,redirchat:" + (string)giCRC + "=rem", NULL_KEY);
|
||||
if (llGetAgentSize(_k) != ZERO_VECTOR)
|
||||
{
|
||||
if (_k != g_kWearer) llOwnerSay("You are free to speak again");
|
||||
Notify(_k, WEARERNAME + " is allowed to talk again", FALSE);
|
||||
}
|
||||
llMessageLinked(LINK_THIS, auth, "menu "+g_sParentMenu, _k);
|
||||
}
|
||||
|
||||
integer UserCommand(integer iNum, string sStr, key kID)
|
||||
{
|
||||
if (iNum < COMMAND_OWNER || iNum > COMMAND_WEARER) return FALSE;
|
||||
if (llToLower(sStr) == "settings")
|
||||
{
|
||||
if (bOn) Notify(kID, "Garbled.", FALSE);
|
||||
else Notify(kID, "Not Garbled.", FALSE);
|
||||
}
|
||||
else if (sStr == "menu " + GARBLE || llToLower(sStr) == "garble on")
|
||||
{
|
||||
if (bOn && g_kBinder == kID) Notify(kID, "I can't garble 'er any more, Jim! She's only a subbie!", FALSE);
|
||||
else if (iNum > g_iBinder) bind(kID, iNum);
|
||||
}
|
||||
else if (sStr == "menu " + UNGARBLE || llToLower(sStr) == "garble off")
|
||||
{
|
||||
if (iNum <= g_iBinder) release(kID,iNum);
|
||||
else Notify(kID, "Sorry, " + llKey2Name(kID) + ", the garbler can only be released by someone with an equal or higher rank than the person who set it.", FALSE);
|
||||
}
|
||||
else return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
default {
|
||||
on_rez(integer _r) {
|
||||
if (llGetOwner() != g_kWearer) llResetScript();
|
||||
}
|
||||
|
||||
state_entry() {
|
||||
//llSetMemoryLimit(65536); //this script needs to be profiled, and its memory limited
|
||||
g_kWearer = llGetOwner();
|
||||
WEARERNAME = llKey2Name(g_kWearer); //quick and dirty default, will get replaced by value from settings
|
||||
|
||||
giCRC = llRound(llFrand(499) + 1);
|
||||
if (bOn) release(g_kWearer,0);
|
||||
llMessageLinked(LINK_THIS, LM_SETTING_REQUEST, "listener_safeword", "");
|
||||
llMessageLinked(LINK_THIS, LM_SETTING_REQUEST, GetScriptID() + "Binder", "");
|
||||
//Debug("Starting");
|
||||
}
|
||||
listen(integer _c, string _n, key _k, string _m)
|
||||
{
|
||||
if (_c == giCRC)
|
||||
{
|
||||
if (_k == g_kWearer)
|
||||
{
|
||||
string sw = _m;
|
||||
integer i = llStringLength(WEARERNAME);
|
||||
if (llGetSubString(sw, 0, 1) == "((" && llGetSubString(sw, -2, -1) == "))")
|
||||
sw = llGetSubString(sw, 2, -3);
|
||||
if (llSubStringIndex(sw, gsPref) == 0)
|
||||
{
|
||||
integer i = llStringLength(sw);
|
||||
sw = llGetSubString(sw, i, -1);
|
||||
}
|
||||
if (sw == SAFE) // Wearer used the safeword
|
||||
{
|
||||
llMessageLinked(LINK_SET, COMMAND_SAFEWORD, "", "");
|
||||
llOwnerSay("You used your safeword, your owner will be notified you did.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
string sOut;
|
||||
integer iL;
|
||||
integer iR;
|
||||
for (iL = 0; iL < llStringLength(_m); ++iL)
|
||||
sOut += garble(llToLower(llGetSubString(_m, iL, iL)));
|
||||
string sMe = llGetObjectName();
|
||||
llSetObjectName("");
|
||||
llWhisper(0, "/me " +WEARERNAME+" mumbles: " + sOut);
|
||||
llSetObjectName(sMe);
|
||||
return;
|
||||
}
|
||||
}
|
||||
link_message(integer iL, integer iM, string sM, key kM)
|
||||
{
|
||||
if (UserCommand(iM, sM, kM)) return;
|
||||
if (iM == MENUNAME_REQUEST && sM == g_sParentMenu)
|
||||
{
|
||||
if (bOn) llMessageLinked(LINK_SET, MENUNAME_RESPONSE, g_sParentMenu + "|" + UNGARBLE, "");
|
||||
else llMessageLinked(LINK_SET, MENUNAME_RESPONSE, g_sParentMenu + "|" + GARBLE, "");
|
||||
}
|
||||
else if (iM == RLV_REFRESH)
|
||||
{
|
||||
if (bOn) llMessageLinked(LINK_SET, RLV_CMD, "redirchat:" + (string)giCRC + "=add,chatshout=n,sendim=n", NULL_KEY);
|
||||
else llMessageLinked(LINK_SET, RLV_CMD, "chatshout=y,sendim=y,redirchat:" + (string)giCRC + "=rem", NULL_KEY);
|
||||
}
|
||||
else if (iM == RLV_CLEAR) release(kM,iL);
|
||||
else if (iM == LM_SETTING_RESPONSE)
|
||||
{
|
||||
list lP = llParseString2List(sM, ["="], []);
|
||||
string sT = llList2String(lP, 0);
|
||||
string sV = llList2String(lP, 1);
|
||||
if (sT == GetScriptID() + "Binder")
|
||||
{
|
||||
lP = llParseString2List(sV, [","], []);
|
||||
g_kBinder = (key)llList2String(lP, 0);
|
||||
g_iBinder = (integer)llList2String(lP, 1);
|
||||
bind(g_kBinder, g_iBinder);
|
||||
}
|
||||
else if (sT == "listener_safeword") SAFE = sV;
|
||||
else if (sT == "Global_prefix")
|
||||
{
|
||||
if (sV == "") sV = "auto";
|
||||
SetPrefix(sV);
|
||||
} else if (sT=="Global_WearerName") WEARERNAME=sV;
|
||||
}
|
||||
else if (iM == LM_SETTING_EMPTY && sM == GetScriptID() + "Binder") release(kM,iL);
|
||||
else if (iM == LM_SETTING_SAVE) // Have to update the safeword if it is changed between resets
|
||||
{
|
||||
integer iS = llSubStringIndex(sM, "=");
|
||||
string tok = llGetSubString(sM, 0, iS - 1);
|
||||
string val = llGetSubString(sM, iS + 1, -1);
|
||||
if (tok == "listener_safeword") SAFE = val;
|
||||
else if (tok == "Global_prefix")
|
||||
{
|
||||
if (val == "") val = "auto";
|
||||
SetPrefix(val);
|
||||
}
|
||||
}
|
||||
if (iM == COMMAND_SAFEWORD) release(kM,iL);
|
||||
}
|
||||
|
||||
/*
|
||||
changed(integer iChange) {
|
||||
if (iChange & CHANGED_REGION) {
|
||||
if (g_iProfiled) {
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
@@ -1,540 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - hide //
|
||||
// version 3.988 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//on getting menu request, give element menu
|
||||
//on getting element type, give Hide and Show buttons
|
||||
//on hearing "hide" or "show", do that for the current element type
|
||||
|
||||
string g_sParentMenu = "Appearance";
|
||||
string g_sSubMenu = "Hide/Show";
|
||||
|
||||
//MESSAGE MAP
|
||||
integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
|
||||
//integer SEND_IM = 1000; deprecated. each script should send its own IMs now. This is to reduce even the tiny bt of lag caused by having IM slave scripts
|
||||
integer POPUP_HELP = 1001;
|
||||
|
||||
integer LM_SETTING_SAVE = 2000;//scripts send messages on this channel to have settings saved to httpdb
|
||||
//str must be in form of "token=value"
|
||||
integer LM_SETTING_REQUEST = 2001;//when startup, scripts send requests for settings on this channel
|
||||
integer LM_SETTING_RESPONSE = 2002;//the httpdb script will send responses on this channel
|
||||
integer LM_SETTING_DELETE = 2003;//delete token from DB
|
||||
integer LM_SETTING_EMPTY = 2004;//sent when a token has no value in the httpdb
|
||||
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
integer MENUNAME_REMOVE = 3003;
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
integer TOUCH_REQUEST = -9500;
|
||||
integer TOUCH_CANCEL = -9501;
|
||||
integer TOUCH_RESPONSE = -9502;
|
||||
integer TOUCH_EXPIRE = -9503;
|
||||
|
||||
//5000 block is reserved for IM slaves
|
||||
string CTYPE = "Collar";
|
||||
string HIDE = "☒";
|
||||
string SHOW = "☐";
|
||||
string UPMENU = "BACK";
|
||||
|
||||
string g_sScript;
|
||||
|
||||
list g_lElements;
|
||||
list g_lGlows; // 2-strided list [integer link_num, float glow]
|
||||
|
||||
key g_kWearer;
|
||||
|
||||
key g_kDialogID;
|
||||
key g_kTouchID;
|
||||
|
||||
list g_lAlphaSettings;
|
||||
|
||||
string g_sIgnore = "nohide";
|
||||
list g_lButtons;
|
||||
|
||||
integer g_iAppLock = FALSE;
|
||||
string g_sAppLockToken = "Appearance_Lock";
|
||||
|
||||
integer g_iAllAlpha = 1 ;
|
||||
|
||||
integer g_iHasElements = FALSE;
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
key Dialog(key kRCPT, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth)
|
||||
{
|
||||
key kID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kRCPT + "|" + sPrompt + "|" + (string)iPage + "|" + llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kID);
|
||||
//Debug("Made menu.");
|
||||
return kID;
|
||||
}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer)
|
||||
{
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else
|
||||
{
|
||||
if (llGetAgentSize(kID)!=ZERO_VECTOR) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
string Float2String(float in)
|
||||
{
|
||||
string out = (string)in;
|
||||
integer i = llSubStringIndex(out, ".");
|
||||
while ((~i) && llStringLength(llGetSubString(out, i + 2, -1)) && llGetSubString(out, -1, -1) == "0")
|
||||
{
|
||||
out = llGetSubString(out, 0, -2);
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
key TouchRequest(key kRCPT, integer iTouchStart, integer iTouchEnd, integer iAuth)
|
||||
{
|
||||
key kID = llGenerateKey();
|
||||
integer iFlags = 0;
|
||||
if (iTouchStart) iFlags = iFlags | 0x01;
|
||||
if (iTouchEnd) iFlags = iFlags | 0x02;
|
||||
llMessageLinked(LINK_SET, TOUCH_REQUEST, (string)kRCPT + "|" + (string)iFlags + "|" + (string)iAuth, kID);
|
||||
return kID;
|
||||
}
|
||||
|
||||
UpdateElementAlpha(string element_to_set, integer iAlpha)
|
||||
{
|
||||
//loop through links, setting alpha if element type matches what we're changing
|
||||
//root prim is 1, so start at 2
|
||||
integer n;
|
||||
integer iLinkCount = llGetNumberOfPrims();
|
||||
for (n = 2; n <= iLinkCount; n++)
|
||||
{
|
||||
string sElement = ElementType(n);
|
||||
if (sElement == element_to_set)
|
||||
{
|
||||
llSetLinkAlpha(n, (float)iAlpha, ALL_SIDES);
|
||||
UpdateGlow(n,iAlpha);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SetAllElementsAlpha(integer iAlpha)
|
||||
{
|
||||
if(g_iAllAlpha == iAlpha) return ;
|
||||
g_iAllAlpha = iAlpha ;
|
||||
if(iAlpha == 0) // then hide all
|
||||
{
|
||||
SaveAllGlows(); // save all prims glows before
|
||||
llSetLinkPrimitiveParamsFast(LINK_SET, [PRIM_GLOW, ALL_SIDES, 0.0]); // set all no glow
|
||||
}
|
||||
llSetLinkAlpha(LINK_SET, (float)iAlpha, ALL_SIDES);
|
||||
if(iAlpha == 0) return ;
|
||||
RestoreAllGlows();
|
||||
//update alpha for all elements to fAlpha (either 1.0 or 0.0 here)
|
||||
integer n;
|
||||
integer iStop = llGetListLength(g_lElements);
|
||||
for (n = 0; n < iStop; n++)
|
||||
{
|
||||
string sElement = llList2String(g_lElements, n);
|
||||
integer iIndex = llListFindList(g_lAlphaSettings, [sElement]);
|
||||
if(iIndex !=-1)
|
||||
{
|
||||
iAlpha = llList2Integer(g_lAlphaSettings, iIndex+1);
|
||||
UpdateElementAlpha(sElement,iAlpha);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SetElementAlpha(string element_to_set, integer iAlpha)
|
||||
{
|
||||
if(g_iAllAlpha == 1)
|
||||
{
|
||||
//loop through links, setting alpha if element type matches what we're changing
|
||||
//root prim is 1, so start at 2
|
||||
integer n;
|
||||
integer iLinkCount = llGetNumberOfPrims();
|
||||
for (n = 2; n <= iLinkCount; n++)
|
||||
{
|
||||
string sElement = ElementType(n);
|
||||
if (sElement == element_to_set)
|
||||
{
|
||||
llSetLinkAlpha(n, (float)iAlpha, ALL_SIDES);
|
||||
UpdateGlow(n,iAlpha);
|
||||
}
|
||||
}
|
||||
}
|
||||
//update element in list of settings
|
||||
integer i = llListFindList(g_lAlphaSettings, [element_to_set]);
|
||||
if (i == -1) g_lAlphaSettings += [element_to_set, (string)iAlpha];
|
||||
else g_lAlphaSettings = llListReplaceList(g_lAlphaSettings, [(string)iAlpha], i+1, i+1);
|
||||
}
|
||||
|
||||
SaveElementAlpha(string element_to_set, integer iAlpha)
|
||||
{
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript+element_to_set + "=" + (string)iAlpha, "");
|
||||
}
|
||||
|
||||
ElementMenu(key kAv, integer iAuth)
|
||||
{
|
||||
string sPrompt = "\nWhich element of the " + CTYPE + " would you like to hide or show?\n\n☒: element is shown\n☐: element is hidden\n\nChoose *Touch* if you want to select the part by directly clicking on the " + CTYPE + ".";
|
||||
g_lButtons = [];
|
||||
|
||||
if (g_iAllAlpha) g_lButtons += HIDE + " " + CTYPE ;
|
||||
else g_lButtons += SHOW + " " + CTYPE ;
|
||||
|
||||
//loop through elements, show appropriate buttons and prompts if hidden or shown
|
||||
integer n;
|
||||
integer iStop = llGetListLength(g_lElements);
|
||||
for (n = 0; n < iStop; n++)
|
||||
{
|
||||
string sElement = llList2String(g_lElements, n);
|
||||
integer iIndex = llListFindList(g_lAlphaSettings, [sElement]);
|
||||
if (iIndex == -1)
|
||||
{
|
||||
g_lButtons += HIDE + " " + sElement;
|
||||
}
|
||||
else
|
||||
{
|
||||
integer iAlpha = llList2Integer(g_lAlphaSettings, iIndex + 1);
|
||||
if (iAlpha) g_lButtons += HIDE + " " + sElement;
|
||||
else g_lButtons += SHOW + " " + sElement;
|
||||
}
|
||||
}
|
||||
|
||||
g_kDialogID=Dialog(kAv, sPrompt, g_lButtons, ["*Touch*", UPMENU],0, iAuth);
|
||||
}
|
||||
|
||||
string ElementType(integer link)
|
||||
{
|
||||
string sDesc = llStringTrim(llList2String(llGetLinkPrimitiveParams(link,[PRIM_DESC]),0),STRING_TRIM);
|
||||
//each prim should have <elementname> in its description, plus "nohide", if you want the prim to
|
||||
//not appear in the hede menu
|
||||
if (sDesc == "" || sDesc == "(No Description)") return g_sIgnore ;
|
||||
list lParams = llParseString2List(sDesc, ["~"], []);
|
||||
if ( ~llListFindList(lParams,[g_sIgnore]) ) return g_sIgnore ;
|
||||
else return llList2String(lParams, 0);
|
||||
}
|
||||
|
||||
BuildElementList()
|
||||
{
|
||||
g_lElements = [];
|
||||
integer link;
|
||||
integer count = llGetNumberOfPrims();
|
||||
|
||||
//root prim is 1, so start at 2
|
||||
for (link = 2; link <= count; link++)
|
||||
{
|
||||
string sElement = ElementType(link);
|
||||
if (llListFindList(g_lElements,[sElement])==-1 && sElement != g_sIgnore)
|
||||
{
|
||||
g_lElements += [sElement];
|
||||
}
|
||||
}
|
||||
g_lElements = llListSort(g_lElements, 1, TRUE);
|
||||
|
||||
if (llGetListLength(g_lElements) > 0 ) g_iHasElements = TRUE;
|
||||
else g_iHasElements = FALSE;
|
||||
}
|
||||
|
||||
|
||||
UpdateGlow(integer link, integer alpha)
|
||||
{
|
||||
if (alpha == 0)
|
||||
{
|
||||
SavePrimGlow(link);
|
||||
llSetLinkPrimitiveParamsFast(link, [PRIM_GLOW, ALL_SIDES, 0.0]); // set no glow;
|
||||
}
|
||||
else RestorePrimGlow(link);
|
||||
}
|
||||
|
||||
SavePrimGlow(integer link)
|
||||
{
|
||||
float glow = llList2Float(llGetLinkPrimitiveParams(link,[PRIM_GLOW,0]),0); // get current prim glow
|
||||
integer i = llListFindList(g_lGlows,[link]); // search in list
|
||||
if (glow > 0) // if glow
|
||||
{
|
||||
if (i !=-1) g_lGlows = llListReplaceList(g_lGlows,[glow],i+1,i+1); // update if present
|
||||
else g_lGlows += [link, glow]; // add if absent
|
||||
}
|
||||
else if (i !=-1) g_lGlows = llDeleteSubList(g_lGlows,i,i+1); // remove if present
|
||||
}
|
||||
|
||||
RestorePrimGlow(integer link)
|
||||
{
|
||||
integer i = llListFindList(g_lGlows,[link]);
|
||||
if (i != -1) llSetLinkPrimitiveParamsFast(link, [PRIM_GLOW, ALL_SIDES, llList2Float(g_lGlows, i+1)]);
|
||||
}
|
||||
|
||||
SaveAllGlows()
|
||||
{
|
||||
integer link;
|
||||
integer count = llGetNumberOfPrims();
|
||||
//root prim is 1, so start at 2
|
||||
for (link = 1; link < count; link++)
|
||||
{
|
||||
SavePrimGlow(link);
|
||||
}
|
||||
}
|
||||
|
||||
RestoreAllGlows()
|
||||
{
|
||||
integer link;
|
||||
integer count = llGetNumberOfPrims();
|
||||
//root prim is 1, so start at 2
|
||||
for (link = 1; link < count; link++)
|
||||
{
|
||||
RestorePrimGlow(link);
|
||||
}
|
||||
}
|
||||
|
||||
MakeOneButtonMenu()
|
||||
{
|
||||
if (g_iAllAlpha)
|
||||
{
|
||||
llMessageLinked(LINK_SET, MENUNAME_REMOVE, g_sParentMenu+"|"+HIDE+" Stealth", "");
|
||||
llMessageLinked(LINK_SET, MENUNAME_RESPONSE, g_sParentMenu+"|"+SHOW+" Stealth", "");
|
||||
}
|
||||
else
|
||||
{
|
||||
llMessageLinked(LINK_SET, MENUNAME_REMOVE, g_sParentMenu+"|"+SHOW+" Stealth", "");
|
||||
llMessageLinked(LINK_SET, MENUNAME_RESPONSE, g_sParentMenu+"|"+HIDE+" Stealth", "");
|
||||
}
|
||||
}
|
||||
|
||||
integer UserCommand(integer iNum, string sStr, key kID)
|
||||
{
|
||||
if (iNum > COMMAND_WEARER || iNum < COMMAND_OWNER) return FALSE; // sanity check
|
||||
|
||||
list lParams = llParseString2List(sStr, [" "], []);
|
||||
string sCommand = llToLower(llList2String(lParams, 0));
|
||||
string sValue = llList2String(lParams, 1);
|
||||
|
||||
if (!g_iAppLock || iNum == COMMAND_OWNER) // if unlocked or Owner can do it
|
||||
{
|
||||
if (sStr == "menu " + g_sSubMenu || sStr == "hidemenu") ElementMenu(kID, iNum) ;
|
||||
else if (sCommand == "hide")
|
||||
{
|
||||
if(sValue == "" || sValue == CTYPE)
|
||||
{
|
||||
SetAllElementsAlpha(0);
|
||||
if (!g_iHasElements) MakeOneButtonMenu();
|
||||
}
|
||||
else
|
||||
{
|
||||
SetElementAlpha(sValue, 0);
|
||||
SaveElementAlpha(sValue, 0);
|
||||
}
|
||||
}
|
||||
else if (sCommand == "stealth")
|
||||
{
|
||||
if (g_iAllAlpha == 0) {
|
||||
SetAllElementsAlpha(1);
|
||||
}
|
||||
else {
|
||||
SetAllElementsAlpha(0);
|
||||
}
|
||||
|
||||
}
|
||||
else if (sCommand == "show")
|
||||
{
|
||||
if(sValue == "" || sValue == CTYPE)
|
||||
{
|
||||
SetAllElementsAlpha(1);
|
||||
if (!g_iHasElements) MakeOneButtonMenu();
|
||||
}
|
||||
else
|
||||
{
|
||||
SetElementAlpha(sValue, 1);
|
||||
SaveElementAlpha(sValue, 1);
|
||||
}
|
||||
}
|
||||
else if (sStr == "menu "+HIDE+" Stealth")
|
||||
{
|
||||
SetAllElementsAlpha(1);
|
||||
if (!g_iHasElements) MakeOneButtonMenu();
|
||||
llMessageLinked(LINK_SET, iNum, "menu " + g_sParentMenu, kID);
|
||||
}
|
||||
else if (sStr == "menu "+SHOW+" Stealth")
|
||||
{
|
||||
SetAllElementsAlpha(0) ;
|
||||
if (!g_iHasElements) MakeOneButtonMenu();
|
||||
llMessageLinked(LINK_SET, iNum, "menu " + g_sParentMenu, kID);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (sStr == "menu " + g_sSubMenu || sStr == "hidemenu" || sCommand == "hide" || sCommand == "show")
|
||||
Notify(kID,"The appearance of the " + CTYPE + " is locked. You cannot access this menu now!", FALSE);
|
||||
}
|
||||
|
||||
if (iNum == COMMAND_OWNER && sCommand == "lockappearance")
|
||||
{
|
||||
if (sValue == "0") g_iAppLock = FALSE;
|
||||
else if (sValue == "1") g_iAppLock = TRUE;
|
||||
}
|
||||
else if (iNum == COMMAND_WEARER && sStr == "runaway")
|
||||
{
|
||||
SetAllElementsAlpha(1);
|
||||
}
|
||||
|
||||
return TRUE ;
|
||||
}
|
||||
|
||||
|
||||
// Get Group or Token, 0=Group, 1=Token, 2=Value
|
||||
string SplitTokenValue(string in, integer slot)
|
||||
{
|
||||
string out ;
|
||||
if (slot==0) out = llGetSubString(in, 0, llSubStringIndex(in, "_") );
|
||||
else if (slot==1) out = llGetSubString(in, llSubStringIndex(in, "_")+1, llSubStringIndex(in, "=")-1);
|
||||
else if (slot==2) out = llGetSubString(in, llSubStringIndex(in, "=")+1, -1);
|
||||
return out ;
|
||||
}
|
||||
|
||||
default {
|
||||
on_rez(integer iParam) {
|
||||
g_iAllAlpha=0;
|
||||
if (llGetAlpha(ALL_SIDES)>0) g_iAllAlpha=1;
|
||||
if (!g_iHasElements) BuildElementList();
|
||||
}
|
||||
|
||||
state_entry() {
|
||||
//llSetMemoryLimit(65536); //this script needs to be profiled, and its memory limited
|
||||
BuildElementList();
|
||||
g_sScript = "hide_";
|
||||
g_kWearer = llGetOwner();
|
||||
//Debug("Starting");
|
||||
}
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID)
|
||||
{
|
||||
if (UserCommand(iNum, sStr, kID)) return;
|
||||
|
||||
else if (iNum == LM_SETTING_RESPONSE)
|
||||
{
|
||||
string sGroup = SplitTokenValue(sStr, 0);
|
||||
string sToken = SplitTokenValue(sStr, 1);
|
||||
string sValue = SplitTokenValue(sStr, 2);
|
||||
if (sGroup == g_sScript)
|
||||
{
|
||||
SetElementAlpha(sToken, (integer)sValue);
|
||||
}
|
||||
else if (sGroup+sToken == g_sAppLockToken)
|
||||
{
|
||||
g_iAppLock = (integer)sValue;
|
||||
}
|
||||
else if (sGroup+sToken == "Global_CType") CTYPE = sValue;
|
||||
}
|
||||
else if (iNum == MENUNAME_REQUEST && sStr == g_sParentMenu)
|
||||
{
|
||||
if (g_iHasElements) llMessageLinked(LINK_SET, MENUNAME_RESPONSE, g_sParentMenu + "|" + g_sSubMenu, "");
|
||||
else MakeOneButtonMenu() ;
|
||||
}
|
||||
else if (iNum == DIALOG_RESPONSE)
|
||||
{
|
||||
if (kID==g_kDialogID)
|
||||
{
|
||||
//got a menu response meant for us. pull out values
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
|
||||
if (sMessage == UPMENU)
|
||||
{
|
||||
//main menu
|
||||
llMessageLinked(LINK_SET, iAuth, "menu " + g_sParentMenu, kAv);
|
||||
}
|
||||
else if (sMessage == "*Touch*")
|
||||
{
|
||||
Notify(kAv, "Please touch the part of the " + CTYPE + " you want to hide or show. You can press ctr+alt+T to see invisible parts.", FALSE);
|
||||
g_kTouchID = TouchRequest(kAv, TRUE, FALSE, iAuth);
|
||||
}
|
||||
else
|
||||
{
|
||||
//get "Hide" or "Show" and element name
|
||||
list lParams = llParseString2List(sMessage, [" "], []);
|
||||
string sCmd = llList2String(lParams, 0);
|
||||
string sElement = llList2String(lParams, 1);
|
||||
if (sCmd == HIDE ) sCmd = "hide";
|
||||
else if (sCmd == SHOW ) sCmd = "show";
|
||||
UserCommand(iAuth, sCmd + " " + sElement, kAv);
|
||||
ElementMenu(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (iNum == TOUCH_RESPONSE)
|
||||
{
|
||||
if (kID == g_kTouchID)
|
||||
{
|
||||
list lParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lParams, 0);
|
||||
integer iAuth = (integer)llList2String(lParams, 1);
|
||||
integer iLinkNumber = (integer)llList2String(lParams, 3);
|
||||
|
||||
string sElement = ElementType(iLinkNumber);
|
||||
if (sElement != g_sIgnore)
|
||||
{
|
||||
integer iIndex = llListFindList(g_lAlphaSettings, [sElement]);
|
||||
integer iAlpha;
|
||||
if (iIndex == -1) iAlpha = 1; // assuming visible
|
||||
else iAlpha = llList2Integer(g_lAlphaSettings, iIndex + 1);
|
||||
Notify(kAv, "You selected \"" + sElement+"\". Toggling its transparency.", FALSE);
|
||||
SetElementAlpha(sElement, !iAlpha);
|
||||
SaveElementAlpha(sElement, !iAlpha);
|
||||
}
|
||||
else
|
||||
{
|
||||
Notify(kAv, "You selected a prim which is not hideable. You can try again.", FALSE);
|
||||
}
|
||||
ElementMenu(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
changed(integer change) {
|
||||
if (change & CHANGED_LINK) BuildElementList();
|
||||
if (change & CHANGED_OWNER) llResetScript();
|
||||
/*
|
||||
if (iChange & CHANGED_REGION) {
|
||||
if (g_iProfiled) {
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,692 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - label //
|
||||
// version 3.988 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
string g_sParentMenu = "Apps";
|
||||
string g_sSubMenu = "Label";
|
||||
|
||||
key g_kWearer;
|
||||
|
||||
integer g_iAppLock = FALSE;
|
||||
string g_sAppLockToken = "Appearance_Lock";
|
||||
|
||||
//opencollar MESSAGE MAP
|
||||
integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
|
||||
integer POPUP_HELP = 1001;
|
||||
|
||||
integer LM_SETTING_SAVE = 2000;//scripts send messages on this channel to have settings saved to httpdb
|
||||
//str must be in form of "token=value"
|
||||
integer LM_SETTING_REQUEST = 2001;//when startup, scripts send requests for settings on this channel
|
||||
integer LM_SETTING_RESPONSE = 2002;//the httpdb script will send responses on this channel
|
||||
integer LM_SETTING_DELETE = 2003;//delete token from DB
|
||||
integer LM_SETTING_EMPTY = 2004;//sent when a token has no value in the httpdb
|
||||
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
integer MENUNAME_REMOVE = 3003;
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
integer g_iCharLimit = -1;
|
||||
|
||||
string UPMENU = "BACK";
|
||||
string CTYPE = "collar";
|
||||
|
||||
string g_sTextMenu = "Set Label";
|
||||
string g_sFontMenu = "Font";
|
||||
string g_sColorMenu = "Color";
|
||||
|
||||
key g_kDialogID;
|
||||
key g_kTBoxID;
|
||||
key g_kFontID;
|
||||
key g_kColorID;
|
||||
|
||||
list g_lColours=[
|
||||
"Gray Shade",<0.70588, 0.70588, 0.70588>,
|
||||
"Gold Shade",<0.69020, 0.61569, 0.43529>,
|
||||
"Baby Pink",<1.00000, 0.52157, 0.76078>,
|
||||
"Hot Pink",<1.00000, 0.05490, 0.72157>,
|
||||
"Firefighter",<0.88627, 0.08627, 0.00392>,
|
||||
"Flame",<0.92941, 0.43529, 0.00000>,
|
||||
"Matrix",<0.07843, 1.00000, 0.07843>,
|
||||
"Electricity",<0.00000, 0.46667, 0.92941>,
|
||||
"Violet Wand",<0.63922, 0.00000, 0.78824>,
|
||||
"Black",<0.00000, 0.00000, 0.00000>,
|
||||
"White",<1.00000, 1.00000, 1.00000>
|
||||
];
|
||||
|
||||
integer g_iScroll = FALSE;
|
||||
integer g_iShow = TRUE;
|
||||
vector g_vColor;
|
||||
|
||||
string g_sLabelText = "";
|
||||
|
||||
float g_iRotIncrement = 11.75;
|
||||
// defaults for cylinders
|
||||
vector g_vGridOffset;
|
||||
vector g_vRepeats;
|
||||
vector g_vOffset;
|
||||
|
||||
////////////////////////////////////////////
|
||||
// Changed for the OpenColar label, only one face per prim on a cut cylinder,
|
||||
// HEAVILY reduced to what we need, else functions removed for easier reading
|
||||
// Lulu Pink 11/2008
|
||||
//
|
||||
// XyzzyText v2.1.UTF8 (UTF8-support) by Salahzar Stenvaag
|
||||
// XyzzyText v2.1 Script (Set Line Color) by Huney Jewell
|
||||
// XyzzyText v2.0 Script (5 Face, Single Texture)
|
||||
//
|
||||
// Heavily Modified by Thraxis Epsilon, Gigs Taggart 5/2007 and Strife Onizuka 8/2007
|
||||
// Rewrite to allow one-script-per-object operation w/ optional slaves
|
||||
// Enable prim-label functionality
|
||||
// Enabled Banking
|
||||
//
|
||||
// Modified by Kermitt Quirk 19/01/2006
|
||||
// To add support for 5 face prim instead of 3
|
||||
//
|
||||
// Core XyText Originally Written by Xylor Baysklef
|
||||
//
|
||||
//
|
||||
////////////////////////////////////////////
|
||||
|
||||
/////////////// CONSTANTS ///////////////////
|
||||
// XyText Message Map.
|
||||
integer DISPLAY_STRING = 204000;
|
||||
integer DISPLAY_EXTENDED = 204001;
|
||||
integer REMAP_INDICES = 204002;
|
||||
integer RESET_INDICES = 204003;
|
||||
//integer SET_FADE_OPTIONS = 204004;
|
||||
integer SET_FONT_TEXTURE = 204005;
|
||||
//integer SET_LINE_COLOR = 204006;
|
||||
//integer SET_COLOR = 204007;
|
||||
integer RESCAN_LINKSET = 204008;
|
||||
|
||||
// This is an extended character escape sequence.
|
||||
string ESCAPE_SEQUENCE = "\\e";
|
||||
|
||||
// This is used to get an index for the extended character.
|
||||
string EXTENDED_INDEX = "12345";
|
||||
|
||||
// Face numbers.
|
||||
// only one face needed. -1 lets setup function know that it hasn't run yet
|
||||
integer FACE = -1;
|
||||
|
||||
// Used to hide the text after a fade-out.
|
||||
//key TRANSPARENT = "701917a8-d614-471f-13dd-5f4644e36e3c";
|
||||
//key null_key = NULL_KEY;
|
||||
///////////// END CONSTANTS ////////////////
|
||||
|
||||
///////////// GLOBAL VARIABLES ///////////////
|
||||
// This is the key of the font we are displaying.
|
||||
//key gFontTexture = "b2e7394f-5e54-aa12-6e1c-ef327b6bed9e";
|
||||
// 48 pixel font key g_kFontTexture = "f226766c-c5ac-690e-9018-5a37367ae95a";
|
||||
// 38 pixel font
|
||||
//key g_kFontTexture= "ac955f98-74bb-290f-7eb6-dca54e5e4491";
|
||||
//key g_kFontTexture= "e5efeead-c69e-eb81-e7bd-dad2bb787d2b"; // Bitstream Vera Monotype // SALAHZAR
|
||||
|
||||
//key g_kFontTexture= "41b57e2d-e60b-01f0-8f23-e109f532d01d"; //oldEnglish Chars
|
||||
//key g_kFontTexture = "0d3c99c1-5df4-638c-0f51-ed8591ae8b93"; //Bitstream Vera Serif
|
||||
//key g_kFontTexture = "a37110e0-5a1f-810d-f999-d0b88568adf0"; //Apple Chancery
|
||||
//key g_kFontTexture = "020f8783-0d0d-88e3-487d-df3e07d068e7"; //Lucida Bright
|
||||
//key g_kFontTexture = "fa87184c-35ca-5143-fe24-cdf70e427a09"; // monotype Corsiva
|
||||
//key g_kFontTexture = "34835ebf-b13a-a054-46bc-678d0849025c"; // DejaVu Sans Mono
|
||||
//key g_kFontTexture = "316b2161-0669-1796-fec2-976526a29efd";//Andale Mono, Etched
|
||||
//key g_kFontTexture = "f38c6993-d85e-cffb-fce9-7aed87b80c2e";//andale mono etched 45 point
|
||||
//key g_kFontTexture = "bf2b6c21-e3d7-877b-15dc-ad666b6c14fe";//verily serif 40 etched, on white
|
||||
key g_kFontTexture = NULL_KEY;
|
||||
list g_lFonts = [
|
||||
"Andale 1", "ccc5a5c9-6324-d8f8-e727-ced142c873da", //
|
||||
"Andale 2", "8e10462f-f7e9-0387-d60b-622fa60aefbc", //not ideally aligned
|
||||
"Serif 1", "2c1e3fa3-9bdb-2537-e50d-2deb6f2fa22c",
|
||||
"Serif 2", "bf2b6c21-e3d7-877b-15dc-ad666b6c14fe",
|
||||
"LCD", "014291dc-7fd5-4587-413a-0d690a991ae1"
|
||||
];
|
||||
|
||||
// All displayable characters. Default to ASCII order.
|
||||
string g_sCharIndex;
|
||||
list g_lDecode=[]; // to handle special characters from CP850 page for european countries // SALAHZAR
|
||||
string g_sScript;
|
||||
|
||||
/////////// END GLOBAL VARIABLES ////////////
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
key Dialog(key kRCPT, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth)
|
||||
{
|
||||
key kID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kRCPT + "|" + sPrompt + "|" + (string)iPage + "|"
|
||||
+ llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kID);
|
||||
//Debug("Made menu.");
|
||||
return kID;
|
||||
}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer)
|
||||
{
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else
|
||||
{
|
||||
if (llGetAgentSize(kID)) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
ResetCharIndex() {
|
||||
|
||||
g_sCharIndex = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`";
|
||||
g_sCharIndex += "abcdefghijklmnopqrstuvwxyz{|}~\n\n\n\n\n";
|
||||
|
||||
g_lDecode= [ "%C3%87", "%C3%BC", "%C3%A9", "%C3%A2", "%C3%A4", "%C3%A0", "%C3%A5", "%C3%A7", "%C3%AA", "%C3%AB" ];
|
||||
g_lDecode+=[ "%C3%A8", "%C3%AF", "%C3%AE", "%C3%AC", "%C3%84", "%C3%85", "%C3%89", "%C3%A6", "%C3%AE", "xxxxxx" ];
|
||||
g_lDecode+=[ "%C3%B6", "%C3%B2", "%C3%BB", "%C3%B9", "%C3%BF", "%C3%96", "%C3%9C", "%C2%A2", "%C2%A3", "%C2%A5" ];
|
||||
g_lDecode+=[ "%E2%82%A7", "%C6%92", "%C3%A1", "%C3%AD", "%C3%B3", "%C3%BA", "%C3%B1", "%C3%91", "%C2%AA", "%C2%BA"];
|
||||
g_lDecode+=[ "%C2%BF", "%E2%8C%90", "%C2%AC", "%C2%BD", "%C2%BC", "%C2%A1", "%C2%AB", "%C2%BB", "%CE%B1", "%C3%9F" ];
|
||||
g_lDecode+=[ "%CE%93", "%CF%80", "%CE%A3", "%CF%83", "%C2%B5", "%CF%84", "%CE%A6", "%CE%98", "%CE%A9", "%CE%B4" ];
|
||||
g_lDecode+=[ "%E2%88%9E", "%CF%86", "%CE%B5", "%E2%88%A9", "%E2%89%A1", "%C2%B1", "%E2%89%A5", "%E2%89%A4", "%E2%8C%A0", "%E2%8C%A1" ];
|
||||
g_lDecode+=[ "%C3%B7", "%E2%89%88", "%C2%B0", "%E2%88%99", "%C2%B7", "%E2%88%9A", "%E2%81%BF", "%C2%B2", "%E2%82%AC", "" ];
|
||||
|
||||
// END // SALAHZAR
|
||||
|
||||
}
|
||||
|
||||
vector GetGridOffset(integer iIndex) {
|
||||
// Calculate the offset needed to display this character.
|
||||
integer iRow = iIndex / 10;
|
||||
integer iCol = iIndex % 10;
|
||||
// Return the offset in the texture.
|
||||
return <g_vGridOffset.x + 0.1 * iCol, g_vGridOffset.y - 0.05 * iRow, g_vGridOffset.z>; // SALAHZAR modified vertical offsets for 512x1024 textures // Lulu modified for cut cylinders
|
||||
// return <-0.725 + 0.1 * iCol, 0.472 - 0.05 * iRow, 0.0>;
|
||||
}
|
||||
|
||||
//ShowChars(integer link,vector grkID_offset1, vector grkID_offset2, vector grkID_offset3, vector grkID_offset4, vector grkID_offset5)
|
||||
ShowChars(integer link,vector grkID_offset)
|
||||
{
|
||||
// SALAHZAR modified .1 to .05 to handle different sized texture
|
||||
float alpha = llList2Float(llGetLinkPrimitiveParams( link,[PRIM_COLOR,FACE]),1);
|
||||
llSetLinkPrimitiveParamsFast( link,[
|
||||
PRIM_TEXTURE, FACE, (string)g_kFontTexture, g_vRepeats, grkID_offset - g_vOffset, 0.0,
|
||||
PRIM_COLOR, FACE, g_vColor, alpha]);
|
||||
}
|
||||
|
||||
// SALAHZAR intelligent procedure to extract UTF-8 codes and convert to index in our "cp850"-like table
|
||||
integer GetIndex(string sChar)
|
||||
{
|
||||
integer iRet=llSubStringIndex(g_sCharIndex, sChar);
|
||||
if(iRet>=0) return iRet;
|
||||
|
||||
// special char do nice trick :)
|
||||
string sEscaped=llEscapeURL(sChar);
|
||||
integer iFound=llListFindList(g_lDecode, [sEscaped]);
|
||||
|
||||
// Return blank if not found
|
||||
if(iFound<0) return 0;
|
||||
|
||||
// return correct index
|
||||
return 100+iFound;
|
||||
|
||||
}
|
||||
// END SALAHZAR
|
||||
|
||||
|
||||
RenderString(integer iLink, string sStr)
|
||||
{
|
||||
if(iLink <= 0) return; // check for negative and zero linknumber
|
||||
|
||||
// Get the grid positions for each pair of characters.
|
||||
vector GridOffset1 = GetGridOffset( GetIndex(llGetSubString(sStr, 0, 0)) ); // SALAHZAR intermediate function
|
||||
|
||||
// Use these grid positions to display the correct textures/offsets.
|
||||
// ShowChars(iLink,GridOffset1, GridOffset2, GridOffset3, GridOffset4, GridOffset5);
|
||||
ShowChars(iLink,GridOffset1);
|
||||
}
|
||||
|
||||
integer ConvertIndex(integer iIndex) {
|
||||
// This converts from an ASCII based index to our indexing scheme.
|
||||
if (iIndex >= 32) // ' ' or higher
|
||||
iIndex -= 32;
|
||||
else { // index < 32
|
||||
// Quick bounds check.
|
||||
if (iIndex > 15)
|
||||
iIndex = 15;
|
||||
|
||||
iIndex += 94; // extended characters
|
||||
}
|
||||
|
||||
return iIndex;
|
||||
}
|
||||
|
||||
/////END XYTEXT FUNCTIONS
|
||||
|
||||
// add for text scroll
|
||||
float g_fScrollTime = 0.2 ;
|
||||
integer g_iSctollPos ;
|
||||
string g_sScrollText;
|
||||
list g_lLabelLinks ;
|
||||
|
||||
|
||||
// find all 'Label' prims, count and store it's link numbers for fast work SetLabel() and timer
|
||||
integer LabelsCount()
|
||||
{
|
||||
integer ok = TRUE ;
|
||||
g_lLabelLinks = [] ;
|
||||
|
||||
string sLabel;
|
||||
list lTmp;
|
||||
integer iLink;
|
||||
integer iLinkCount = llGetNumberOfPrims();
|
||||
|
||||
//find all 'Label' prims and count it's
|
||||
for(iLink=2; iLink <= iLinkCount; iLink++)
|
||||
{
|
||||
sLabel = llList2String(llGetLinkPrimitiveParams(iLink,[PRIM_NAME]),0);
|
||||
lTmp = llParseString2List(sLabel, ["~"],[]);
|
||||
sLabel = llList2String(lTmp,0);
|
||||
if(sLabel == "Label")
|
||||
{
|
||||
g_lLabelLinks += [0]; // fill list witn nulls
|
||||
|
||||
//change prim description
|
||||
llSetLinkPrimitiveParamsFast(iLink,[PRIM_DESC,"Label~notexture~nocolor~nohide"]);
|
||||
}
|
||||
}
|
||||
|
||||
g_iCharLimit = llGetListLength(g_lLabelLinks);
|
||||
|
||||
//find all 'Label' prims and store it's links to list
|
||||
for(iLink=2; iLink <= iLinkCount; iLink++)
|
||||
{
|
||||
sLabel = llList2String(llGetLinkPrimitiveParams(iLink,[PRIM_NAME]),0);
|
||||
lTmp = llParseString2List(sLabel, ["~"],[]);
|
||||
sLabel = llList2String(lTmp,0);
|
||||
if(sLabel == "Label")
|
||||
{
|
||||
integer iLabel = (integer)llList2String(lTmp,1);
|
||||
integer link = llList2Integer(g_lLabelLinks,iLabel);
|
||||
if(link == 0)
|
||||
{
|
||||
g_lLabelLinks = llListReplaceList(g_lLabelLinks,[iLink],iLabel,iLabel);
|
||||
}
|
||||
else
|
||||
{
|
||||
ok = FALSE;
|
||||
llOwnerSay("Warning! Found duplicated label prims: "+sLabel+" with link numbers: "+(string)link+" and "+(string)iLink);
|
||||
//llOwnerSay("Prims marked RED!");
|
||||
//llSetLinkPrimitiveParamsFast(link, [PRIM_COLOR, 1, <1,0,0>, 1.0, PRIM_TEXTURE, 1, TEXTURE_BLANK, <1,1,1>, <0,0,0>, 0] );
|
||||
//llSetLinkPrimitiveParamsFast(iLink, [PRIM_COLOR, 1, <1,0,0>, 1.0, PRIM_TEXTURE, 1, TEXTURE_BLANK, <1,1,1>, <0,0,0>, 0] );
|
||||
}
|
||||
}
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
SetLabel()
|
||||
{
|
||||
string sText ;
|
||||
if (g_iShow) sText = g_sLabelText;
|
||||
|
||||
string sPadding;
|
||||
if(g_iScroll==TRUE) // || llStringLength(g_sLabelText) > g_iCharLimit)
|
||||
{
|
||||
// add some blanks
|
||||
while(llStringLength(sPadding) < g_iCharLimit) sPadding += " ";
|
||||
g_sScrollText = sPadding + sText;
|
||||
llSetTimerEvent(g_fScrollTime);
|
||||
//g_iScroll = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_sScrollText = "";
|
||||
llSetTimerEvent(0);
|
||||
//inlined single use CenterJustify function
|
||||
while(llStringLength(sPadding + sText + sPadding) < g_iCharLimit) sPadding += " ";
|
||||
string sText = sPadding + sText;
|
||||
integer iCharPosition;
|
||||
for(iCharPosition=0; iCharPosition < g_iCharLimit; iCharPosition++)
|
||||
{
|
||||
RenderString(llList2Integer(g_lLabelLinks, iCharPosition), llGetSubString(sText, iCharPosition, iCharPosition));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SetOffsets(key font)
|
||||
{
|
||||
// get 1-st link number from list
|
||||
integer link = llList2Integer(g_lLabelLinks, 0);
|
||||
|
||||
// Compensate for label box-prims, which must use face 0. Others can be added as needed.
|
||||
list params = llGetLinkPrimitiveParams(link, [PRIM_DESC, PRIM_TYPE]);
|
||||
string desc = llGetSubString(llList2String(params, 0), 0, 4);
|
||||
if (desc == "Label")
|
||||
{
|
||||
integer t = (integer)llList2String(params, 1);
|
||||
if (t == PRIM_TYPE_BOX)
|
||||
{
|
||||
if (font == NULL_KEY) font = "bf2b6c21-e3d7-877b-15dc-ad666b6c14fe"; // LCD default for box
|
||||
g_vGridOffset = <-0.45, 0.425, 0.0>;
|
||||
g_vRepeats = <0.126, 0.097, 0>;
|
||||
g_vOffset = <0.036, 0.028, 0>;
|
||||
FACE = 0;
|
||||
}
|
||||
else if (t == PRIM_TYPE_CYLINDER)
|
||||
{
|
||||
if (font == NULL_KEY) font = "2c1e3fa3-9bdb-2537-e50d-2deb6f2fa22c"; // Serif default for cyl
|
||||
g_vGridOffset = <-0.725, 0.425, 0.0>;
|
||||
g_vRepeats = <1.434, 0.05, 0>;
|
||||
g_vOffset = <0.037, 0.003, 0>;
|
||||
FACE = 1;
|
||||
}
|
||||
integer o = llListFindList(g_lFonts, [(string)g_kFontTexture]);
|
||||
integer n = llListFindList(g_lFonts, [(string)font]);
|
||||
if (~o && o != n) // changing fonts - adjust for differences in font offsets
|
||||
{
|
||||
if (n < 8 && o == 9) g_vOffset.y += 0.0015;
|
||||
else if (o < 8 && n == 9) g_vOffset.y -= 0.0015;
|
||||
}
|
||||
//Debug("Offset = " + (string)g_vOffset);
|
||||
}
|
||||
g_kFontTexture = font;
|
||||
}
|
||||
|
||||
MainMenu(key kID, integer iAuth)
|
||||
{
|
||||
list lButtons= [g_sTextMenu, g_sColorMenu, g_sFontMenu];
|
||||
if (g_iShow) lButtons += ["☒ Show"];
|
||||
else lButtons += ["☐ Show"];
|
||||
|
||||
if (g_iScroll) lButtons += ["☒ Scroll"];
|
||||
else lButtons += ["☐ Scroll"];
|
||||
|
||||
string sPrompt = "\nCustomize the " + CTYPE + "'s label!\n\nwww.opencollar.at/label";
|
||||
g_kDialogID=Dialog(kID, sPrompt, lButtons, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
TextMenu(key kID, integer iAuth)
|
||||
{
|
||||
string sPrompt="\n- Submit the new label in the field below.\n- Submit a few spaces to clear the label.\n- Submit a blank field to go back to " + g_sSubMenu + ".\n\nwww.opencollar.at/label";
|
||||
g_kTBoxID = Dialog(kID, sPrompt, [], [], 0, iAuth);
|
||||
}
|
||||
|
||||
ColorMenu(key kID, integer iAuth)
|
||||
{
|
||||
string sPrompt = "\n\nSelect a colour from the list";
|
||||
list lColourNames;
|
||||
integer numColours=llGetListLength(g_lColours)/2;
|
||||
while (numColours--)
|
||||
{
|
||||
lColourNames+=llList2String(g_lColours,numColours*2);
|
||||
}
|
||||
g_kColorID=Dialog(kID, sPrompt, lColourNames, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
FontMenu(key kID, integer iAuth)
|
||||
{
|
||||
list lButtons=llList2ListStrided(g_lFonts,0,-1,2);
|
||||
string sPrompt = "\nSelect the font for the " + CTYPE + "'s label.\n\nNOTE: This feature requires a design with label prims. If the worn design doesn't have any of those, it is recommended to uninstall Label with the updater.\n\nwww.opencollar.at/label";
|
||||
|
||||
g_kFontID=Dialog(kID, sPrompt, lButtons, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
|
||||
integer UserCommand(integer iAuth, string sStr, key kAv)
|
||||
{
|
||||
if (iAuth > COMMAND_WEARER || iAuth < COMMAND_OWNER) return FALSE; // sanity check
|
||||
|
||||
if (iAuth == COMMAND_OWNER || !g_iAppLock)
|
||||
{
|
||||
if (sStr == "menu " + g_sSubMenu || llToLower(sStr)=="label")
|
||||
{
|
||||
MainMenu(kAv, iAuth);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
list lParams = llParseString2List(sStr, [" "], []);
|
||||
string sCommand = llToLower(llList2String(lParams, 0));
|
||||
|
||||
if (sCommand == "lockappearance" && iAuth == COMMAND_OWNER)
|
||||
{
|
||||
if (llToLower(llList2String(lParams, 1)) == "0") g_iAppLock = FALSE;
|
||||
else g_iAppLock = TRUE;
|
||||
}
|
||||
else if (sCommand == "labeltext")
|
||||
{
|
||||
lParams = llDeleteSubList(lParams, 0, 0);
|
||||
g_sLabelText = llDumpList2String(lParams, " ");
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "text=" + g_sLabelText, "");
|
||||
SetLabel();
|
||||
}
|
||||
else if (sCommand == "labelfont")
|
||||
{
|
||||
lParams = llDeleteSubList(lParams, 0, 0);
|
||||
string font = llDumpList2String(lParams, " ");
|
||||
integer iIndex = llListFindList(g_lFonts, [font]);
|
||||
if (iIndex != -1)
|
||||
{
|
||||
SetOffsets((key)llList2String(g_lFonts, iIndex + 1));
|
||||
SetLabel();
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "font=" + (string)g_kFontTexture, "");
|
||||
}
|
||||
else FontMenu(kAv, iAuth);
|
||||
}
|
||||
else if (sCommand == "labelcolor")
|
||||
{
|
||||
string sColour= llDumpList2String(llDeleteSubList(lParams,0,0)," ");
|
||||
integer colourIndex=llListFindList(g_lColours,[sColour]);
|
||||
if (~colourIndex)
|
||||
{
|
||||
g_vColor=(vector)llList2String(g_lColours,colourIndex+1);
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript+"color="+(string)g_vColor, "");
|
||||
SetLabel();
|
||||
}
|
||||
}
|
||||
else if (sCommand == "labelshow")
|
||||
{
|
||||
g_iShow = llList2Integer(lParams, 1);
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript+"show="+(string)g_iShow, "");
|
||||
SetLabel();
|
||||
}
|
||||
else if (sCommand == "labelscroll")
|
||||
{
|
||||
g_iScroll = llList2Integer(lParams, 1);
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript+"scroll="+(string)g_iScroll, "");
|
||||
SetLabel();
|
||||
}
|
||||
}
|
||||
else if ((iAuth >= COMMAND_SECOWNER && iAuth <= COMMAND_WEARER) && g_iAppLock)
|
||||
{
|
||||
string sCommand = llToLower(llList2String(llParseString2List(sStr, [" "], []), 0));
|
||||
if (sStr=="menu "+g_sSubMenu)
|
||||
{
|
||||
llMessageLinked(LINK_SET, iAuth, "menu "+g_sParentMenu, kAv);
|
||||
Notify(kAv,"Only owners can change the label!", FALSE);
|
||||
}
|
||||
else if (sCommand=="labeltext" || sCommand == "labelfont" || sCommand == "labelcolor" || sCommand == "labelshow")
|
||||
{
|
||||
Notify(kAv,"Only owners can change the label!", FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
default
|
||||
{
|
||||
on_rez(integer iNum) {
|
||||
llResetScript();
|
||||
}
|
||||
|
||||
state_entry() {
|
||||
//llSetMemoryLimit(65536); //this script needs to be profiled, and its memory limited
|
||||
g_sScript = "label_";
|
||||
g_kWearer = llGetOwner();
|
||||
|
||||
integer ok = LabelsCount(); //first count the label prims.
|
||||
SetOffsets(NULL_KEY);
|
||||
ResetCharIndex(); // Initialize the character index.
|
||||
|
||||
if (g_iCharLimit <= 0) {
|
||||
llMessageLinked(LINK_SET, MENUNAME_REMOVE, g_sParentMenu + "|" + g_sSubMenu, "");
|
||||
llRemoveInventory(llGetScriptName());
|
||||
}
|
||||
|
||||
g_sLabelText = llList2String(llParseString2List(llKey2Name(llGetOwner()), [" "], []), 0);
|
||||
//Debug("Starting");
|
||||
}
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID)
|
||||
{
|
||||
if ( UserCommand(iNum, sStr, kID) ) {}
|
||||
else if (iNum == LM_SETTING_RESPONSE)
|
||||
{
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
integer i = llSubStringIndex(sToken, "_");
|
||||
if (llGetSubString(sToken, 0, i) == g_sScript)
|
||||
{
|
||||
sToken = llGetSubString(sToken, i + 1, -1);
|
||||
if (sToken == "text") g_sLabelText = sValue;
|
||||
else if (sToken == "font") SetOffsets((key)sValue);
|
||||
else if (sToken == "color") g_vColor = (vector)sValue;
|
||||
else if (sToken == "show") g_iShow = (integer)sValue;
|
||||
else if (sToken == "scroll") g_iScroll = (integer)sValue;
|
||||
}
|
||||
else if (sToken == g_sAppLockToken) g_iAppLock = (integer)sValue;
|
||||
else if (sToken == "Global_CType") CTYPE = sValue;
|
||||
else if (sToken == "settings" && sValue == "sent") SetLabel();
|
||||
}
|
||||
else if (iNum == MENUNAME_REQUEST && sStr == g_sParentMenu)
|
||||
{
|
||||
llMessageLinked(LINK_SET, MENUNAME_RESPONSE, g_sParentMenu + "|" + g_sSubMenu, "");
|
||||
}
|
||||
else if (iNum == DIALOG_RESPONSE)
|
||||
{
|
||||
if (kID==g_kDialogID)
|
||||
{
|
||||
//got a menu response meant for us. pull out values
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
if (sMessage == UPMENU) llMessageLinked(LINK_SET, iAuth, "menu " + g_sParentMenu, kAv);
|
||||
else if (sMessage == g_sTextMenu) TextMenu(kAv, iAuth);
|
||||
else if (sMessage == g_sColorMenu) ColorMenu(kAv, iAuth);
|
||||
else if (sMessage == g_sFontMenu) FontMenu(kAv, iAuth);
|
||||
else if (sMessage == "☐ Show")
|
||||
{
|
||||
UserCommand(iAuth, "labelshow 1", kAv);
|
||||
MainMenu(kAv, iAuth);
|
||||
}
|
||||
else if (sMessage == "☒ Show")
|
||||
{
|
||||
UserCommand(iAuth, "labelshow 0", kAv);
|
||||
MainMenu(kAv, iAuth);
|
||||
}
|
||||
else if (sMessage == "☐ Scroll")
|
||||
{
|
||||
UserCommand(iAuth, "labelscroll 1", kAv);
|
||||
MainMenu(kAv, iAuth);
|
||||
}
|
||||
else if (sMessage == "☒ Scroll")
|
||||
{
|
||||
UserCommand(iAuth, "labelscroll 0", kAv);
|
||||
MainMenu(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
else if (kID == g_kColorID)
|
||||
{
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
if (sMessage == UPMENU) MainMenu(kAv, iAuth);
|
||||
else
|
||||
{
|
||||
UserCommand(iAuth, "labelcolor "+sMessage, kAv);
|
||||
ColorMenu(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
else if (kID == g_kFontID)
|
||||
{
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
if (sMessage == UPMENU) MainMenu(kAv, iAuth);
|
||||
else
|
||||
{
|
||||
UserCommand(iAuth, "labelfont " + sMessage, kAv);
|
||||
FontMenu(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
else if (kID == g_kTBoxID) // TextBox response, extract values
|
||||
{
|
||||
list lMenuParams = llParseStringKeepNulls(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
if (sMessage != "") UserCommand(iAuth, "labeltext " + sMessage, kAv);
|
||||
llMessageLinked(LINK_ROOT, iAuth, "menu " + g_sSubMenu, kAv);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
timer()
|
||||
{
|
||||
string sText = llGetSubString(g_sScrollText, g_iSctollPos, -1);
|
||||
integer iCharPosition;
|
||||
for(iCharPosition=0; iCharPosition < g_iCharLimit; iCharPosition++)
|
||||
{
|
||||
RenderString(llList2Integer(g_lLabelLinks, iCharPosition), llGetSubString(sText, iCharPosition, iCharPosition));
|
||||
}
|
||||
g_iSctollPos++;
|
||||
if(g_iSctollPos > llStringLength(g_sScrollText)) g_iSctollPos = 0 ;
|
||||
}
|
||||
|
||||
changed(integer change) {
|
||||
if(change & CHANGED_LINK) // if links changed
|
||||
{
|
||||
if (LabelsCount()==TRUE) SetLabel();
|
||||
}
|
||||
/*
|
||||
if (iChange & CHANGED_REGION) {
|
||||
if (g_iProfiled) {
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
@@ -1,820 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - leash //
|
||||
// version 3.995.2 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Oct. 18, 2008
|
||||
// Nandana Singh, Lulu Pink, Garvin Twine, Joy Stipe
|
||||
|
||||
// ------ TOKEN DEFINITIONS ------
|
||||
// ---- Immutable ----
|
||||
// - Should be constant across collars, so not prefixed
|
||||
// --- db tokens ---
|
||||
string TOK_LENGTH = "leashlength";
|
||||
string TOK_DEST = "leashedto"; // format: uuid,rank
|
||||
// --- channel tokens ---
|
||||
// - MESSAGE MAP
|
||||
//integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
//integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
integer COMMAND_SAFEWORD = 510;
|
||||
integer POPUP_HELP = 1001;
|
||||
// -- SETTINGS (whatever the actual backend)
|
||||
// - Setting strings must be in the format: "token=value"
|
||||
integer LM_SETTING_SAVE = 2000; // to have settings saved to httpdb
|
||||
integer LM_SETTING_REQUEST = 2001; // send requests for settings on this channel
|
||||
integer LM_SETTING_RESPONSE = 2002; // responses received on this channel
|
||||
integer LM_SETTING_DELETE = 2003; // delete token from DB
|
||||
integer LM_SETTING_EMPTY = 2004; // returned when a token has no value in the httpdb
|
||||
// -- MENU/DIALOG
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
integer MENUNAME_REMOVE = 3003;
|
||||
|
||||
integer RLV_CMD = 6000;
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
//integer DIALOG_TIMEOUT = -9002;
|
||||
integer SENSORDIALOG = -9003;
|
||||
|
||||
integer COMMAND_PARTICLE = 20000;
|
||||
integer COMMAND_LEASH_SENSOR = 20001;
|
||||
|
||||
// --- menu button tokens ---
|
||||
string BUTTON_UPMENU = "BACK";
|
||||
string BUTTON_PARENTMENU = "Main";
|
||||
string BUTTON_SUBMENU = "Leash";
|
||||
//string BUTTON_LEASH = "Grab";
|
||||
//string BUTTON_LEASH_TO = "LeashTo";
|
||||
//string BUTTON_FOLLOW = "Follow Me";
|
||||
//string BUTTON_FOLLOW_MENU = "FollowTarget";
|
||||
//string BUTTON_UNLEASH = "Unleash";
|
||||
//string BUTTON_UNFOLLOW = "Unfollow";
|
||||
//string BUTTON_STAY = "Stay";
|
||||
//string BUTTON_UNSTAY = "UnStay";
|
||||
//string BUTTON_ROT = "Rotate";
|
||||
//string BUTTON_UNROT = "Don't Rotate";
|
||||
//string BUTTON_LENGTH = "Length";
|
||||
//string BUTTON_GIVE_HOLDER = "give Holder";
|
||||
//string BUTTON_GIVE_POST = "give Post";
|
||||
//string BUTTON_REZ_POST = "Rez Post";
|
||||
//string BUTTON_POST = "Post";
|
||||
//string BUTTON_YANK = "Yank";
|
||||
|
||||
|
||||
// ---------------------------------------------
|
||||
// ------ VARIABLE DEFINITIONS ------
|
||||
// ----- menu -----
|
||||
key g_kMenuUser;
|
||||
key g_kMainDialogID;
|
||||
key g_kSetLengthDialogID;
|
||||
key g_kLeashTargetDialogID;
|
||||
key g_kFollowTargetDialogID;
|
||||
key g_kPostTargetDialogID;
|
||||
key g_kPostMenuDialogID;
|
||||
|
||||
list g_lDialogs; //tracks dialogs generated. 2 strided, key, type
|
||||
list g_lButtons; //buttons added by other scripts
|
||||
// ----- collar -----
|
||||
|
||||
key g_kWearer;
|
||||
integer g_iJustMoved;
|
||||
// ----- leash -----
|
||||
integer g_iLength = 3;
|
||||
integer g_iStay = FALSE;
|
||||
integer g_iTargetHandle;
|
||||
integer g_iLastRank;
|
||||
integer g_iStayRank;
|
||||
vector g_vPos = ZERO_VECTOR;
|
||||
string g_sTmpName;
|
||||
key g_kCmdGiver;
|
||||
key g_kLeashedTo = NULL_KEY;
|
||||
integer g_bLeashedToAvi;
|
||||
integer g_bFollowMode;
|
||||
string g_sScript="leash_";
|
||||
string CTYPE = "collar";
|
||||
string WEARERNAME;
|
||||
|
||||
integer g_iRezAuth;
|
||||
|
||||
string g_sCheck;
|
||||
|
||||
//realleash variables
|
||||
integer g_iStrictModeOn=FALSE; //default is Real-Leash OFF
|
||||
integer g_iLeasherInRange=FALSE; //
|
||||
integer g_iRLVOn=FALSE; // To store if RLV was enabled in the collar
|
||||
integer g_iAwayCounter=0;
|
||||
|
||||
list g_lRestrictionNames= ["fartouch","sittp","tplm","tplure","tploc"];
|
||||
string RLV_STRING = "rlvmain_on";
|
||||
string OWNER_STRING = "auth_owner";
|
||||
// ---------------------------------------------
|
||||
// ------ FUNCTION DEFINITIONS ------
|
||||
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
key Dialog(key kRCPT, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth){
|
||||
key kID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kRCPT + "|" + sPrompt + "|" + (string)iPage + "|" + llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kID);
|
||||
//Debug("Made menu.");
|
||||
return kID;
|
||||
}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer){
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else{
|
||||
if (llGetAgentSize(kID)!=ZERO_VECTOR) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
integer CheckCommandAuth(key kCmdGiver, integer iAuth){
|
||||
// Check for invalid auth
|
||||
if (iAuth < COMMAND_OWNER || iAuth > COMMAND_WEARER) return FALSE;
|
||||
|
||||
// If leashed, only move leash if Comm Giver outranks current leasher
|
||||
if (g_kLeashedTo != NULL_KEY && iAuth > g_iLastRank){
|
||||
Notify(kCmdGiver, "Sorry, someone who outranks you on " + WEARERNAME +"'s " + CTYPE + " leashed " + WEARERNAME + " already.", FALSE);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
SetLength(integer iIn){
|
||||
g_iLength = iIn;
|
||||
// llTarget needs to be changed to the new length if leashed
|
||||
if(g_kLeashedTo){
|
||||
llTargetRemove(g_iTargetHandle);
|
||||
g_iTargetHandle = llTarget(g_vPos, g_iLength);
|
||||
}
|
||||
}
|
||||
|
||||
ApplyRestrictions(){
|
||||
//Debug("Applying Restrictions");
|
||||
if (g_iLeasherInRange){
|
||||
if (g_iStrictModeOn){
|
||||
if (g_kLeashedTo){
|
||||
//Debug("Setting restrictions");
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "fartouch=n,sittp=n,tplm=n,tplure=n,tploc=n,tplure:" + (string) g_kLeashedTo + "=add", "realleash"); //set all restrictions
|
||||
return;
|
||||
}
|
||||
//} else {
|
||||
//Debug("Strict is off");
|
||||
}
|
||||
//} else {
|
||||
//Debug("Leasher out of range");
|
||||
}
|
||||
//Debug("Releasing restrictions");
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "clear", "realleash"); //release all restrictions
|
||||
}
|
||||
|
||||
// Wrapper for DoLeash with notifications
|
||||
integer LeashTo(key kTarget, key kCmdGiver, integer iAuth, list lPoints, integer iFollowMode){
|
||||
// can't leash wearer to self.
|
||||
if (kTarget == g_kWearer) return FALSE;
|
||||
|
||||
if (!CheckCommandAuth(kCmdGiver, iAuth)){
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (g_kLeashedTo==kTarget) return TRUE;
|
||||
|
||||
if (g_kLeashedTo){
|
||||
DoUnleash();
|
||||
}
|
||||
integer bCmdGiverIsAvi=llGetAgentSize(kCmdGiver) != ZERO_VECTOR;
|
||||
integer bTargetIsAvi=llGetAgentSize(kTarget) != ZERO_VECTOR;
|
||||
|
||||
// Send notices to wearer, leasher, and target
|
||||
// Only send notices if Leasher is an AV, as objects normally handle their own messages for such things
|
||||
if (bCmdGiverIsAvi) {
|
||||
string sTarget = llGetDisplayName(kTarget);
|
||||
if (sTarget == "???" || sTarget == "") sTarget = llKey2Name(kTarget);
|
||||
string sCmdGiver = llGetDisplayName(kCmdGiver);
|
||||
if (sCmdGiver == "???" || sCmdGiver == "") sCmdGiver = llKey2Name(kCmdGiver);
|
||||
string sWearMess;
|
||||
if (kCmdGiver == g_kWearer) {// Wearer is Leasher
|
||||
if (iFollowMode){
|
||||
sWearMess = "You begin following " + sTarget + ".";
|
||||
} else {
|
||||
//sCmdMess = ""; // Only one message will need to be sent
|
||||
sWearMess = "You take your leash";
|
||||
if (bTargetIsAvi) { // leashing self to someone else
|
||||
sWearMess += ", and hand it to " + sTarget + ".";
|
||||
} else { // leashing self to an object
|
||||
sWearMess += ", and tie it to " + sTarget + ".";
|
||||
}
|
||||
}
|
||||
} else {// Leasher is not Wearer
|
||||
string sCmdMess;
|
||||
if (iFollowMode){
|
||||
if (kCmdGiver != kTarget) { // LeashTo someone else
|
||||
Notify(kTarget, sCmdGiver + " commands " + WEARERNAME + " to follow you.", FALSE);
|
||||
sCmdMess= "You command " + WEARERNAME + " to follow " + sTarget + ".";
|
||||
sWearMess = sCmdGiver + " commands you to follow " + sTarget + ".";
|
||||
} else {
|
||||
sCmdMess= "You command " + WEARERNAME + " to follow you.";
|
||||
sWearMess = sCmdGiver + " commands you to follow them.";
|
||||
}
|
||||
} else {
|
||||
string sPsv = "'s"; // Possessive, will vary if name ends in "s"
|
||||
if (llGetSubString(WEARERNAME, -1,-1)=="s") sPsv = "'";
|
||||
sCmdMess= "You grab " + WEARERNAME + sPsv + " leash";
|
||||
sWearMess = sCmdGiver + " grabs your leash";
|
||||
if (kCmdGiver != kTarget) { // Leasher is not LeashTo
|
||||
if (bTargetIsAvi) { // LeashTo someone else
|
||||
sCmdMess += ", and hand it to " + sTarget + ".";
|
||||
sWearMess += ", and hands it to " + sTarget + ".";
|
||||
Notify(kTarget, sCmdGiver + " hands you " + WEARERNAME + sPsv + " leash.", FALSE);
|
||||
} else {// LeashTo object
|
||||
sCmdMess += ", and tie it to " + sTarget + ".";
|
||||
sWearMess += ", and ties it to " + sTarget + ".";
|
||||
}
|
||||
}
|
||||
}
|
||||
Notify(kCmdGiver, sCmdMess, FALSE);
|
||||
}
|
||||
llOwnerSay(sWearMess);
|
||||
}
|
||||
|
||||
g_bFollowMode = iFollowMode; // leashing, or following
|
||||
if (bTargetIsAvi) g_bLeashedToAvi = TRUE;
|
||||
if (llGetOwnerKey(kCmdGiver)==g_kWearer) iAuth=COMMAND_WEARER; //prevents owner-wearer with public access creating an unbreakable leash to an unwilling participant
|
||||
DoLeash(kTarget, iAuth, lPoints);
|
||||
|
||||
// Notify Target how to unleash, only if:
|
||||
// Avatar
|
||||
// Didn't send the command
|
||||
// Don't own the object that sent the command
|
||||
if (g_bLeashedToAvi && kCmdGiver != kTarget && llGetOwnerKey(kCmdGiver) != kTarget) {
|
||||
if (iFollowMode){
|
||||
llMessageLinked(LINK_SET, POPUP_HELP, WEARERNAME + " has been commanded to follow you. Say \"_PREFIX_unfollow\" to relase them.", g_kLeashedTo);
|
||||
} else {
|
||||
llMessageLinked(LINK_SET, POPUP_HELP, WEARERNAME + " has been leashed to you. Say \"_PREFIX_unleash\" to unleash them. Say \"_PREFIX_giveholder\" to get a leash holder.", g_kLeashedTo);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
DoLeash(key kTarget, integer iAuth, list lPoints){
|
||||
g_iLastRank = iAuth;
|
||||
g_kLeashedTo = kTarget;
|
||||
|
||||
if (g_bFollowMode) {
|
||||
llMessageLinked(LINK_THIS, COMMAND_PARTICLE, "unleash", g_kLeashedTo);
|
||||
} else {
|
||||
integer iPointCount = llGetListLength(lPoints);
|
||||
g_sCheck = "";
|
||||
if (iPointCount) {//if more than one leashpoint, listen for all strings, else listen just for that point
|
||||
if (iPointCount == 1) g_sCheck = (string)llGetOwnerKey(kTarget) + llList2String(lPoints, 0) + " ok";
|
||||
}
|
||||
//Send link message to the particle script
|
||||
//Debug("leashing with "+g_sCheck);
|
||||
llMessageLinked(LINK_THIS, COMMAND_PARTICLE, "leash" + g_sCheck + "|" + (string)g_bLeashedToAvi, g_kLeashedTo);
|
||||
llSetTimerEvent(3.0); //check for leasher out of range
|
||||
}
|
||||
|
||||
// change to llTarget events by Lulu Pink
|
||||
g_vPos = llList2Vector(llGetObjectDetails(g_kLeashedTo, [OBJECT_POS]), 0);
|
||||
//to prevent multiple target events and llMoveToTargets
|
||||
llTargetRemove(g_iTargetHandle);
|
||||
llStopMoveToTarget();
|
||||
g_iTargetHandle = llTarget(g_vPos, (float)g_iLength);
|
||||
if (g_vPos != ZERO_VECTOR) {
|
||||
llMoveToTarget(g_vPos, 0.7);
|
||||
}
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + TOK_DEST + "=" + (string)kTarget + "," + (string)iAuth + "," + (string)g_bLeashedToAvi + "," + (string)g_bFollowMode, "");
|
||||
|
||||
|
||||
g_iLeasherInRange=TRUE;
|
||||
ApplyRestrictions();
|
||||
}
|
||||
|
||||
// Wrapper for DoUnleash()
|
||||
Unleash(key kCmdGiver)
|
||||
{
|
||||
string sTarget = llGetDisplayName(g_kLeashedTo);
|
||||
if (sTarget == "???" || sTarget == "") sTarget = llKey2Name(g_kLeashedTo);
|
||||
if ( osIsUUID(g_kLeashedTo) ){
|
||||
string sCmdGiver = llGetDisplayName(kCmdGiver);
|
||||
if (sCmdGiver == "???" || sCmdGiver == "") sCmdGiver = llKey2Name(kCmdGiver);
|
||||
string sWearMess;
|
||||
string sCmdMess;
|
||||
string sTargetMess;
|
||||
|
||||
integer bCmdGiverIsAvi=llGetAgentSize(kCmdGiver) != ZERO_VECTOR;
|
||||
|
||||
if (bCmdGiverIsAvi) {
|
||||
if (kCmdGiver == g_kWearer) // Wearer is Leasher
|
||||
{
|
||||
if (g_bFollowMode) {
|
||||
sWearMess = "You stop following " + sTarget + ".";
|
||||
sTargetMess = WEARERNAME + " stops following you.";
|
||||
} else {
|
||||
sWearMess = "You unleash yourself from " + sTarget + "."; // sTarget might be an object
|
||||
sTargetMess = WEARERNAME + " unleashes from you.";
|
||||
}
|
||||
if (g_bLeashedToAvi) Notify(g_kLeashedTo, sTargetMess, FALSE);
|
||||
} else { // Unleasher is not Wearer
|
||||
if (kCmdGiver == g_kLeashedTo) {
|
||||
if (g_bFollowMode) {
|
||||
sCmdMess= "You release " + WEARERNAME + " from following you.";
|
||||
sWearMess = sCmdGiver + " releases you from following.";
|
||||
} else {
|
||||
sCmdMess= "You unleash " + WEARERNAME + ".";
|
||||
sWearMess = sCmdGiver + " unleashes you.";
|
||||
}
|
||||
} else {
|
||||
if (g_bFollowMode) {
|
||||
sCmdMess= "You release " + WEARERNAME + " from following " + sTarget + ".";
|
||||
sWearMess = sCmdGiver + " releases you from following " + sTarget + ".";
|
||||
sTargetMess = WEARERNAME + " stops following you.";
|
||||
} else {
|
||||
sCmdMess= "You unleash " + WEARERNAME + " from " + sTarget + ".";
|
||||
sWearMess = sCmdGiver + " unleashes you from " + sTarget + ".";
|
||||
sTargetMess = sCmdGiver + " unleashes " + WEARERNAME + " from you.";
|
||||
}
|
||||
if (g_bLeashedToAvi) Notify(g_kLeashedTo, sTargetMess, FALSE);
|
||||
}
|
||||
Notify(kCmdGiver, sCmdMess, FALSE);
|
||||
}
|
||||
llOwnerSay(sWearMess);
|
||||
}
|
||||
DoUnleash();
|
||||
} else {
|
||||
Notify(kCmdGiver, WEARERNAME+" is not leashed", FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
DoUnleash(){
|
||||
llTargetRemove(g_iTargetHandle);
|
||||
llStopMoveToTarget();
|
||||
llMessageLinked(LINK_SET, COMMAND_PARTICLE, "unleash", g_kLeashedTo);
|
||||
g_kLeashedTo = NULL_KEY;
|
||||
g_iLastRank = COMMAND_EVERYONE;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, g_sScript + TOK_DEST, "");
|
||||
llSetTimerEvent(0.0); //stop checking for leasher out of range
|
||||
g_iLeasherInRange=FALSE;
|
||||
|
||||
ApplyRestrictions();
|
||||
}
|
||||
|
||||
YankTo(key kIn){
|
||||
llMoveToTarget(llList2Vector(llGetObjectDetails(kIn, [OBJECT_POS]), 0), 0.5);
|
||||
llSleep(2.0);
|
||||
llStopMoveToTarget();
|
||||
}
|
||||
|
||||
integer UserCommand(integer iAuth, string sMessage, key kMessageID, integer bFromMenu){
|
||||
//Debug("Got user comand:\niAuth: "+(string)iAuth+"\nsMessage: "+sMessage+"\nkMessageID: "+(string)kMessageID+"\nbFromMenu: "+(string)bFromMenu);
|
||||
if (iAuth >= COMMAND_OWNER && iAuth <= COMMAND_WEARER) {
|
||||
g_kCmdGiver = kMessageID;
|
||||
list lParam = llParseString2List(sMessage, [" "], []);
|
||||
string sComm = llToLower(llList2String(lParam, 0));
|
||||
string sVal = llToLower(llList2String(lParam, 1));
|
||||
string sVal2= llList2String(lParam, 2);
|
||||
|
||||
sMessage = llToLower(sMessage); //convert sMessage to lower case for caseless comparisson
|
||||
//debug(sMessage);
|
||||
if (sMessage=="leashmenu" || sMessage == "menu leash"){
|
||||
list lButtons;
|
||||
if (g_iStrictModeOn==TRUE) {
|
||||
lButtons += "Strict ☒";
|
||||
} else {
|
||||
lButtons += "Strict ☐";
|
||||
}
|
||||
|
||||
if (kMessageID != g_kWearer) lButtons += "Grab";// Only if not the wearer.
|
||||
else lButtons += [" "];
|
||||
|
||||
if (g_kLeashedTo != NULL_KEY) {
|
||||
if (g_bFollowMode) lButtons += ["Unfollow"];
|
||||
else lButtons += ["Unleash"];
|
||||
}
|
||||
else lButtons += " ";
|
||||
|
||||
lButtons += ["LeashTo","Post"];
|
||||
//lButtons += ["give Post"];
|
||||
|
||||
if (kMessageID == g_kLeashedTo) lButtons += "Yank";//only if leash holder
|
||||
else lButtons += " ";
|
||||
|
||||
lButtons += ["FollowTarget"];
|
||||
|
||||
if (g_iStay) lButtons += ["UnStay"];
|
||||
else lButtons += ["Stay"];
|
||||
|
||||
lButtons += ["give Holder"];
|
||||
|
||||
lButtons += ["Length"];
|
||||
|
||||
|
||||
lButtons += g_lButtons;
|
||||
|
||||
string sPrompt = "\nLet's go walkies!\n\nwww.opencollar.at/leash";
|
||||
g_kMainDialogID = Dialog(kMessageID, sPrompt, lButtons, [BUTTON_UPMENU], 0, iAuth);
|
||||
|
||||
|
||||
|
||||
} else if (sComm == "post") {
|
||||
if (sComm == "post" && !bFromMenu) UserCommand(iAuth, "find"+sMessage, kMessageID ,bFromMenu); //hack to keep old chat comand behaviour
|
||||
else if (sVal==llToLower(BUTTON_UPMENU)){
|
||||
UserCommand(iAuth, "leashmenu", kMessageID ,bFromMenu);
|
||||
} else if (sMessage == "post give post") {
|
||||
UserCommand(iAuth, "givepost", kMessageID ,bFromMenu);
|
||||
} else if (sMessage == "post rez post") {
|
||||
UserCommand(iAuth, "rezpost", kMessageID ,bFromMenu);
|
||||
} else if (sMessage == "post find post") {
|
||||
UserCommand(iAuth, "findpost", kMessageID ,bFromMenu);
|
||||
} else {
|
||||
g_kPostMenuDialogID = Dialog(kMessageID, "\n\nPost Options:", ["Find Post", "Rez Post", "give Post"], [BUTTON_UPMENU], 0, iAuth);
|
||||
}
|
||||
} else if (sMessage == "grab" || sMessage == "leash" || (sMessage == "toggleleash" && NULL_KEY == g_kLeashedTo)) {
|
||||
LeashTo(kMessageID, kMessageID, iAuth, ["handle"], FALSE);
|
||||
if (bFromMenu) UserCommand(iAuth, "leashmenu", kMessageID ,bFromMenu);
|
||||
|
||||
} else if(sComm == "follow" || sComm == "followtarget") {
|
||||
//Debug("Got a follow command:"+sMessage);
|
||||
if (!CheckCommandAuth(kMessageID, iAuth)) return TRUE;
|
||||
if (sVal==llToLower(BUTTON_UPMENU)){
|
||||
UserCommand(iAuth, "leash", kMessageID ,bFromMenu);
|
||||
} else if (sVal == ""){
|
||||
g_kFollowTargetDialogID=llGenerateKey();
|
||||
llMessageLinked(LINK_THIS, SENSORDIALOG, (string)g_kCmdGiver + "|Who shall be followed?|0|``"+(string)AGENT+"`10`"+(string)PI + "|BACK|" + (string)iAuth, g_kFollowTargetDialogID);
|
||||
} else if (sVal == "me") {
|
||||
LeashTo(kMessageID, kMessageID, iAuth, [], TRUE);
|
||||
} else if (osIsUUID(sVal)) {
|
||||
LeashTo((key)sVal, kMessageID, iAuth, [], TRUE);
|
||||
//no remenu to leash menu
|
||||
//if (bFromMenu) UserCommand(iAuth, "leashmenu", kMessageID ,bFromMenu);
|
||||
} else {
|
||||
g_kFollowTargetDialogID=llGenerateKey();
|
||||
llMessageLinked(LINK_THIS, SENSORDIALOG, (string)g_kCmdGiver + "|Who shall be followed?|0|``"+(string)AGENT+"`10`"+(string)PI +"`"+sVal+"`1|BACK|" + (string)iAuth, g_kFollowTargetDialogID);
|
||||
}
|
||||
|
||||
} else if (sMessage == "runaway" && iAuth == COMMAND_OWNER) Unleash(kMessageID);
|
||||
|
||||
else if (sMessage == "unleash" || sMessage == "unfollow" || (sMessage == "toggleleash" && NULL_KEY != g_kLeashedTo)) {
|
||||
if (CheckCommandAuth(kMessageID, iAuth)) Unleash(kMessageID);
|
||||
if (bFromMenu) UserCommand(iAuth, "leashmenu", kMessageID ,bFromMenu);
|
||||
|
||||
} else if (sMessage == "giveholder" || sMessage == "give holder") {
|
||||
llGiveInventory(kMessageID, "Leash Holder");
|
||||
if (bFromMenu) UserCommand(iAuth, "leashmenu", kMessageID ,bFromMenu);
|
||||
|
||||
} else if (sMessage == "givepost" || sMessage == "give post") {
|
||||
llGiveInventory(kMessageID, "Leash Post");
|
||||
if (bFromMenu) UserCommand(iAuth, "post", kMessageID ,bFromMenu);
|
||||
|
||||
} else if (sMessage == "rezpost" || sMessage == "rez post") {
|
||||
g_iRezAuth=iAuth;
|
||||
llRezObject("Leash Post", llGetPos() + (<0.1, 0.0, 0.37> * llGetRot()), ZERO_VECTOR, llEuler2Rot(<0, 90, 270> * DEG_TO_RAD), 0);
|
||||
if (bFromMenu) UserCommand(iAuth, "post", kMessageID ,bFromMenu);
|
||||
|
||||
} else if (sMessage == "yank" && kMessageID == g_kLeashedTo) {
|
||||
//Person holding the leash can yank.
|
||||
if(llGetAgentInfo(g_kWearer)&AGENT_SITTING) llMessageLinked(LINK_SET, RLV_CMD, "unsit=force", "realleash");
|
||||
YankTo(kMessageID);
|
||||
|
||||
} else if (sMessage == "beckon" && iAuth == COMMAND_OWNER) {
|
||||
//Owner can beckon
|
||||
YankTo(kMessageID);
|
||||
|
||||
} else if (sMessage == "stay") {
|
||||
if (iAuth <= COMMAND_GROUP) {
|
||||
g_iStayRank = iAuth;
|
||||
g_iStay = TRUE;
|
||||
string sCmdGiver = llGetDisplayName(kMessageID);
|
||||
if (sCmdGiver == "???" | sCmdGiver == "") sCmdGiver = llKey2Name(kMessageID);
|
||||
llRequestPermissions(g_kWearer, PERMISSION_TAKE_CONTROLS);
|
||||
llOwnerSay(sCmdGiver + " commanded you to stay in place, you cannot move until the command is revoked again.");
|
||||
Notify(kMessageID, "You commanded " + WEARERNAME + " to stay in place. Either leash the slave with the grab command or use \"unstay\" to enable movement again.", FALSE);
|
||||
if (bFromMenu) UserCommand(iAuth, "leashmenu", kMessageID ,bFromMenu);
|
||||
}
|
||||
|
||||
} else if ((sMessage == "unstay" || sMessage == "move") && g_iStay) {
|
||||
if (iAuth <= g_iStayRank) {
|
||||
g_iStay = FALSE;
|
||||
llReleaseControls();
|
||||
llOwnerSay("You are free to move again.");
|
||||
Notify(kMessageID,"You allowed " + WEARERNAME + " to move freely again.", FALSE);
|
||||
if (bFromMenu) UserCommand(iAuth, "leashmenu", kMessageID ,bFromMenu);
|
||||
}
|
||||
|
||||
} else if (sMessage == "strict on" || sMessage == "strict ☐") {
|
||||
g_iStrictModeOn=TRUE;
|
||||
llMessageLinked(LINK_THIS, LM_SETTING_SAVE, g_sScript + "strict=1", "");
|
||||
llMessageLinked(LINK_SET, LM_SETTING_REQUEST, TOK_DEST, ""); //query current leasher, the response will trigger ApplyRestrictions
|
||||
Notify(kMessageID,"Strict leashing enabled.",TRUE);
|
||||
ApplyRestrictions();
|
||||
if (bFromMenu) UserCommand(iAuth, "leashmenu", kMessageID ,bFromMenu);
|
||||
|
||||
} else if (sMessage == "strict off" || sMessage == "strict ☒") {
|
||||
if (g_kLeashedTo) {
|
||||
Notify(kMessageID, "You can't disable Strict Mode while leashed.",FALSE);
|
||||
} else {
|
||||
g_iStrictModeOn=FALSE;
|
||||
llMessageLinked(LINK_THIS, LM_SETTING_DELETE, g_sScript + "strict", "");
|
||||
ApplyRestrictions();
|
||||
Notify(kMessageID,"Strict leashing disabled.",FALSE);
|
||||
}
|
||||
if (bFromMenu) UserCommand(iAuth, "leashmenu", kMessageID ,bFromMenu);
|
||||
|
||||
} else if (sComm == "leashto") {
|
||||
if (!CheckCommandAuth(kMessageID, iAuth)) return TRUE;
|
||||
if (sVal==llToLower(BUTTON_UPMENU)){
|
||||
UserCommand(iAuth, "leashmenu", kMessageID ,bFromMenu);
|
||||
} else if (sVal == "") {
|
||||
g_kLeashTargetDialogID=llGenerateKey();
|
||||
llMessageLinked(LINK_THIS, SENSORDIALOG, (string)g_kCmdGiver + "|Who shall we leash to?|0|``"+(string)AGENT+"`10`"+(string)PI + "|BACK|" + (string)iAuth, g_kLeashTargetDialogID);
|
||||
} else if(osIsUUID(sVal)) {
|
||||
list lPoints;
|
||||
if (llGetListLength(lParam) > 2) lPoints = llList2List(lParam, 2, -1);
|
||||
//debug("leash target is key");//could be a post, or could be we specified an av key
|
||||
LeashTo((key)sVal, kMessageID, iAuth, lPoints, FALSE);
|
||||
//remenu to sensor dialog
|
||||
//if (bFromMenu) UserCommand(iAuth, "leashto", kMessageID ,bFromMenu);
|
||||
} else {
|
||||
g_kLeashTargetDialogID=llGenerateKey();
|
||||
llMessageLinked(LINK_THIS, SENSORDIALOG, (string)g_kCmdGiver + "|Who shall we leash to?|0|``"+(string)AGENT+"`10`"+(string)PI +"`"+sVal+"`1|BACK|" + (string)iAuth, g_kLeashTargetDialogID);
|
||||
}
|
||||
|
||||
} else if (sComm == "length") {
|
||||
integer iNewLength = (integer)sVal;
|
||||
if (sVal==llToLower(BUTTON_UPMENU)){
|
||||
UserCommand(iAuth, "leash", kMessageID ,bFromMenu);
|
||||
} else if(iNewLength > 0 && iNewLength <= 30){
|
||||
//Person holding the leash can always set length.
|
||||
if (kMessageID == g_kLeashedTo || CheckCommandAuth(kMessageID, iAuth))
|
||||
{
|
||||
SetLength(iNewLength);
|
||||
//tell wearer
|
||||
Notify(kMessageID, "Leash length set to " + (string)g_iLength+"m.", TRUE);
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + TOK_LENGTH + "=" + sVal, "");
|
||||
}
|
||||
if (bFromMenu) UserCommand(iAuth, "leashmenu", kMessageID ,bFromMenu);
|
||||
}
|
||||
else { //no value given, or value out of range, must be from chat, give menu
|
||||
Notify(kMessageID, "The current leash length is " + (string)g_iLength + "m.", TRUE);
|
||||
//LengthMenu(kMessageID,iAuth);
|
||||
g_kSetLengthDialogID = Dialog(kMessageID, "\n\nSet a leash length in meter:\nCurrent length is: " + (string)g_iLength + "m", ["1", "2", "3", "4", "5", "8","10" , "15", "20", "25", "30"], [BUTTON_UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
} else if (sComm == "findpost" || sMessage == "find post") {
|
||||
if (!CheckCommandAuth(kMessageID, iAuth)) {
|
||||
if (bFromMenu) UserCommand(iAuth, "post", kMessageID ,bFromMenu);
|
||||
return TRUE;
|
||||
}
|
||||
if (sVal==llToLower(BUTTON_UPMENU)){
|
||||
UserCommand(iAuth, "post", kMessageID ,bFromMenu);
|
||||
} else if (sVal == ""){// no parameters were passed
|
||||
g_kPostTargetDialogID=llGenerateKey();
|
||||
llMessageLinked(LINK_THIS, SENSORDIALOG, (string)g_kCmdGiver + "|\n\nWhat's going to serve us as a post? If the desired object isn't on the list, please try moving closer.\n|0|``"+(string)(PASSIVE | ACTIVE)+"`10`"+(string)PI + "|BACK|" + (string)iAuth, g_kPostTargetDialogID);
|
||||
} else if(osIsUUID(sVal)) {
|
||||
list lPoints;
|
||||
if (llGetListLength(lParam) > 2) lPoints = llList2List(lParam, 2, -1);
|
||||
//debug("leash target is key");//could be a post, or could be we specified an av key
|
||||
if (bFromMenu) UserCommand(iAuth, "findpost", kMessageID ,bFromMenu);
|
||||
LeashTo((key)sVal, kMessageID, iAuth, lPoints, FALSE);
|
||||
} else {
|
||||
g_kPostTargetDialogID=llGenerateKey();
|
||||
llMessageLinked(LINK_THIS, SENSORDIALOG, (string)g_kCmdGiver + "|chatmode|0|``"+(string)(PASSIVE | ACTIVE)+"`10`"+(string)PI +"`"+sVal+"`1|BACK|" + (string)iAuth, g_kPostTargetDialogID);
|
||||
}
|
||||
|
||||
}
|
||||
} else if (iAuth == COMMAND_EVERYONE) {
|
||||
if (kMessageID == g_kLeashedTo) {
|
||||
sMessage = llToLower(sMessage);
|
||||
if (sMessage == "unleash" || sMessage == "unfollow" || (sMessage == "toggleleash" && NULL_KEY != g_kLeashedTo)) Unleash(kMessageID);
|
||||
else if (sMessage == "giveholder") llGiveInventory(kMessageID, "Leash Holder");
|
||||
else if (sMessage == "yank") YankTo(kMessageID);
|
||||
}
|
||||
} else return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
default {
|
||||
on_rez(integer start_param) {
|
||||
DoUnleash();
|
||||
}
|
||||
|
||||
state_entry() {
|
||||
//llSetMemoryLimit(65536); //this script needs to be profiled, and its memory limited
|
||||
g_kWearer = llGetOwner();
|
||||
WEARERNAME = llKey2Name(g_kWearer); //quick and dirty default, will get replaced by value from settings
|
||||
|
||||
DoUnleash();
|
||||
llMessageLinked(LINK_SET, LM_SETTING_REQUEST, RLV_STRING, "");
|
||||
//Debug("Starting");
|
||||
}
|
||||
|
||||
timer() {
|
||||
|
||||
//inlined old isInSimOrJustOutside function
|
||||
vector vLeashedToPos=llList2Vector(llGetObjectDetails(g_kLeashedTo,[OBJECT_POS]),0);
|
||||
integer iIsInSimOrJustOutside=TRUE;
|
||||
if(vLeashedToPos == ZERO_VECTOR || vLeashedToPos.x < -25 || vLeashedToPos.x > 280 || vLeashedToPos.y < -25 || vLeashedToPos.y > 280) iIsInSimOrJustOutside=FALSE;
|
||||
|
||||
|
||||
if (iIsInSimOrJustOutside && llVecDist(llGetPos(),vLeashedToPos)<60) //if the leasher is now in range
|
||||
{
|
||||
if(!g_iLeasherInRange) //and the leasher was previously not in range
|
||||
{
|
||||
if (g_iAwayCounter)
|
||||
{
|
||||
g_iAwayCounter = 0;
|
||||
llSetTimerEvent(3.0);
|
||||
}
|
||||
//Debug("leashing with "+g_sCheck);
|
||||
llMessageLinked(LINK_THIS, COMMAND_PARTICLE, "leash" + g_sCheck + "|" + (string)g_bLeashedToAvi, g_kLeashedTo);
|
||||
g_iLeasherInRange = TRUE;
|
||||
|
||||
llTargetRemove(g_iTargetHandle);
|
||||
g_vPos = vLeashedToPos;
|
||||
g_iTargetHandle = llTarget(g_vPos, (float)g_iLength);
|
||||
if (g_vPos != ZERO_VECTOR) llMoveToTarget(g_vPos, 0.7);
|
||||
ApplyRestrictions();
|
||||
}
|
||||
}
|
||||
else //the leasher is not now in range
|
||||
{
|
||||
if(g_iLeasherInRange) //but was a short while ago
|
||||
{
|
||||
if (g_iAwayCounter > 3)
|
||||
{
|
||||
llTargetRemove(g_iTargetHandle);
|
||||
llStopMoveToTarget();
|
||||
llMessageLinked(LINK_THIS, COMMAND_PARTICLE, "unleash", g_kLeashedTo);
|
||||
g_iLeasherInRange=FALSE;
|
||||
ApplyRestrictions();
|
||||
}
|
||||
}
|
||||
|
||||
g_iAwayCounter++; //+1 every 3 secs
|
||||
if (g_iAwayCounter > 200) //3mins 20 secs
|
||||
{//slow down the sensor:
|
||||
g_iAwayCounter = 1;
|
||||
llSetTimerEvent(11.0);
|
||||
}
|
||||
}
|
||||
}
|
||||
link_message(integer iPrim, integer iNum, string sMessage, key kMessageID){
|
||||
if (UserCommand(iNum, sMessage, kMessageID, FALSE)) return;
|
||||
else if (iNum == MENUNAME_REQUEST && sMessage == BUTTON_PARENTMENU) {
|
||||
//llMessageLinked(LINK_SET, MENUNAME_RESPONSE, BUTTON_PARENTMENU + "|" + BUTTON_SUBMENU, "");
|
||||
g_lButtons = [] ; // flush submenu buttons
|
||||
llMessageLinked(LINK_SET, MENUNAME_REQUEST, BUTTON_SUBMENU, "");
|
||||
} else if (iNum == MENUNAME_RESPONSE) {
|
||||
list lParts = llParseString2List(sMessage, ["|"], []);
|
||||
if (llList2String(lParts, 0) == BUTTON_SUBMENU) {//someone wants to stick something in our menu
|
||||
string button = llList2String(lParts, 1);
|
||||
if (llListFindList(g_lButtons, [button]) == -1) {
|
||||
g_lButtons = llListSort(g_lButtons + [button], 1, TRUE);
|
||||
}
|
||||
}
|
||||
} else if (iNum == COMMAND_SAFEWORD) {
|
||||
g_iStay = FALSE;
|
||||
llReleaseControls();
|
||||
DoUnleash();
|
||||
} else if (iNum == LM_SETTING_RESPONSE) {
|
||||
integer iInd = llSubStringIndex(sMessage, "=");
|
||||
string sToken = llGetSubString(sMessage, 0, iInd -1);
|
||||
string sValue = llGetSubString(sMessage, iInd + 1, -1);
|
||||
integer i = llSubStringIndex(sToken, "_");
|
||||
if (llGetSubString(sToken, 0, i) == g_sScript) {
|
||||
//Debug("got Leash settings:"+sMessage);
|
||||
sToken = llGetSubString(sToken, i + 1, -1);
|
||||
if (sToken == TOK_DEST) {
|
||||
//we got the last leasher's id and rank from the local settings
|
||||
list lParam = llParseString2List(llGetSubString(sMessage, iInd + 1, -1), [","], []);
|
||||
key kTarget = (key)llList2String(lParam, 0);
|
||||
g_bLeashedToAvi = (integer)llList2String(lParam, 2);
|
||||
g_bFollowMode = (integer)llList2String(lParam, 3);
|
||||
list lPoints;
|
||||
if (g_bLeashedToAvi) lPoints = ["collar", "handle"];
|
||||
// if PostedTo object has vanished, clear out the leash settings
|
||||
if (!llGetObjectPrimCount(kTarget) && !g_bLeashedToAvi) DoUnleash();
|
||||
else DoLeash(kTarget, (integer)llList2String(lParam, 1), lPoints);
|
||||
}
|
||||
else if (sToken == TOK_LENGTH) SetLength((integer)sValue);
|
||||
if (sToken=="strict"){
|
||||
g_iStrictModeOn = (integer)sValue;
|
||||
ApplyRestrictions();
|
||||
}
|
||||
} else if (sToken == RLV_STRING) { // something enabled or disabled RLV. Remember which
|
||||
//Debug("SetRLV:"+sValue);
|
||||
g_iRLVOn = (integer)sValue;
|
||||
ApplyRestrictions();
|
||||
} else if (sToken == "Global_CType") CTYPE = sValue;
|
||||
else if (sToken=="Global_WearerName") WEARERNAME=sValue;
|
||||
//else //Debug("setting response:"+sToken);
|
||||
} else if (iNum == DIALOG_RESPONSE) {
|
||||
list lMenuParams = llParseString2List(sMessage, ["|"], []);
|
||||
key kAV = (key)llList2String(lMenuParams, 0);
|
||||
string sButton = llList2String(lMenuParams, 1);
|
||||
integer iAuth = (integer) llList2String(lMenuParams, 3);
|
||||
if (kMessageID == g_kMainDialogID){
|
||||
if (sButton == BUTTON_UPMENU) {
|
||||
llMessageLinked(LINK_SET, iAuth, "menu "+BUTTON_PARENTMENU, kAV);
|
||||
} else if (~llListFindList(g_lButtons, [sButton])){ //process buttons other scripts added
|
||||
llMessageLinked(LINK_SET, iAuth, "menu "+sButton, kAV);
|
||||
} else { // catch all
|
||||
UserCommand(iAuth, llToLower(sButton), kAV, TRUE);
|
||||
}
|
||||
}
|
||||
else if (kMessageID == g_kLeashTargetDialogID) UserCommand(iAuth, "leashto " + sButton, kAV, TRUE);
|
||||
else if (kMessageID == g_kFollowTargetDialogID) UserCommand(iAuth, "follow " + sButton, kAV, TRUE);
|
||||
else if (kMessageID == g_kPostTargetDialogID) UserCommand(iAuth, "findpost " + sButton, kAV, TRUE);
|
||||
else if (kMessageID == g_kSetLengthDialogID) UserCommand(iAuth, "length " + sButton, kAV, TRUE);
|
||||
else if (kMessageID == g_kPostMenuDialogID) UserCommand(iAuth, "post " + sButton, kAV, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
at_target(integer iNum, vector vTarget, vector vMe){
|
||||
if (g_iTargetHandle==0) return;
|
||||
llStopMoveToTarget();
|
||||
llTargetRemove(g_iTargetHandle);
|
||||
g_iTargetHandle = 0;
|
||||
g_vPos = llList2Vector(llGetObjectDetails(g_kLeashedTo,[OBJECT_POS]),0);
|
||||
g_iTargetHandle = llTarget(g_vPos, (float)g_iLength);
|
||||
if(g_iJustMoved) {
|
||||
vector pointTo = llList2Vector(llGetObjectDetails(g_kLeashedTo,[OBJECT_POS]),0) - llGetPos();
|
||||
float turnAngle = llAtan2(pointTo.x, pointTo.y);// - myAngle;
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "setrot:" + (string)(turnAngle) + "=force", NULL_KEY); //transient command, doesn;t need our fakekey
|
||||
g_iJustMoved = 0;
|
||||
}
|
||||
}
|
||||
|
||||
not_at_target() {
|
||||
if (g_iTargetHandle==0) return;
|
||||
g_iJustMoved = 1;
|
||||
// i ran into a problem here which seems to be "speed" related, specially when using the menu to unleash this event gets triggered together or just after the CleanUp() function
|
||||
//to prevent to get stay in the target events i added a check on g_kLeashedTo is NULL_KEY
|
||||
if(g_kLeashedTo) {
|
||||
vector vNewPos = llList2Vector(llGetObjectDetails(g_kLeashedTo,[OBJECT_POS]),0);
|
||||
//llStopMoveToTarget();
|
||||
if (g_vPos != vNewPos) {
|
||||
llTargetRemove(g_iTargetHandle);
|
||||
g_vPos = vNewPos;
|
||||
g_iTargetHandle = llTarget(g_vPos, (float)g_iLength);
|
||||
}
|
||||
if (g_vPos != ZERO_VECTOR) llMoveToTarget(g_vPos,0.7);
|
||||
else llStopMoveToTarget();
|
||||
} else {
|
||||
DoUnleash();
|
||||
}
|
||||
}
|
||||
|
||||
run_time_permissions(integer iPerm)
|
||||
{
|
||||
if (iPerm & PERMISSION_TAKE_CONTROLS) {
|
||||
//disbale all controls but left mouse button (for stay cmd)
|
||||
llTakeControls(CONTROL_ROT_LEFT | CONTROL_ROT_RIGHT | CONTROL_LBUTTON | CONTROL_ML_LBUTTON, FALSE, FALSE);
|
||||
}
|
||||
}
|
||||
object_rez(key id) {
|
||||
g_iLength=3;
|
||||
DoLeash(id, g_iRezAuth, []);
|
||||
}
|
||||
changed (integer change){
|
||||
if (change & CHANGED_OWNER){
|
||||
g_kWearer = llGetOwner();
|
||||
}
|
||||
/*
|
||||
if (iChange & CHANGED_REGION) {
|
||||
if (g_iProfiled) {
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
@@ -1,989 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - leashParticle //
|
||||
// version 3.988 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//Split from the leash script in April 2010 by Garvin Twine
|
||||
//Nandana Singh, Lulu Pink, Joy Stipe, Wendy Starfall
|
||||
//Medea Destiny, Jean Severine, littlemousy, Romka Swallowtail
|
||||
|
||||
// - MESSAGE MAP
|
||||
//integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
integer COMMAND_SAFEWORD = 510;
|
||||
integer POPUP_HELP = 1001;
|
||||
// -- SETTINGS
|
||||
// - Setting strings must be in the format: "token=value"
|
||||
integer LM_SETTING_SAVE = 2000; // to have settings saved to settings store
|
||||
integer LM_SETTING_REQUEST = 2001; // send requests for settings on this channel
|
||||
integer LM_SETTING_RESPONSE = 2002; // responses received on this channel
|
||||
integer LM_SETTING_DELETE = 2003; // delete token from store
|
||||
integer LM_SETTING_EMPTY = 2004; // returned when a token has no value in the store
|
||||
// -- MENU/DIALOG
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
integer MENUNAME_REMOVE = 3003;
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
integer LOCKMEISTER = -8888;
|
||||
integer LOCKGUARD = -9119;
|
||||
integer g_iLMListener;
|
||||
integer g_iLMListernerDetach;
|
||||
|
||||
integer COMMAND_PARTICLE = 20000;
|
||||
integer COMMAND_LEASH_SENSOR = 20001;
|
||||
|
||||
// --- menu tokens ---
|
||||
string UPMENU = "BACK";
|
||||
//string MORE = ">";
|
||||
string PARENTMENU = "Leash";
|
||||
string SUBMENU = "Particle";
|
||||
string L_TEXTURE = "Texture";
|
||||
string L_DENSITY = "Density";
|
||||
string L_COLOR = "Color";
|
||||
string L_GRAVITY = "Gravity";
|
||||
string L_SIZE = "Size";
|
||||
string L_LIFE = "Life"; // ADDED FOR ST
|
||||
string L_GLOW = "Glow";
|
||||
string L_DEFAULTS = "ResetDefaults";
|
||||
|
||||
// Defalut leash particle, can read from defaultsettings:
|
||||
// User_leashDefaults=Texture~chain~Size~<0.07,0.07,1.0>~Color~<1,1,1>~Density~-0.04~Gravity~-1.1~Life~3.0~Glow~1
|
||||
//list g_lDefaultSettings = [L_TEXTURE,"chain", L_SIZE,"<0.07,0.07,1.0>", L_COLOR,"<1,1,1>", L_DENSITY,"-0.04", L_GRAVITY,"-1.0", L_LIFE, "3.0", L_GLOW, "0"];
|
||||
list g_lDefaultSettings = ["Texture","chain", "Size","<0.07,0.07,1.0>", "Color","<1,1,1>", "Density","-0.04", "Gravity","-1.0", "Life", "3.0", "Glow", "0"];
|
||||
|
||||
list g_lSettings;
|
||||
|
||||
string g_sCurrentMenu = "";
|
||||
key g_kDialogID;
|
||||
|
||||
string g_sCurrentCategory = "";
|
||||
list g_lCategories = ["Shades", "Bright", "Soft"];
|
||||
list g_lColors;
|
||||
list g_lAllColors = [
|
||||
"Light Shade|<0.82745, 0.82745, 0.82745>
|
||||
Gray Shade|<0.70588, 0.70588, 0.70588>
|
||||
Dark Shade|<0.20784, 0.20784, 0.20784>
|
||||
Brown Shade|<0.65490, 0.58431, 0.53333>
|
||||
Red Shade|<0.66275, 0.52549, 0.52549>
|
||||
Blue Shade|<0.64706, 0.66275, 0.71765>
|
||||
Green Shade|<0.62353, 0.69412, 0.61569>
|
||||
Pink Shade|<0.74510, 0.62745, 0.69020>
|
||||
Gold Shade|<0.69020, 0.61569, 0.43529>
|
||||
Black|<0.00000, 0.00000, 0.00000>
|
||||
White|<1.00000, 1.00000, 1.00000>",
|
||||
"Magenta|<1.00000, 0.00000, 0.50196>
|
||||
Pink|<1.00000, 0.14902, 0.50980>
|
||||
Hot Pink|<1.00000, 0.05490, 0.72157>
|
||||
Firefighter|<0.88627, 0.08627, 0.00392>
|
||||
Sun|<1.00000, 1.00000, 0.18039>
|
||||
Flame|<0.92941, 0.43529, 0.00000>
|
||||
Matrix|<0.07843, 1.00000, 0.07843>
|
||||
Electricity|<0.00000, 0.46667, 0.92941>
|
||||
Violet Wand|<0.63922, 0.00000, 0.78824>
|
||||
Black|<0.00000, 0.00000, 0.00000>
|
||||
White|<1.00000, 1.00000, 1.00000>",
|
||||
"Baby Blue|<0.75686, 0.75686, 1.00000>
|
||||
Baby Pink|<1.00000, 0.52157, 0.76078>
|
||||
Rose|<0.93333, 0.64314, 0.72941>
|
||||
Beige|<0.86667, 0.78039, 0.71765>
|
||||
Earth|<0.39608, 0.27451, 0.18824>
|
||||
Ocean|<0.25882, 0.33725, 0.52549>
|
||||
Yolk|<0.98824, 0.73333, 0.29412>
|
||||
Wasabi|<0.47059, 1.00000, 0.65098>
|
||||
Lavender|<0.89020, 0.65882, 0.99608>
|
||||
Black|<0.00000, 0.00000, 0.00000>
|
||||
White|<1.00000, 1.00000, 1.00000>"
|
||||
];
|
||||
|
||||
// ----- collar -----
|
||||
//string g_sWearerName;
|
||||
string CTYPE = "collar";
|
||||
key g_kWearer;
|
||||
|
||||
key NULLKEY = "";
|
||||
key g_kLeashedTo = ""; //NULLKEY;
|
||||
key g_kLeashToPoint = ""; //NULLKEY;
|
||||
key g_kParticleTarget = ""; //NULLKEY;
|
||||
integer g_bLeasherInRange;
|
||||
integer g_bInvisibleLeash = FALSE;
|
||||
integer g_iAwayCounter;
|
||||
|
||||
integer g_bLeashActive;
|
||||
|
||||
//List of 4 leash/chain points, lockmeister names used (list has to be all lower case, prims dont matter, converting on compare to lower case)
|
||||
//strided list... LM name, linkNumber, BOOL_ACVTIVE
|
||||
list g_lLeashPrims;
|
||||
|
||||
|
||||
//global integer used for loops
|
||||
integer g_iLoop;
|
||||
string g_sScript;
|
||||
|
||||
//Particle system and variables
|
||||
|
||||
string g_sParticleTexture = "chain";
|
||||
string g_sParticleTextureID; //we need the UUID for llLinkParticleSystem
|
||||
float g_fLeashLength;
|
||||
vector g_vLeashColor = <1,1,1>;
|
||||
//vector g_vLeashSize = <0.22, 0.17, 0.0>; // CHANGED FROM DEFAULT <0.07, 0.07, 1.0>, JEAN SEVERINE 2012-02-22
|
||||
vector g_vLeashSize = <0.07, 0.07, 1.0>; // CHANGED back
|
||||
integer g_bParticleGlow = TRUE;
|
||||
float g_fParticleAge = 1.0;
|
||||
float g_fParticleAlpha = 1.0;
|
||||
vector g_vLeashGravity = <0.0,0.0,-1.0>;
|
||||
integer g_iParticleCount = 1;
|
||||
float g_fBurstRate = 0.04;
|
||||
//same g_lSettings but to store locally the default settings recieved from the defaultsettings note card, using direct string here to save some bits
|
||||
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
key Dialog(key kRCPT, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth)
|
||||
{
|
||||
key kID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kRCPT + "|" + sPrompt + "|" + (string)iPage + "|" + llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kID);
|
||||
//Debug("Made menu.");
|
||||
return kID;
|
||||
}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer)
|
||||
{
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else
|
||||
{
|
||||
if (llGetAgentSize(kID)!=ZERO_VECTOR) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
FindLinkedPrims()
|
||||
{
|
||||
integer linkcount = llGetNumberOfPrims();
|
||||
//root prim is 1, so start at 2
|
||||
for (g_iLoop = 2; g_iLoop <= linkcount; g_iLoop++)
|
||||
{
|
||||
string sPrimDesc = (string)llGetObjectDetails(llGetLinkKey(g_iLoop), [OBJECT_DESC]);
|
||||
list lTemp = llParseString2List(sPrimDesc, ["~"], []);
|
||||
integer iLoop;
|
||||
for (iLoop = 0; iLoop < llGetListLength(lTemp); iLoop++)
|
||||
{
|
||||
string sTest = llList2String(lTemp, iLoop);
|
||||
//Debug(sTest);
|
||||
//expected either "leashpoint" or "leashpoint:point"
|
||||
if (llGetSubString(sTest, 0, 9) == "leashpoint")
|
||||
{
|
||||
if (llGetSubString(sTest, 11, -1) == "")
|
||||
{
|
||||
g_lLeashPrims += [sTest, (string)g_iLoop, "1"];
|
||||
}
|
||||
else
|
||||
{
|
||||
g_lLeashPrims += [llGetSubString(sTest, 11, -1), (string)g_iLoop, "1"];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//if we did not find any leashpoint... we unset the root as one
|
||||
if (!llGetListLength(g_lLeashPrims))
|
||||
{
|
||||
g_lLeashPrims = ["collar", LINK_THIS, "1"];
|
||||
}
|
||||
}
|
||||
|
||||
Particles(integer iLink, key kParticleTarget)
|
||||
{
|
||||
//when we have no target to send particles to, dont create any
|
||||
if (kParticleTarget == NULLKEY)
|
||||
{
|
||||
return;
|
||||
}
|
||||
//taken out as vars to save memory
|
||||
//float fMaxSpeed = 3.0; // Max speed each particle is spit out at
|
||||
//float fMinSpeed = 3.0; // Min speed each particle is spit out at
|
||||
//these values do nothing when particles go to a target, the speed is determined by the particle age then
|
||||
//integer iFlags = PSYS_PART_INTERP_COLOR_MASK | PSYS_PART_INTERP_SCALE_MASK | PSYS_PART_FOLLOW_VELOCITY_MASK | PSYS_PART_TARGET_POS_MASK;
|
||||
integer iFlags = PSYS_PART_FOLLOW_VELOCITY_MASK | PSYS_PART_TARGET_POS_MASK|PSYS_PART_FOLLOW_SRC_MASK;
|
||||
|
||||
if (g_bParticleGlow) iFlags = iFlags | PSYS_PART_EMISSIVE_MASK;
|
||||
|
||||
list lTemp = [
|
||||
PSYS_PART_MAX_AGE,g_fParticleAge,
|
||||
PSYS_PART_FLAGS,iFlags,
|
||||
PSYS_PART_START_COLOR, g_vLeashColor,
|
||||
//PSYS_PART_END_COLOR, g_vLeashColor,
|
||||
PSYS_PART_START_SCALE,g_vLeashSize,
|
||||
//PSYS_PART_END_SCALE,g_vLeashSize,
|
||||
PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_DROP,
|
||||
PSYS_SRC_BURST_RATE,g_fBurstRate,
|
||||
PSYS_SRC_ACCEL, g_vLeashGravity,
|
||||
PSYS_SRC_BURST_PART_COUNT,g_iParticleCount,
|
||||
//PSYS_SRC_BURST_SPEED_MIN,fMinSpeed,
|
||||
//PSYS_SRC_BURST_SPEED_MAX,fMaxSpeed,
|
||||
PSYS_SRC_TARGET_KEY,kParticleTarget,
|
||||
PSYS_SRC_MAX_AGE, 0,
|
||||
PSYS_SRC_TEXTURE, g_sParticleTextureID
|
||||
//PSYS_PART_START_ALPHA, g_fParticleAlpha,
|
||||
//PSYS_PART_END_ALPHA, g_fParticleAlpha
|
||||
];
|
||||
llLinkParticleSystem(iLink, lTemp);
|
||||
}
|
||||
|
||||
StartParticles(key kParticleTarget)
|
||||
{
|
||||
//Debug(llList2CSV(g_lLeashPrims));
|
||||
for (g_iLoop = 0; g_iLoop < llGetListLength(g_lLeashPrims); g_iLoop = g_iLoop + 3)
|
||||
{
|
||||
if ((integer)llList2String(g_lLeashPrims, g_iLoop + 2))
|
||||
{
|
||||
Particles((integer)llList2String(g_lLeashPrims, g_iLoop + 1), kParticleTarget);
|
||||
}
|
||||
}
|
||||
g_bLeashActive = TRUE;
|
||||
}
|
||||
|
||||
StopParticles(integer iEnd)
|
||||
{
|
||||
for (g_iLoop = 0; g_iLoop < llGetListLength(g_lLeashPrims); g_iLoop++)
|
||||
{
|
||||
llLinkParticleSystem((integer)llList2String(g_lLeashPrims, g_iLoop + 1), []);
|
||||
}
|
||||
if (iEnd)
|
||||
{
|
||||
g_bLeashActive = FALSE;
|
||||
g_kLeashedTo = NULLKEY;
|
||||
g_kLeashToPoint = NULLKEY;
|
||||
g_kParticleTarget = NULLKEY;
|
||||
llSensorRemove();
|
||||
}
|
||||
}
|
||||
|
||||
string Vec2String(vector vVec)
|
||||
{
|
||||
list lParts = [vVec.x, vVec.y, vVec.z];
|
||||
for (g_iLoop = 0; g_iLoop < 3; g_iLoop++)
|
||||
{
|
||||
string sStr = llList2String(lParts, g_iLoop);
|
||||
//remove any trailing 0's or .'s from sStr
|
||||
//while ((~(integer)llSubStringIndex(sStr, ".")) && (llGetSubString(sStr, -1, -1) == "0" || llGetSubString(sStr, -1, -1) == "."))
|
||||
while ((~llSubStringIndex(sStr, ".")) && (llGetSubString(sStr, -1, -1) == "0" || llGetSubString(sStr, -1, -1) == "."))
|
||||
{
|
||||
sStr = llGetSubString(sStr, 0, -2);
|
||||
}
|
||||
lParts = llListReplaceList(lParts, [sStr], g_iLoop, g_iLoop);
|
||||
}
|
||||
return "<" + llDumpList2String(lParts, ",") + ">";
|
||||
}
|
||||
|
||||
string Float2String(float in)
|
||||
{
|
||||
string out = (string)in;
|
||||
integer i = llSubStringIndex(out, ".");
|
||||
while ((~i) && llStringLength(llGetSubString(out, i + 2, -1)) && llGetSubString(out, -1, -1) == "0")
|
||||
{
|
||||
out = llGetSubString(out, 0, -2);
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
SaveSettings(string sToken, string sValue, integer bSaveToLocal)
|
||||
{
|
||||
integer iIndex = llListFindList(g_lSettings, [sToken]);
|
||||
if (iIndex>=0)
|
||||
{
|
||||
g_lSettings = llListReplaceList(g_lSettings, [sValue], iIndex +1, iIndex +1);
|
||||
}
|
||||
else
|
||||
{
|
||||
g_lSettings += [sToken, sValue];
|
||||
}
|
||||
if (bSaveToLocal)
|
||||
{
|
||||
llMessageLinked(LINK_THIS, LM_SETTING_SAVE, g_sScript + sToken + "=" + sValue, "");
|
||||
}
|
||||
}
|
||||
|
||||
SaveDefaultSettings(string sToken, string sValue)
|
||||
{
|
||||
integer index = llListFindList(g_lDefaultSettings, [sToken]);
|
||||
if (index>=0)
|
||||
{
|
||||
g_lDefaultSettings = llListReplaceList(g_lDefaultSettings, [sValue], index+1, index+1);
|
||||
}
|
||||
else
|
||||
{
|
||||
g_lDefaultSettings += [sToken, sValue];
|
||||
}
|
||||
}
|
||||
|
||||
string GetDefaultSetting(string sToken)
|
||||
{
|
||||
integer index = llListFindList(g_lDefaultSettings, [sToken]);
|
||||
return llList2String(g_lDefaultSettings, index + 1);
|
||||
}
|
||||
|
||||
string GetSetting(string sToken)
|
||||
{
|
||||
integer index = llListFindList(g_lSettings, [sToken]);
|
||||
if (index != -1) return llList2String(g_lSettings, index + 1);
|
||||
else return GetDefaultSetting(sToken); // return from defaultsettings if not present
|
||||
}
|
||||
|
||||
// get settings before StartParticles
|
||||
GetSettings()
|
||||
{
|
||||
g_fBurstRate = (float)GetSetting(L_DENSITY);
|
||||
g_vLeashGravity.z = (float)GetSetting(L_GRAVITY);
|
||||
g_vLeashSize = (vector)GetSetting(L_SIZE);
|
||||
g_fParticleAge = (float)GetSetting(L_LIFE); // ADDED FOR ST
|
||||
g_vLeashColor = (vector)GetSetting(L_COLOR);
|
||||
//g_bParticleGlow = (integer)GetSetting(L_GLOW);
|
||||
string glow = llToLower(GetSetting(L_GLOW));
|
||||
if (glow == "off" || glow == "0") g_bParticleGlow = 0 ;
|
||||
if (glow == "on" || glow == "1") g_bParticleGlow = 1 ;
|
||||
SetTexture(GetSetting(L_TEXTURE), NULLKEY);
|
||||
}
|
||||
|
||||
// Added bSave as a boolean, to make this a more versatile wrapper
|
||||
SetTexture(string sIn, key kIn)
|
||||
{
|
||||
g_sParticleTexture = sIn;
|
||||
if (sIn=="chain"){
|
||||
g_sParticleTextureID="796ef797-1726-4409-a70f-cd64304ada22";
|
||||
} else if (sIn=="rope"){
|
||||
g_sParticleTextureID="36b304cc-6209-4f47-9e4a-a68901e98e6e";
|
||||
} else if (sIn=="totallytransparent"){
|
||||
g_sParticleTextureID="8dcd4a48-2d37-4909-9f78-f7a9eb4ef903";
|
||||
} else {
|
||||
if (llToLower(g_sParticleTexture) == "noleash")
|
||||
{
|
||||
g_bInvisibleLeash = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_bInvisibleLeash = FALSE;
|
||||
}
|
||||
//Debug("particleTexture= " + sIn);
|
||||
g_sParticleTextureID = llGetInventoryKey(sIn);
|
||||
if(g_sParticleTextureID == NULL_KEY) g_sParticleTextureID=sIn; //for textures without full perm, we send the texture name. For this to work, texture must be in the emitter prim as well as in root, if different.
|
||||
}
|
||||
//Debug("particleTextureID= " + (string)g_sParticleTextureID);
|
||||
if (kIn)
|
||||
{
|
||||
Notify(kIn, "Leash texture set to " + g_sParticleTexture, FALSE);
|
||||
}
|
||||
//Debug("activeleashpoints= " + (string)g_bLeashActive);
|
||||
if (g_bLeashActive)
|
||||
{
|
||||
if (g_bInvisibleLeash)
|
||||
{
|
||||
StopParticles(FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
StartParticles(g_kParticleTarget);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
integer KeyIsAv(key id)
|
||||
{
|
||||
return llGetAgentSize(id) != ZERO_VECTOR;
|
||||
}
|
||||
|
||||
//Menus
|
||||
|
||||
OptionsMenu(key kIn, integer iAuth)
|
||||
{
|
||||
g_sCurrentMenu = SUBMENU;
|
||||
list lButtons = [L_TEXTURE, L_DENSITY, L_GRAVITY, L_COLOR, L_SIZE, L_LIFE];
|
||||
if (g_bParticleGlow)
|
||||
{
|
||||
lButtons += "GlowOff";
|
||||
}
|
||||
else
|
||||
{
|
||||
lButtons += "GlowOn";
|
||||
}
|
||||
lButtons += [L_DEFAULTS];
|
||||
string sPrompt = "\nCustomize the looks and feel of your leash.";
|
||||
g_kDialogID = Dialog(kIn, sPrompt, lButtons, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
DensityMenu(key kIn, integer iAuth)
|
||||
{
|
||||
list lButtons = ["+", "−", "Default"];
|
||||
g_sCurrentMenu = L_DENSITY;
|
||||
string Default = GetDefaultSetting(L_DENSITY);
|
||||
string sPrompt = "\nChoose + for more and − for less particles\n'Default' to revert to the default: "+Default;
|
||||
sPrompt += "\n\nCurrent Density = "+Float2String(g_fBurstRate) ;// BurstRate is opposite the implied effect of density
|
||||
g_kDialogID = Dialog(kIn, sPrompt, lButtons, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
GravityMenu(key kIn, integer iAuth)
|
||||
{
|
||||
list lButtons = ["+", "−", "Default", "noGravity"];
|
||||
g_sCurrentMenu = L_GRAVITY;
|
||||
string Default = GetDefaultSetting(L_GRAVITY);
|
||||
string sPrompt = "\nChoose + for more and − for less leash-gravity\n'Default' to revert to the default: "+Default;
|
||||
sPrompt += "\n\nCurrent Gravity = "+Float2String(g_vLeashGravity.z) ;
|
||||
g_kDialogID = Dialog(kIn, sPrompt, lButtons, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
SizeMenu(key kIn, integer iAuth)
|
||||
{
|
||||
list lButtons = ["X+", "Y+", "Default", "X-", "Y-", "MIN"]; // ADDED FOR ST changed "minimum" to "MIN"
|
||||
g_sCurrentMenu = L_SIZE;
|
||||
vector defaultsize = (vector)GetDefaultSetting(L_SIZE);
|
||||
string sPrompt = "\nChoose '+' for bigger and '-' for smaller size of the leash texture";
|
||||
sPrompt += "\n'Default' to revert to the default size: "+Float2String(defaultsize.x)+" x "+Float2String(defaultsize.y);
|
||||
sPrompt += "\n'MIN' for the smallest possible: 0.04 x 0.04\n" ;
|
||||
sPrompt += "\nCurrent Size = "+ Float2String(g_vLeashSize.x)+" x "+Float2String(g_vLeashSize.y) + " (0.03 steps)";
|
||||
g_kDialogID = Dialog(kIn, sPrompt, lButtons, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
LifeMenu(key kIn, integer iAuth) // ADDED FOR ST
|
||||
{
|
||||
list lButtons = ["+0.1", "+0.5", "Default", "-0.1", "-0.5", "MIN"];
|
||||
g_sCurrentMenu = L_LIFE;
|
||||
string sPrompt = "\nChoose '+' for longer or '-' for shorter life,";
|
||||
sPrompt += "\n'Default' to revert to the default life: "+GetDefaultSetting(L_LIFE);
|
||||
sPrompt += "\n'MIN' for the shortest life: 0.1\n";
|
||||
sPrompt += "\nCurrent Life = "+llGetSubString((string)g_fParticleAge,0,2);
|
||||
g_kDialogID = Dialog(kIn, sPrompt, lButtons, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
ColorCategoryMenu(key kIn, integer iAuth)
|
||||
{
|
||||
//give kAv a dialog with a list of color cards
|
||||
string sPrompt = "\nChoose a color category.";
|
||||
g_sCurrentMenu = "L-ColorCat";
|
||||
g_kDialogID = Dialog(kIn, sPrompt, g_lCategories, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
ColorMenu(key kIn, integer iAuth)
|
||||
{
|
||||
string sPrompt = "\nChoose a color.";
|
||||
list lButtons = llList2ListStrided(g_lColors,0,-1,2);
|
||||
g_sCurrentMenu = L_COLOR;
|
||||
g_kDialogID = Dialog(kIn, sPrompt, lButtons, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
TextureMenu(key kIn, integer iAuth)
|
||||
{
|
||||
list lButtons = ["Default", "chain","rope"];
|
||||
integer iLoop;
|
||||
string sName;
|
||||
integer iCount = llGetInventoryNumber(0);
|
||||
for (iLoop = 0; iLoop < iCount; iLoop++)
|
||||
{
|
||||
sName = llGetInventoryName(0, iLoop);
|
||||
if (sName == "chain" || sName == "rope")
|
||||
{
|
||||
lButtons += [sName];
|
||||
}
|
||||
else if (llGetSubString(sName, 0, 5) == "leash_")
|
||||
{
|
||||
sName = llDeleteSubString(sName, 0, 5);
|
||||
if (llStringLength(sName) > 24)
|
||||
{
|
||||
Notify(kIn, "Omitting '" + sName + "' from texture menu because it is too long. Please rename it.", TRUE);
|
||||
}
|
||||
else
|
||||
{
|
||||
lButtons += [sName];
|
||||
}
|
||||
}
|
||||
}
|
||||
lButtons += ["noTexture", "noLeash"];
|
||||
g_sCurrentMenu = L_TEXTURE;
|
||||
string sPrompt = "\nChoose a texture\nnoTexture does default SL particle dots\nnoLeash means no particle leash at all\n\nCurrent Texture = ";
|
||||
sPrompt += g_sParticleTexture;
|
||||
g_kDialogID = Dialog(kIn, sPrompt, lButtons, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
LMSay()
|
||||
{
|
||||
llShout(LOCKMEISTER, (string)llGetOwnerKey(g_kLeashedTo) + "collar");
|
||||
llShout(LOCKMEISTER, (string)llGetOwnerKey(g_kLeashedTo) + "handle");
|
||||
}
|
||||
|
||||
default {
|
||||
on_rez(integer iRez) {
|
||||
llResetScript();
|
||||
}
|
||||
|
||||
state_entry() {
|
||||
//llSetMemoryLimit(65536); //this script needs to be profiled, and its memory limited
|
||||
g_sScript = "leashParticle_";
|
||||
g_kWearer = llGetOwner();
|
||||
FindLinkedPrims();
|
||||
StopParticles(TRUE);
|
||||
llListen(COMMAND_PARTICLE,"","",""); // ADDED FOR BETA 0.1
|
||||
//Debug("Starting");
|
||||
}
|
||||
|
||||
link_message(integer iSenderPrim, integer iNum, string sMessage, key kMessageID)
|
||||
{
|
||||
if (iNum == COMMAND_PARTICLE)
|
||||
{
|
||||
g_kLeashedTo = kMessageID;
|
||||
if (sMessage == "unleash")
|
||||
{
|
||||
StopParticles(TRUE);
|
||||
llListenRemove(g_iLMListener);
|
||||
llListenRemove(g_iLMListernerDetach);
|
||||
}
|
||||
else
|
||||
{
|
||||
//Debug("leash active");
|
||||
if (! g_bInvisibleLeash)
|
||||
{
|
||||
integer bLeasherIsAv = (integer)llList2String(llParseString2List(sMessage, ["|"], [""]), 1);
|
||||
g_kParticleTarget = g_kLeashedTo;
|
||||
StartParticles(g_kParticleTarget);
|
||||
if (bLeasherIsAv)
|
||||
{
|
||||
llListenRemove(g_iLMListener);
|
||||
llListenRemove(g_iLMListernerDetach);
|
||||
if (llGetSubString(sMessage, 0, 10) == "leashhandle")
|
||||
{
|
||||
g_iLMListener = llListen(LOCKMEISTER, "", "", (string)g_kLeashedTo + "handle ok");
|
||||
g_iLMListernerDetach = llListen(LOCKMEISTER, "", "", (string)g_kLeashedTo + "handle detached");
|
||||
}
|
||||
else
|
||||
{
|
||||
g_iLMListener = llListen(LOCKMEISTER, "", "", "");
|
||||
}
|
||||
LMSay();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (iNum >= COMMAND_OWNER && iNum <= COMMAND_WEARER)
|
||||
{
|
||||
if (llToLower(sMessage) == llToLower(SUBMENU))
|
||||
{
|
||||
if(iNum == COMMAND_OWNER) OptionsMenu(kMessageID, iNum);
|
||||
else Notify(kMessageID, "Leash Options can only be changed by " + CTYPE + " Owners.", FALSE);
|
||||
}
|
||||
else if (sMessage == "menu "+SUBMENU)
|
||||
{
|
||||
if(iNum == COMMAND_OWNER) OptionsMenu(kMessageID, iNum);
|
||||
else
|
||||
{
|
||||
Notify(kMessageID, "Leash Options can only be changed by " + CTYPE + " Owners.", FALSE);
|
||||
llMessageLinked(LINK_SET, iNum, "menu "+PARENTMENU, kMessageID);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (iNum == MENUNAME_REQUEST && sMessage == PARENTMENU)
|
||||
{
|
||||
llMessageLinked(LINK_SET, MENUNAME_RESPONSE, PARENTMENU + "|" + SUBMENU, "");
|
||||
}
|
||||
else if (iNum == DIALOG_RESPONSE)
|
||||
{
|
||||
if (kMessageID == g_kDialogID)
|
||||
{
|
||||
list lMenuParams = llParseString2List(sMessage, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sButton = llList2String(lMenuParams, 1);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
if (sButton == UPMENU)
|
||||
{
|
||||
if(g_sCurrentMenu == SUBMENU)
|
||||
{
|
||||
llMessageLinked(LINK_SET, iAuth, "menu " + PARENTMENU, kAv);
|
||||
}
|
||||
else if (g_sCurrentMenu == L_COLOR)
|
||||
{
|
||||
ColorCategoryMenu(kAv, iAuth);
|
||||
}
|
||||
else
|
||||
{
|
||||
OptionsMenu(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
else if (g_sCurrentMenu == "Particle")
|
||||
{
|
||||
if (sButton == L_DEFAULTS)
|
||||
{
|
||||
g_lSettings = []; // clear current settings
|
||||
Notify(kAv, "Leash-settings restored to " + CTYPE + " defaults.", FALSE);
|
||||
// Cleo: as we use standard, no reason to keep the local settings
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, g_sScript + "all", "");
|
||||
if (!g_bInvisibleLeash && g_bLeashActive)
|
||||
{
|
||||
GetSettings(); // get settings before
|
||||
StartParticles(g_kParticleTarget);
|
||||
}
|
||||
OptionsMenu(kAv, iAuth);
|
||||
}
|
||||
else if (sButton == L_TEXTURE)
|
||||
{
|
||||
TextureMenu(kAv, iAuth);
|
||||
}
|
||||
else if (sButton == L_COLOR)
|
||||
{
|
||||
ColorCategoryMenu(kAv, iAuth);
|
||||
}
|
||||
else if (sButton == L_DENSITY)
|
||||
{
|
||||
DensityMenu(kAv, iAuth);
|
||||
}
|
||||
else if (sButton == L_GRAVITY)
|
||||
{
|
||||
GravityMenu(kAv, iAuth);
|
||||
}
|
||||
else if (sButton == L_SIZE)
|
||||
{
|
||||
SizeMenu(kAv, iAuth);
|
||||
}
|
||||
else if (sButton == L_LIFE) // ADDED FOR ST
|
||||
{
|
||||
LifeMenu(kAv, iAuth);
|
||||
}
|
||||
else if (llGetSubString(sButton, 0, 3) == L_GLOW)
|
||||
{
|
||||
g_bParticleGlow = !g_bParticleGlow;
|
||||
SaveSettings(L_GLOW, (string)g_bParticleGlow, TRUE);
|
||||
if (!g_bInvisibleLeash && g_bLeashActive)
|
||||
{
|
||||
StartParticles(g_kParticleTarget);
|
||||
}
|
||||
OptionsMenu(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
else if (g_sCurrentMenu == "L-ColorCat")
|
||||
{
|
||||
g_sCurrentCategory = sButton;
|
||||
integer iIndex = llListFindList(g_lCategories,[sButton]);
|
||||
g_lColors = llParseString2List(llList2String(g_lAllColors, iIndex), ["\n", "|"], []);
|
||||
g_lColors = llListSort(g_lColors, 2, TRUE);
|
||||
ColorMenu(kAv, iAuth);
|
||||
}
|
||||
else if (g_sCurrentMenu == L_COLOR)
|
||||
{
|
||||
integer iIndex = llListFindList(g_lColors, [sButton]) +1;
|
||||
if (iIndex)
|
||||
{
|
||||
g_vLeashColor = (vector)llList2String(g_lColors, iIndex);
|
||||
SaveSettings(L_COLOR, Vec2String(g_vLeashColor), TRUE);
|
||||
}
|
||||
if (!g_bInvisibleLeash && g_bLeashActive)
|
||||
{
|
||||
StartParticles(g_kParticleTarget);
|
||||
}
|
||||
ColorMenu(kAv, iAuth);
|
||||
}
|
||||
else if (g_sCurrentMenu == L_TEXTURE)
|
||||
{
|
||||
g_bInvisibleLeash = FALSE;
|
||||
if (sButton == "Default")
|
||||
{
|
||||
SetTexture(GetDefaultSetting(L_TEXTURE), kAv);
|
||||
}
|
||||
else if (sButton == "chain")
|
||||
{
|
||||
SetTexture(sButton, kAv);
|
||||
}
|
||||
else if(sButton == "rope")
|
||||
{
|
||||
SetTexture(sButton, kAv);
|
||||
}
|
||||
else if (sButton == "noTexture")
|
||||
{
|
||||
SetTexture(sButton, kAv);
|
||||
}
|
||||
else if (sButton == "noLeash")
|
||||
{
|
||||
SetTexture(sButton, kAv);
|
||||
}
|
||||
else
|
||||
{
|
||||
sButton = "leash_" + sButton;
|
||||
if (llGetInventoryType(sButton)==INVENTORY_TEXTURE) //the texture exists
|
||||
{
|
||||
SetTexture(sButton, kAv);
|
||||
}
|
||||
}
|
||||
SaveSettings(L_TEXTURE, g_sParticleTexture, TRUE);
|
||||
TextureMenu(kAv, iAuth);
|
||||
}
|
||||
else if (g_sCurrentMenu == L_DENSITY)
|
||||
{
|
||||
if (sButton == "Default")
|
||||
{
|
||||
g_fBurstRate = (float)GetDefaultSetting(L_DENSITY);
|
||||
}
|
||||
else if (sButton == "+")
|
||||
{
|
||||
g_fBurstRate -= 0.01;
|
||||
}
|
||||
else if (sButton == "−")
|
||||
{
|
||||
g_fBurstRate += 0.01;
|
||||
}
|
||||
if (!g_bInvisibleLeash && g_bLeashActive)
|
||||
{
|
||||
StartParticles(g_kParticleTarget);
|
||||
}
|
||||
SaveSettings(L_DENSITY, Float2String(g_fBurstRate), TRUE);
|
||||
DensityMenu(kAv, iAuth);
|
||||
}
|
||||
else if (g_sCurrentMenu == L_GRAVITY)
|
||||
{
|
||||
if (sButton == "Default")
|
||||
{
|
||||
g_vLeashGravity.z = (float)GetDefaultSetting(L_GRAVITY);
|
||||
}
|
||||
else if (sButton == "+")
|
||||
{
|
||||
g_vLeashGravity.z -= 0.1;
|
||||
if (g_vLeashGravity.z < -3.0)
|
||||
{
|
||||
g_vLeashGravity.z = -3.0;
|
||||
Notify(kAv, "You have already reached maximum gravity.", FALSE);
|
||||
}
|
||||
}
|
||||
else if (sButton == "−")
|
||||
{
|
||||
g_vLeashGravity.z += 0.1;
|
||||
if (g_vLeashGravity.z > 0.0)
|
||||
{
|
||||
g_vLeashGravity.z = 0.0 ;
|
||||
Notify(kAv, "You have already reached 0 leash-gravity.", FALSE);
|
||||
}
|
||||
}
|
||||
else if (sButton == "noGravity")
|
||||
{
|
||||
g_vLeashGravity = <0.0,0.0,0.0>;
|
||||
}
|
||||
if (!g_bInvisibleLeash && g_bLeashActive)
|
||||
{
|
||||
StartParticles(g_kParticleTarget);
|
||||
}
|
||||
SaveSettings(L_GRAVITY, Float2String(g_vLeashGravity.z), TRUE);
|
||||
GravityMenu(kAv, iAuth);
|
||||
}
|
||||
else if (g_sCurrentMenu == L_SIZE)
|
||||
{
|
||||
if (sButton == "Default")
|
||||
{
|
||||
g_vLeashSize = (vector)GetDefaultSetting(L_SIZE);
|
||||
}
|
||||
else if (sButton == "X+")
|
||||
{
|
||||
g_vLeashSize.x +=0.03;
|
||||
}
|
||||
else if (sButton == "Y+")
|
||||
{
|
||||
g_vLeashSize.y +=0.03;
|
||||
}
|
||||
else if (sButton == "X-")
|
||||
{
|
||||
g_vLeashSize.x -=0.03;
|
||||
if (g_vLeashSize.x < 0.04)
|
||||
{
|
||||
g_vLeashSize.x = 0.04 ;
|
||||
Notify(kAv, "You have reached the minimum size for particles.", FALSE);
|
||||
}
|
||||
}
|
||||
else if (sButton == "Y-")
|
||||
{
|
||||
g_vLeashSize.y -=0.03;
|
||||
if (g_vLeashSize.y < 0.04)
|
||||
{
|
||||
g_vLeashSize.y = 0.04 ;
|
||||
Notify(kAv, "You have reached the minimum size for particles.", FALSE);
|
||||
}
|
||||
}
|
||||
else if (sButton == "MIN") // ADDED FOR ST changed "minimum" to "MIN"
|
||||
{
|
||||
g_vLeashSize = <0.04,0.04,0.0>;
|
||||
}
|
||||
if (!g_bInvisibleLeash && g_bLeashActive)
|
||||
{
|
||||
StartParticles(g_kParticleTarget);
|
||||
}
|
||||
SaveSettings(L_SIZE, Vec2String(g_vLeashSize), TRUE);
|
||||
SizeMenu(kAv, iAuth);
|
||||
}
|
||||
else if (g_sCurrentMenu == L_LIFE) // ADDED FOR ST
|
||||
{
|
||||
if (sButton == "Default")
|
||||
{
|
||||
g_fParticleAge = (float)GetDefaultSetting(L_LIFE);
|
||||
}
|
||||
else if (sButton == "+0.5")
|
||||
{
|
||||
g_fParticleAge += 0.5;
|
||||
}
|
||||
else if (sButton == "-0.5")
|
||||
{
|
||||
//if (g_fParticleAge <= 0.5)
|
||||
//{
|
||||
// Notify(kAv, "Use the -0.1 button to reach minimum particle life.", FALSE);
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
g_fParticleAge -= 0.5;
|
||||
//}
|
||||
|
||||
if (g_fParticleAge < 0.1)
|
||||
{
|
||||
g_fParticleAge = 0.1;
|
||||
Notify(kAv, "You have reached minimum particle life.", FALSE);
|
||||
}
|
||||
}
|
||||
else if (sButton == "+0.1")
|
||||
{
|
||||
g_fParticleAge += 0.1;
|
||||
}
|
||||
else if (sButton == "-0.1")
|
||||
{
|
||||
g_fParticleAge -= 0.1;
|
||||
if (g_fParticleAge < 0.1)
|
||||
{
|
||||
g_fParticleAge = 0.1;
|
||||
Notify(kAv, "You have reached minimum particle life.", FALSE);
|
||||
}
|
||||
}
|
||||
else if (sButton == "MIN")
|
||||
{
|
||||
g_fParticleAge = 0.1;
|
||||
}
|
||||
if (!g_bInvisibleLeash && g_bLeashActive)
|
||||
{
|
||||
StartParticles(g_kParticleTarget);
|
||||
}
|
||||
SaveSettings(L_LIFE, Float2String(g_fParticleAge), TRUE);
|
||||
LifeMenu(kAv,iAuth);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (iNum == LM_SETTING_RESPONSE)
|
||||
{
|
||||
//Debug ("LocalSettingsResponse: " + sMessage);
|
||||
integer i = llSubStringIndex(sMessage, "=");
|
||||
string sToken = llGetSubString(sMessage, 0, i - 1);
|
||||
string sValue = llGetSubString(sMessage, i + 1, -1);
|
||||
i = llSubStringIndex(sToken, "_");
|
||||
if (sToken == "leash_leashedto")
|
||||
{
|
||||
g_kLeashedTo = (key)llList2String(llParseString2List(sValue, [","], []), 0);
|
||||
}
|
||||
else if (llGetSubString(sToken, 0, i) == g_sScript)
|
||||
{
|
||||
// load current settings
|
||||
sToken = llGetSubString(sToken, i + 1, -1);
|
||||
SaveSettings(sToken, sValue, FALSE);
|
||||
SaveDefaultSettings(sToken, sValue);
|
||||
}
|
||||
else if (sToken == "Global_CType") CTYPE = sValue;
|
||||
// in case wearer is currently leashed
|
||||
else if (sMessage == "settings=sent")
|
||||
{
|
||||
GetSettings(); // get settings before
|
||||
if (g_kLeashedTo != NULLKEY) StartParticles(g_kParticleTarget);
|
||||
}
|
||||
}
|
||||
else if (iNum == LM_SETTING_DELETE)
|
||||
{
|
||||
if (sMessage == "leash_leashedto")
|
||||
{
|
||||
StopParticles(TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
listen(integer iChannel, string sName, key kID, string sMessage)
|
||||
{
|
||||
if (iChannel == LOCKMEISTER)
|
||||
{
|
||||
//leash holder announced it got detached... send particles to avi
|
||||
if (sMessage == (string)g_kLeashedTo + "handle detached")
|
||||
{
|
||||
g_kParticleTarget = g_kLeashedTo;
|
||||
StartParticles(g_kParticleTarget);
|
||||
}
|
||||
// We heard from a leash holder. re-direct particles
|
||||
if (llGetOwnerKey(kID) == g_kLeashedTo)
|
||||
{
|
||||
sMessage = llGetSubString(sMessage, 36, -1);
|
||||
if (sMessage == "collar ok")
|
||||
{
|
||||
g_kParticleTarget = kID;
|
||||
StartParticles(g_kParticleTarget);
|
||||
}
|
||||
if (sMessage == "handle ok")
|
||||
{
|
||||
g_kParticleTarget = kID;
|
||||
StartParticles(g_kParticleTarget);
|
||||
}
|
||||
}
|
||||
}
|
||||
// ADDED BELOW FOR BETA 0.1 TOGGLES LEASH PARTICLES OFF IF COFFLES BEING USED.
|
||||
else if(iChannel == COMMAND_PARTICLE)
|
||||
{
|
||||
if(llGetOwnerKey(kID) == g_kWearer)
|
||||
{
|
||||
integer currentglow;
|
||||
|
||||
if(sMessage == "noLeash")
|
||||
{
|
||||
currentglow = g_bParticleGlow;
|
||||
g_bParticleGlow = FALSE;
|
||||
SetTexture(sMessage, g_kWearer);
|
||||
StartParticles(g_kParticleTarget);
|
||||
}
|
||||
|
||||
if(sMessage == "chain")
|
||||
{
|
||||
g_bParticleGlow = currentglow;
|
||||
SetTexture(sMessage, g_kWearer);
|
||||
StartParticles(g_kParticleTarget);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
changed(integer iChange) {
|
||||
if (iChange & CHANGED_REGION) {
|
||||
if (g_iProfiled) {
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
@@ -1,664 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - listener //
|
||||
// version 3.990 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
integer g_iListenChan = 1;
|
||||
integer g_iListenChan0 = TRUE;
|
||||
string g_sPrefix = ".";
|
||||
integer g_iPollForNameChange = 60; //seconds to poll for name change
|
||||
integer g_iCustomName = FALSE; //this is our bit flag to see if we're using an LM_SETTING custom name
|
||||
|
||||
integer g_iLockMeisterChan = -8888;
|
||||
|
||||
integer g_iListener1;
|
||||
integer g_iListener2;
|
||||
integer g_iLockMeisterListener;
|
||||
|
||||
integer g_iHUDListener;
|
||||
integer g_iHUDChan;
|
||||
//list g_lHudComms; //2 strided list of uuid and unixtime of something that communicated on the hud channel
|
||||
|
||||
//MESSAGE MAP
|
||||
integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
integer COMMAND_RLV_RELAY = 507;
|
||||
integer COMMAND_SAFEWORD = 510; // new for safeword
|
||||
//integer SEND_IM = 1000; deprecated. each script should send its own IMs now. This is to reduce even the tiny bt of lag caused by having IM slave scripts
|
||||
integer POPUP_HELP = 1001;
|
||||
integer NOTIFY=1002;
|
||||
integer NOTIFY_OWNERS=1003;
|
||||
|
||||
integer LM_SETTING_SAVE = 2000;//scripts send messages on this channel to have settings saved to httpdb
|
||||
//str must be in form of "token=value"
|
||||
integer LM_SETTING_REQUEST = 2001;//when startup, scripts send requests for settings on this channel
|
||||
integer LM_SETTING_RESPONSE = 2002;//the httpdb script will send responses on this channel
|
||||
integer LM_SETTING_DELETE = 2003;//delete token from DB
|
||||
integer LM_SETTING_EMPTY = 2004;//sent when a token has no value in the httpdb
|
||||
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
|
||||
integer INTERFACE_REQUEST = -9006;
|
||||
integer INTERFACE_RESPONSE = -9007;
|
||||
|
||||
integer TOUCH_REQUEST = -9500;
|
||||
integer TOUCH_CANCEL = -9501;
|
||||
integer TOUCH_RESPONSE = -9502;
|
||||
integer TOUCH_EXPIRE = -9503;
|
||||
|
||||
|
||||
//5000 block is reserved for IM slaves
|
||||
|
||||
//EXTERNAL MESSAGE MAP
|
||||
integer EXT_COMMAND_COLLAR = 499;
|
||||
|
||||
// new g_sSafeWord
|
||||
string g_sSafeWord = "RED";
|
||||
|
||||
//added for attachment auth
|
||||
integer g_iInterfaceChannel; // AO Backwards Compatibility
|
||||
integer g_iListenHandleAtt;
|
||||
|
||||
integer ATTACHMENT_REQUEST = 600;
|
||||
integer ATTACHMENT_RESPONSE = 601;
|
||||
integer ATTACHMENT_FORWARD = 610;
|
||||
|
||||
key g_kWearer;
|
||||
string g_sScript = "listener_";
|
||||
string CTYPE = "collar";
|
||||
string WEARERNAME;
|
||||
list g_lOwners;
|
||||
|
||||
//globlals for supporting touch requests
|
||||
list g_lTouchRequests; // 4-strided list in form of touchid, recipient, flags, auth level
|
||||
integer g_iStrideLength = 4;
|
||||
|
||||
integer FLAG_TOUCHSTART = 0x01;
|
||||
integer FLAG_TOUCHEND = 0x02;
|
||||
|
||||
integer g_iNeedsPose = FALSE; // should the avatar be forced into a still pose for making touching easier
|
||||
string g_sPOSE_ANIM = "turn_180";
|
||||
|
||||
integer g_iTouchNotify = FALSE; // for Touch Notify
|
||||
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer) {
|
||||
// integer pos;
|
||||
// while (~pos=llSubStringIndex(sMsg, "%WEARERNAME%")) {
|
||||
// if (llStringLength(sMsg) == 12) { sMsg = WEARERNAME; }
|
||||
// else if (pos == 0) { sMsg = WEARERNAME+llGetSubString(sMsg, pos+12, -1); }
|
||||
// else if (pos == llStringLength(sMsg)-12) { sMsg = llGetSubString(sMsg, 0, pos-1)+WEARERNAME; }
|
||||
// else { sMsg = llGetSubString(sMsg, 0, pos-1)+WEARERNAME+llGetSubString(sMsg, pos+12, -1); }
|
||||
// }
|
||||
if ((key)kID){
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else {
|
||||
// if (~llListFindList(g_lHudComms,[kID])){
|
||||
// llRegionSayTo(kID,g_iHUDChan,sMsg);
|
||||
// } else
|
||||
if (llGetAgentSize(kID)!=ZERO_VECTOR) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
//} else {
|
||||
//Debug("Bad key, can't notify:"+sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
NotifyOwners(string sMsg, string comments) {
|
||||
integer n;
|
||||
integer iStop = llGetListLength(g_lOwners);
|
||||
for (n = 0; n < iStop; n += 2) {
|
||||
key kAv = (key)llList2String(g_lOwners, n);
|
||||
if (comments=="ignoreNearby"){
|
||||
//we don't want to bother the owner if he/she is right there, so check distance
|
||||
vector vOwnerPos = (vector)llList2String(llGetObjectDetails(kAv, [OBJECT_POS]), 0);
|
||||
if (vOwnerPos == ZERO_VECTOR || llVecDist(vOwnerPos, llGetPos()) > 20.0) {//vOwnerPos will be ZERO_VECTOR if not in sim
|
||||
//Debug("notifying " + (string)kAv);
|
||||
//Debug("Sending notify to "+(string)kAv);
|
||||
Notify(kAv, sMsg,FALSE);
|
||||
//} else {
|
||||
//Debug("Not sending notify to "+(string)kAv);
|
||||
}
|
||||
} else {
|
||||
//Debug("Sending notify to "+(string)kAv);
|
||||
Notify(kAv, sMsg,FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//functions from touch script
|
||||
ClearUser(key kRCPT, integer iNotify) {
|
||||
//find any strides belonging to user and remove them
|
||||
integer iIndex = llListFindList(g_lTouchRequests, [kRCPT]);
|
||||
while (~iIndex)
|
||||
{
|
||||
if (iNotify)
|
||||
{
|
||||
key kID = llList2Key(g_lTouchRequests, iIndex -1);
|
||||
integer iAuth = llList2Integer(g_lTouchRequests, iIndex + 2);
|
||||
llMessageLinked(LINK_THIS, TOUCH_EXPIRE, (string) kRCPT + "|" + (string) iAuth,kID);
|
||||
}
|
||||
g_lTouchRequests = llDeleteSubList(g_lTouchRequests, iIndex - 1, iIndex - 2 + g_iStrideLength);
|
||||
iIndex = llListFindList(g_lTouchRequests, [kRCPT]);
|
||||
}
|
||||
if (g_iNeedsPose && [] == g_lTouchRequests) llStopAnimation(g_sPOSE_ANIM);
|
||||
}
|
||||
|
||||
sendCommandFromLink(integer iLinkNumber, string sType, key kToucher) {
|
||||
// check for temporary touch requests
|
||||
integer iTrig;
|
||||
integer iNTrigs = llGetListLength(g_lTouchRequests);
|
||||
for (iTrig = 0; iTrig < iNTrigs; iTrig+=g_iStrideLength)
|
||||
{
|
||||
if (llList2Key(g_lTouchRequests, iTrig + 1) == kToucher)
|
||||
{
|
||||
integer iTrigFlags = llList2Integer(g_lTouchRequests, iTrig + 2);
|
||||
if (((iTrigFlags & FLAG_TOUCHSTART) && sType == "touchstart")
|
||||
||((iTrigFlags & FLAG_TOUCHEND)&& sType == "touchend"))
|
||||
{
|
||||
integer iAuth = llList2Integer(g_lTouchRequests, iTrig + 3);
|
||||
string sReply = (string) kToucher + "|" + (string) iAuth + "|" + sType +"|"+ (string) iLinkNumber;
|
||||
llMessageLinked(LINK_THIS, TOUCH_RESPONSE, sReply, llList2Key(g_lTouchRequests, iTrig));
|
||||
}
|
||||
if (sType =="touchend") ClearUser(kToucher, FALSE);
|
||||
return;
|
||||
}
|
||||
}
|
||||
// check for permanent triggers (inlined sendPermanentCommandFromLink(iLinkNumber, sType, kToucher);)
|
||||
//string sDesc = (string)llGetObjectDetails(llGetLinkKey(iLinkNumber), [OBJECT_DESC]);
|
||||
//sDesc += (string)llGetObjectDetails(llGetLinkKey(LINK_ROOT), [OBJECT_DESC]);
|
||||
|
||||
string sDesc = llDumpList2String(llGetLinkPrimitiveParams(iLinkNumber,[PRIM_DESC])+llGetLinkPrimitiveParams(LINK_ROOT,[PRIM_DESC]),"~");
|
||||
|
||||
list lDescTokens = llParseStringKeepNulls(sDesc, ["~"], []);
|
||||
integer iNDescTokens = llGetListLength(lDescTokens);
|
||||
integer iDescToken;
|
||||
for (iDescToken = 0; iDescToken < iNDescTokens; iDescToken++) {
|
||||
string sDescToken = llList2String(lDescTokens, iDescToken);
|
||||
if (sDescToken == sType || sDescToken == sType+":" || sDescToken == sType+":none") return;
|
||||
else if (!llSubStringIndex(sDescToken, sType+":")) {
|
||||
string sCommand = llGetSubString(sDescToken, llStringLength(sType)+1, -1);
|
||||
if (sCommand != "") llMessageLinked(LINK_SET, COMMAND_NOAUTH, sCommand, kToucher);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (sType == "touchstart") {
|
||||
llMessageLinked(LINK_SET, COMMAND_NOAUTH, "menu", kToucher);
|
||||
if (g_iTouchNotify && kToucher!=g_kWearer) llOwnerSay("\n\nsecondlife:///app/agent/"+(string)kToucher+"/about touched your "+CTYPE+".\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
default {
|
||||
on_rez(integer iParam) {
|
||||
llResetScript();
|
||||
}
|
||||
|
||||
state_entry() {
|
||||
//llSetMemoryLimit(65536); //this script needs to be profiled, and its memory limited
|
||||
g_kWearer = llGetOwner();
|
||||
|
||||
list name = llParseString2List(llKey2Name(g_kWearer), [" "], []);
|
||||
g_sPrefix = llGetSubString(llList2String(name, 0), 0, 0);
|
||||
g_sPrefix += llGetSubString(llList2String(name, 1), 0, 0);
|
||||
g_sPrefix = llToLower(g_sPrefix);
|
||||
//Debug("Default prefix: " + g_sPrefix);
|
||||
|
||||
//inlined single use getOwnerChannel function
|
||||
g_iHUDChan = -llAbs((integer)("0x"+llGetSubString((string)g_kWearer,2,7)) + 1111);
|
||||
if (g_iHUDChan > -10000) g_iHUDChan -= 30000;
|
||||
|
||||
g_iInterfaceChannel = (integer)("0x" + llGetSubString(g_kWearer,30,-1));
|
||||
if (g_iInterfaceChannel > 0) g_iInterfaceChannel = -g_iInterfaceChannel;
|
||||
|
||||
//set up listeners... inlined existing function
|
||||
//public listener
|
||||
llListenRemove(g_iListener1);
|
||||
if (g_iListenChan0 == TRUE) g_iListener1 = llListen(0, "", NULL_KEY, "");
|
||||
|
||||
//private listener
|
||||
llListenRemove(g_iListener2);
|
||||
g_iListener2 = llListen(g_iListenChan, "", NULL_KEY, "");
|
||||
|
||||
//lockmeister listener
|
||||
llListenRemove(g_iLockMeisterListener);
|
||||
g_iLockMeisterListener = llListen(g_iLockMeisterChan, "", NULL_KEY, (string)g_kWearer + "collar");
|
||||
|
||||
//garvin attachments listener
|
||||
llListenRemove(g_iListenHandleAtt);
|
||||
g_iListenHandleAtt = llListen(g_iInterfaceChannel, "", "", "");
|
||||
|
||||
//owner hud listener
|
||||
llListenRemove(g_iHUDListener);
|
||||
g_iHUDListener = llListen(g_iHUDChan, "", NULL_KEY ,""); //reinstated
|
||||
|
||||
integer iAttachPt = llGetAttached();
|
||||
if ((iAttachPt > 0 && iAttachPt < 31) || iAttachPt == 39) // if collar is attached to the body (thus excluding HUD and root/avatar center)
|
||||
llRequestPermissions(g_kWearer, PERMISSION_TRIGGER_ANIMATION);
|
||||
|
||||
llMessageLinked(LINK_SET, LM_SETTING_REQUEST, "Global_WearerName", "");
|
||||
|
||||
//llMessageLinked(LINK_SET, LM_SETTING_REQUEST, "channel", "");
|
||||
llSetTimerEvent(60.0); //set timer event to catch changes in display name
|
||||
//Debug("Starting");
|
||||
}
|
||||
|
||||
attach(key kID)
|
||||
{
|
||||
//g_kWearer = llGetOwner();
|
||||
if (kID == NULL_KEY)
|
||||
{
|
||||
llRegionSayTo(g_kWearer, g_iInterfaceChannel, "OpenCollar=No");
|
||||
}
|
||||
else
|
||||
{
|
||||
llRegionSayTo(g_kWearer, g_iInterfaceChannel, "OpenCollar=Yes");
|
||||
}
|
||||
integer iAttachPt = llGetAttached();
|
||||
if ((iAttachPt > 0 && iAttachPt < 31) || iAttachPt == 39) // if collar is attached to the body (thus excluding HUD and root/avatar center)
|
||||
llRequestPermissions(g_kWearer, PERMISSION_TRIGGER_ANIMATION);
|
||||
}
|
||||
|
||||
listen(integer iChan, string sName, key kID, string sMsg)
|
||||
{
|
||||
if (iChan == g_iHUDChan)
|
||||
{
|
||||
// //track hud channel users
|
||||
// integer hudIndex;
|
||||
// if (~hudIndex=llListFindList(g_lHudComms,[kID])){
|
||||
// g_lHudComms=llDeleteSubList(g_lHudComms,hudIndex,hudIndex+1);
|
||||
// }
|
||||
// g_lHudComms += [kID,llGetUnixTime()];
|
||||
|
||||
//check for a ping, if we find one we request auth and answer in LMs with a pong
|
||||
if (sMsg==(string)g_kWearer + ":ping")
|
||||
{
|
||||
llMessageLinked(LINK_SET, COMMAND_NOAUTH, "ping", kID);
|
||||
//llMessageLinked(LINK_SET, COMMAND_NOAUTH, "ping", llGetOwnerKey(kID));
|
||||
}
|
||||
// an object wants to know the version, we check if it is allowed to
|
||||
else if (sMsg==(string)g_kWearer + ":version")
|
||||
{
|
||||
llMessageLinked(LINK_SET, COMMAND_NOAUTH, "objectversion", kID);
|
||||
//llMessageLinked(LINK_SET, COMMAND_NOAUTH, "objectversion", llGetOwnerKey(kID));
|
||||
}
|
||||
// it it is not a ping, it should be a command for use, to make sure it has to have the key in front of it
|
||||
else if (!llSubStringIndex(sMsg,(string)g_kWearer + ":"))
|
||||
{
|
||||
sMsg = llGetSubString(sMsg, 37, -1);
|
||||
llMessageLinked(LINK_SET, COMMAND_NOAUTH, sMsg, kID);
|
||||
//llMessageLinked(LINK_SET, COMMAND_NOAUTH, sMsg, llGetOwnerKey(kID));
|
||||
}
|
||||
else
|
||||
{
|
||||
// //Debug("command: "+sMsg+" from "+(string)kID);
|
||||
// if (llGetOwnerKey(kID)==llGetOwner()){ //if the wearer's attachment requests it, then the command can be proxied for another user
|
||||
// key sDestAv = llGetSubString(sMsg, 0, 35);
|
||||
// if ((key)sDestAv){
|
||||
// sMsg = llGetSubString(sMsg, 36, -1);
|
||||
// kID=sDestAv;
|
||||
// //Debug("command for foreign user");
|
||||
// }
|
||||
// }
|
||||
//Debug("command: "+sMsg+" from "+(string)kID);
|
||||
llMessageLinked(LINK_SET, COMMAND_NOAUTH, sMsg, kID);
|
||||
//llMessageLinked(LINK_SET, COMMAND_NOAUTH, sMsg, llGetOwnerKey(kID));
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (iChan == g_iLockMeisterChan)
|
||||
{
|
||||
llWhisper(g_iLockMeisterChan,(string)g_kWearer + "collar ok");
|
||||
return;
|
||||
}
|
||||
if(llGetOwnerKey(kID) == g_kWearer) // also works for attachments
|
||||
{
|
||||
string sw = sMsg; // we'll have to shave pieces off as we go to test
|
||||
// safeword can be the safeword or safeword said in OOC chat "((SAFEWORD))"
|
||||
// and may include prefix
|
||||
if (llGetSubString(sw, 0, 3) == "/me ") sw = llGetSubString(sw, 4, -1);
|
||||
if (llGetSubString(sw, 0, 1) == "((" && llGetSubString(sw, -2, -1) == "))") sw = llGetSubString(sw, 2, -3);
|
||||
if (llSubStringIndex(sw, g_sPrefix)==0) sw = llGetSubString(sw, llStringLength(g_sPrefix), -1);
|
||||
if (sw == g_sSafeWord) {
|
||||
llMessageLinked(LINK_SET, COMMAND_SAFEWORD, "", "");
|
||||
|
||||
llOwnerSay("You used your safeword, your owners will be notified you did.");
|
||||
NotifyOwners("Your sub " + WEARERNAME + " has used the safeword. Please check on their well-being in case further care is required.","");
|
||||
llMessageLinked(LINK_THIS, INTERFACE_RESPONSE, "safeword", "");
|
||||
return;
|
||||
}
|
||||
}
|
||||
//added for attachment auth (garvin)
|
||||
if (iChan == g_iInterfaceChannel)
|
||||
{
|
||||
//Debug(sMsg);
|
||||
//do nothing if wearer isnt owner of the object
|
||||
if (llGetOwnerKey(kID) != g_kWearer) return;
|
||||
//if (sMsg == "OpenCollar?") llWhisper(g_iInterfaceChannel, "OpenCollar=Yes");
|
||||
if (sMsg == "OpenCollar?") llRegionSayTo(g_kWearer, g_iInterfaceChannel, "OpenCollar=Yes");
|
||||
else if (sMsg == "version") llMessageLinked(LINK_SET, COMMAND_WEARER, "attachmentversion", g_kWearer); //main knows version number, main can respond to this request for us
|
||||
else {
|
||||
list lParams = llParseString2List(sMsg, ["|"], []);
|
||||
integer iAuth = llList2Integer(lParams, 0);
|
||||
|
||||
if (iAuth == 0) //auth request
|
||||
{
|
||||
string sCmd = llList2String(lParams, 1);
|
||||
string sUserId= llGetSubString(llList2String(lParams, 2),0,35);
|
||||
string sObjectId= llGetSubString(llList2String(lParams, 2),36,-1);
|
||||
|
||||
//Debug("garvin auth for key"+sUserId);
|
||||
//just send ATTACHMENT_REQUEST and ID to auth, as no script IN the collar needs the command anyway
|
||||
llMessageLinked(LINK_SET, ATTACHMENT_REQUEST, sCmd+"|"+sUserId+"|"+sObjectId, (key)sUserId);
|
||||
}
|
||||
else if (iAuth == EXT_COMMAND_COLLAR) //command from attachment to AO
|
||||
{
|
||||
llRegionSayTo(g_kWearer, g_iInterfaceChannel, sMsg);
|
||||
}
|
||||
else
|
||||
{
|
||||
// we received a unkown command, so we just forward it via LM into the cuffs
|
||||
llMessageLinked(LINK_SET, ATTACHMENT_FORWARD, sMsg, kID);
|
||||
}
|
||||
}
|
||||
} else { //check for our prefix, or *
|
||||
if (!llSubStringIndex(sMsg, g_sPrefix)) sMsg = llGetSubString(sMsg, llStringLength(g_sPrefix), -1); //strip our prefix from command
|
||||
else if (llGetSubString(sMsg, 0, 0) == "*") sMsg = llGetSubString(sMsg, 1, -1); //strip * (all collars wildcard) from command
|
||||
else if ((llGetSubString(sMsg, 0, 0) == "#") && (kID != g_kWearer)) sMsg = llGetSubString(sMsg, 1, -1); //strip # (all collars but me) from command
|
||||
else return;
|
||||
//Debug("Got comand "+sMsg);
|
||||
llMessageLinked(LINK_SET, COMMAND_NOAUTH, sMsg, kID);
|
||||
}
|
||||
}
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID)
|
||||
{
|
||||
if (iNum==INTERFACE_RESPONSE)
|
||||
{
|
||||
if (sStr == "safeword") llRegionSay(g_iHUDChan, "safeword");
|
||||
}
|
||||
else if (iNum >= COMMAND_OWNER && iNum <= COMMAND_WEARER)
|
||||
{
|
||||
list lParams = llParseString2List(sStr, [" "], []);
|
||||
string sCommand = llToLower(llList2String(lParams, 0));
|
||||
string sValue = llToLower(llList2String(lParams, 1));
|
||||
|
||||
if (sStr == "ping") { // ping from an object, we answer to it on the object channel
|
||||
llRegionSayTo(kID,g_iHUDChan,(string)g_kWearer+":pong"); // sim wide response to owner hud
|
||||
} else if (iNum == COMMAND_OWNER) { //handle changing prefix and channel from owner
|
||||
if (sCommand == "prefix")
|
||||
{
|
||||
string value = llList2String(lParams, 1);
|
||||
if (value == "")
|
||||
{
|
||||
Notify(kID,"prefix: " + g_sPrefix, FALSE);
|
||||
return;
|
||||
}
|
||||
g_sPrefix=value;
|
||||
Notify(kID, "\n" + WEARERNAME + "'s prefix is '" + g_sPrefix + "'.\nTouch the " + CTYPE + " or say '" + g_sPrefix + "menu' for the main menu.\nSay '" + g_sPrefix + "help' for a list of chat commands.", FALSE);
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, "Global_prefix=" + g_sPrefix, "");
|
||||
}
|
||||
else if (sCommand == "name")
|
||||
{
|
||||
if (sValue=="") { //Just let them know their current name
|
||||
string message= "\n\n"+WEARERNAME+"'s current name is " + WEARERNAME;
|
||||
message += "\nName command help: <prefix>name [newname|reset]\n";
|
||||
Notify(kID, message, FALSE);
|
||||
}
|
||||
else if(sValue=="reset") { //unset Global_WearerName
|
||||
string message=WEARERNAME+"'s new name is reset to ";
|
||||
WEARERNAME = llGetDisplayName(g_kWearer);
|
||||
if (WEARERNAME == "???" || WEARERNAME == "") WEARERNAME = llKey2Name(g_kWearer);
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, "Global_WearerName", "");
|
||||
llMessageLinked(LINK_SET, LM_SETTING_RESPONSE, "Global_WearerName="+WEARERNAME, "");
|
||||
message += WEARERNAME;
|
||||
g_iCustomName = FALSE;
|
||||
Notify(kID, message, FALSE);
|
||||
}
|
||||
else {
|
||||
string message=WEARERNAME+"'s new name is ";
|
||||
WEARERNAME = llDumpList2String(llList2List(lParams, 1,-1)," ");
|
||||
message += WEARERNAME;
|
||||
g_iCustomName = TRUE;
|
||||
Notify(kID, message, FALSE);
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, "Global_WearerName=" + WEARERNAME, ""); //store
|
||||
llMessageLinked(LINK_SET, LM_SETTING_RESPONSE, "Global_WearerName="+WEARERNAME, "");
|
||||
}
|
||||
}
|
||||
else if (sCommand == "channel")
|
||||
{
|
||||
integer iNewChan = (integer)sValue;
|
||||
if (sValue=="") { //they left the param blank, report listener status
|
||||
string message=CTYPE+" is listening on channel";
|
||||
if (g_iListenChan0) message += "s 0 and";
|
||||
message += " "+(string)g_iListenChan+".";
|
||||
Notify(kID, message, FALSE);
|
||||
} else if (iNewChan > 0) { //set new channel for private listener
|
||||
g_iListenChan = iNewChan;
|
||||
|
||||
llListenRemove(g_iListener2);
|
||||
g_iListener2 = llListen(g_iListenChan, "", NULL_KEY, "");
|
||||
|
||||
Notify(kID, "Now listening on channel " + (string)g_iListenChan + ".", FALSE);
|
||||
if (g_iListenChan0) //save setting along with the state of thepublic listener (messy!)
|
||||
{
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "channel=" + (string)g_iListenChan + ",TRUE", "");
|
||||
}
|
||||
else
|
||||
{
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "channel=" + (string)g_iListenChan + ",FALSE", "");
|
||||
}
|
||||
}
|
||||
else if (iNewChan == 0) //enable public listener
|
||||
{
|
||||
g_iListenChan0 = TRUE;
|
||||
llListenRemove(g_iListener1);
|
||||
g_iListener1 = llListen(0, "", NULL_KEY, "");
|
||||
Notify(kID, "You enabled the public channel listener.\nTo disable it use -1 as channel command.", FALSE);
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "channel=" + (string)g_iListenChan + ",TRUE", "");
|
||||
}
|
||||
else if (iNewChan == -1) //disable public listener
|
||||
{
|
||||
g_iListenChan0 = FALSE;
|
||||
llListenRemove(g_iListener1);
|
||||
Notify(kID, "You disabled the public channel listener.\nTo enable it use 0 as channel command, remember you have to do this on your channel /" +(string)g_iListenChan, FALSE);
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "channel=" + (string)g_iListenChan + ",FALSE", "");
|
||||
}
|
||||
}
|
||||
}
|
||||
if (kID == g_kWearer)
|
||||
{
|
||||
if (sCommand == "safeword")
|
||||
{ // new for safeword
|
||||
if(llStringTrim(sValue, STRING_TRIM) != "")
|
||||
{
|
||||
g_sSafeWord = llList2String(lParams, 1);
|
||||
llOwnerSay("You set a new safeword: " + g_sSafeWord + ".");
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "safeword=" + g_sSafeWord, "");
|
||||
}
|
||||
else
|
||||
{
|
||||
llOwnerSay("Your safeword is: " + g_sSafeWord + ".");
|
||||
}
|
||||
}
|
||||
else if (sCommand == "busted")
|
||||
{
|
||||
if (sValue == "on")
|
||||
{
|
||||
llMessageLinked(LINK_THIS,LM_SETTING_SAVE,"Global_touchNotify=1","");
|
||||
g_iTouchNotify=TRUE;
|
||||
llOwnerSay("Touch notification is now enabled.");
|
||||
}
|
||||
else if (sValue == "off")
|
||||
{
|
||||
llMessageLinked(LINK_THIS,LM_SETTING_DELETE,"Global_touchNotify","");
|
||||
g_iTouchNotify=FALSE;
|
||||
llOwnerSay("Touch notification is now disabled.");
|
||||
}
|
||||
else if (sValue == "")
|
||||
{
|
||||
if (g_iTouchNotify) {
|
||||
llOwnerSay("Touch notification is now disabled.");
|
||||
llMessageLinked(LINK_THIS,LM_SETTING_DELETE,"Global_touchNotify","");
|
||||
g_iTouchNotify = FALSE;
|
||||
}
|
||||
else {
|
||||
llOwnerSay("Touch notification is now enabled.");
|
||||
llMessageLinked(LINK_THIS,LM_SETTING_SAVE,"Global_touchNotify=1","");
|
||||
g_iTouchNotify = TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (iNum == LM_SETTING_SAVE) {
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
if (sToken == "auth_owner" && llStringLength(sValue) > 0) g_lOwners = llParseString2List(sValue, [","], []);
|
||||
} else if (iNum == LM_SETTING_EMPTY) {
|
||||
if (sStr=="Global_WearerName"){
|
||||
WEARERNAME = llGetDisplayName(g_kWearer);
|
||||
if (WEARERNAME == "???" || WEARERNAME == "") WEARERNAME = llKey2Name(g_kWearer);
|
||||
llMessageLinked(LINK_THIS,LM_SETTING_RESPONSE,"Global_WearerName="+WEARERNAME,"");
|
||||
}
|
||||
} else if (iNum == LM_SETTING_RESPONSE) {
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
|
||||
if (sToken == "Global_prefix")
|
||||
{
|
||||
if (sValue != "") g_sPrefix=sValue;
|
||||
}
|
||||
else if (sToken == "Global_CType") CTYPE = sValue;
|
||||
else if (sToken == "Global_touchNotify") g_iTouchNotify = (integer)sValue; // for Touch Notify
|
||||
else if (sToken == "Global_WearerName") WEARERNAME = sValue;
|
||||
else if (sToken == "auth_owner" && llStringLength(sValue) > 0) g_lOwners = llParseString2List(sValue, [","], []);
|
||||
else if (sToken == "listener_safeword") g_sSafeWord = sValue;
|
||||
else if (sToken == "listener_channel") {
|
||||
g_iListenChan = (integer)sValue;
|
||||
if (llGetSubString(sValue, llStringLength(sValue) - 5 , -1) == "FALSE") g_iListenChan0 = FALSE;
|
||||
else g_iListenChan0 = TRUE;
|
||||
|
||||
llListenRemove(g_iListener1);
|
||||
if (g_iListenChan0 == TRUE) g_iListener1 = llListen(0, "", NULL_KEY, "");
|
||||
|
||||
llListenRemove(g_iListener2);
|
||||
g_iListener2 = llListen(g_iListenChan, "", NULL_KEY, "");
|
||||
}
|
||||
}
|
||||
else if (iNum == POPUP_HELP)
|
||||
{
|
||||
//replace _PREFIX_ with prefix, and _CHANNEL_ with (strin) channel
|
||||
sStr = osReplaceString(sStr, "_PREFIX_", g_sPrefix, -1, 0);
|
||||
sStr = osReplaceString(sStr, "_CHANNEL_", (string)g_iListenChan, -1, 0);
|
||||
Notify(kID, sStr, FALSE);
|
||||
}
|
||||
//added for attachment auth (garvin)
|
||||
else if (iNum == ATTACHMENT_RESPONSE)
|
||||
{
|
||||
//Debug(sStr);
|
||||
//here the response from auth has to be:
|
||||
// llMessageLinked(LINK_SET, ATTACHMENT_RESPONSE, "auth", UUID);
|
||||
//where "auth" has to be (string)COMMAND_XY
|
||||
//reason for this is: i dont want to have all other scripts recieve a COMMAND+xy and check further for the command
|
||||
llRegionSayTo(g_kWearer, g_iInterfaceChannel, "RequestReply|" + sStr);
|
||||
}
|
||||
else if (iNum == TOUCH_REQUEST)
|
||||
{ //str will be pipe-delimited list with rcpt|flags|auth
|
||||
list lParams = llParseStringKeepNulls(sStr, ["|"], []);
|
||||
key kRCPT = (key)llList2String(lParams, 0);
|
||||
integer iFlags = (integer)llList2String(lParams, 1);
|
||||
integer iAuth = (integer)llList2String(lParams, 2);
|
||||
ClearUser(kRCPT, TRUE);
|
||||
g_lTouchRequests += [kID, kRCPT, iFlags, iAuth];
|
||||
if (g_iNeedsPose) llStartAnimation(g_sPOSE_ANIM);
|
||||
}
|
||||
else if (iNum == TOUCH_CANCEL)
|
||||
{
|
||||
integer iIndex = llListFindList(g_lTouchRequests, [kID]);
|
||||
if (~iIndex)
|
||||
{
|
||||
g_lTouchRequests = llDeleteSubList(g_lTouchRequests, iIndex, iIndex - 1 + g_iStrideLength);
|
||||
if (g_iNeedsPose && [] == g_lTouchRequests) llStopAnimation(g_sPOSE_ANIM);
|
||||
}
|
||||
} else if (iNum==NOTIFY){
|
||||
Notify(kID,llGetSubString(sStr,1,-1),(integer)llGetSubString(sStr,0,0));
|
||||
} else if (iNum==NOTIFY_OWNERS){
|
||||
NotifyOwners(sStr,(string)kID);
|
||||
}
|
||||
}
|
||||
|
||||
touch_start(integer iNum)
|
||||
{
|
||||
//Debug("touched");
|
||||
sendCommandFromLink(llDetectedLinkNumber(0), "touchstart", llDetectedKey(0));
|
||||
}
|
||||
|
||||
touch_end(integer iNum)
|
||||
{
|
||||
sendCommandFromLink(llDetectedLinkNumber(0), "touchend", llDetectedKey(0));
|
||||
}
|
||||
|
||||
//no more self resets
|
||||
timer()
|
||||
{
|
||||
if (g_iCustomName == FALSE) { //If we don't have a custom LM_SETTING Global_WearerName
|
||||
string sLoadDisplayName = llGetDisplayName(g_kWearer); //Load this once
|
||||
if (((sLoadDisplayName != "") && (sLoadDisplayName != "???")) && (sLoadDisplayName != WEARERNAME)) {
|
||||
//The displayname loaded correctly, and it's different than our current WEARERNAME
|
||||
//wearer changed their displayname since last timer event
|
||||
WEARERNAME = sLoadDisplayName;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_RESPONSE, "Global_WearerName="+WEARERNAME, ""); //force update other scripts
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
run_time_permissions(integer iPerm)
|
||||
{
|
||||
if (iPerm & PERMISSION_TRIGGER_ANIMATION) g_iNeedsPose = TRUE;
|
||||
}
|
||||
|
||||
changed(integer iChange)
|
||||
{
|
||||
if (iChange & CHANGED_OWNER) llResetScript();
|
||||
/*
|
||||
if (iChange & CHANGED_REGION) {
|
||||
if (g_iProfiled){
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
@@ -1,792 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - main //
|
||||
// version 3.998.4 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//on start, send request for submenu names
|
||||
//on getting submenu name, add to list if not already present
|
||||
//on menu request, give dialog, with alphabetized list of submenus
|
||||
//on listen, send submenu link message
|
||||
|
||||
string g_sCollarVersion="3.998.4";
|
||||
integer g_iLatestVersion=TRUE;
|
||||
|
||||
list g_lOwners;
|
||||
key g_kWearer;
|
||||
//string g_sOldRegionName;
|
||||
//list g_lMenuPrompts;
|
||||
|
||||
|
||||
list g_lMenuIDs;//3-strided list of avatars given menus, their dialog ids, and the name of the menu they were given
|
||||
integer g_iMenuStride = 3;
|
||||
|
||||
integer g_iScriptCount;//when the scriptcount changes, rebuild menus
|
||||
|
||||
//MESSAGE MAP
|
||||
integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
|
||||
//integer SEND_IM = 1000; deprecated. each script should send its own IMs now. This is to reduce even the tiny bt of lag caused by having IM slave scripts
|
||||
integer POPUP_HELP = 1001;
|
||||
|
||||
integer LM_SETTING_SAVE = 2000;//scripts send messages on this channel to have settings saved to httpdb
|
||||
//str must be in form of "token=value"
|
||||
integer LM_SETTING_REQUEST = 2001;//when startup, scripts send requests for settings on this channel
|
||||
integer LM_SETTING_RESPONSE = 2002;//the httpdb script will send responses on this channel
|
||||
integer LM_SETTING_DELETE = 2003;//delete token from DB
|
||||
integer LM_SETTING_EMPTY = 2004;//sent when a token has no value in the httpdb
|
||||
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
integer MENUNAME_REMOVE = 3003;
|
||||
|
||||
//5000 block is reserved for IM slaves
|
||||
|
||||
integer RLV_CMD = 6000;
|
||||
integer RLV_REFRESH = 6001;//RLV plugins should reinstate their restrictions upon receiving this message.
|
||||
integer RLV_CLEAR = 6002;//RLV plugins should clear their restriction lists upon receiving this message.
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
string UPMENU = "BACK";
|
||||
string CTYPE="collar";
|
||||
string WEARERNAME;
|
||||
|
||||
string GIVECARD = "Quick Guide";
|
||||
string HELPCARD = "OpenCollar Guide";
|
||||
string CONTACT = "Contact";
|
||||
string LICENSE="License";
|
||||
key g_kWebLookup;
|
||||
key g_kCurrentUser;
|
||||
|
||||
list g_lAppearanceButtons;
|
||||
list g_lAppsButtons;
|
||||
|
||||
integer g_iLocked = FALSE;
|
||||
integer g_bDetached = FALSE;
|
||||
integer g_iHide ; // global hide
|
||||
integer g_iNews=FALSE;
|
||||
|
||||
string g_sLockPrimName="Lock"; // Description for lock elements to recognize them //EB //SA: to be removed eventually (kept for compatibility)
|
||||
string g_sOpenLockPrimName="OpenLock"; // Prim description of elements that should be shown when unlocked
|
||||
string g_sClosedLockPrimName="ClosedLock"; // Prim description of elements that should be shown when locked
|
||||
list g_lClosedLockElements; //to store the locks prim to hide or show //EB
|
||||
list g_lOpenLockElements; //to store the locks prim to hide or show //EB
|
||||
|
||||
string g_sDefaultLockSound="73f3f84b-0447-487d-8246-4ab3e5fdbf40";
|
||||
string g_sDefaultUnlockSound="d64c3566-cf76-44b5-ae76-9aabf60efab8";
|
||||
string g_sLockSound="73f3f84b-0447-487d-8246-4ab3e5fdbf40";
|
||||
string g_sUnlockSound="d64c3566-cf76-44b5-ae76-9aabf60efab8";
|
||||
|
||||
integer g_iAppLock = FALSE; //appearance lock flag
|
||||
|
||||
integer g_iAnimsMenu=FALSE;
|
||||
integer g_iRlvMenu=FALSE;
|
||||
integer g_iAppearanceMenu=FALSE;
|
||||
integer g_iCustomizeMenu=FALSE;
|
||||
integer g_iPaintMenu=FALSE;
|
||||
|
||||
integer g_iUpdateChan = -7483214;
|
||||
integer g_iUpdateHandle;
|
||||
|
||||
key g_kUpdaterOrb;
|
||||
integer g_iUpdateFromMenu;
|
||||
|
||||
string version_check_url = "https://raw.githubusercontent.com/lickx/opencollar-os/oscollar3/LSL/~version";
|
||||
key github_version_request;
|
||||
|
||||
string news_url = "https://raw.githubusercontent.com/lickx/opencollar-os/oscollar3/LSL/~news";
|
||||
key news_request;
|
||||
string g_sLastNewsTime = "0";
|
||||
|
||||
integer g_iUpdateAuth;
|
||||
integer g_iWillingUpdaters = 0;
|
||||
|
||||
integer g_iListenChan=1;
|
||||
string g_sSafeWord="RED";
|
||||
string g_sPrefix;
|
||||
|
||||
integer g_iWaitUpdate = FALSE;
|
||||
integer g_iWaitRebuild = FALSE;
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
Dialog(key kID, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth, string sName) {
|
||||
key kMenuID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kID + "|" + sPrompt + "|" + (string)iPage + "|" + llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kMenuID);
|
||||
|
||||
integer iIndex = llListFindList(g_lMenuIDs, [kID]);
|
||||
if (~iIndex) g_lMenuIDs = llListReplaceList(g_lMenuIDs, [kID, kMenuID, sName], iIndex, iIndex + g_iMenuStride - 1);
|
||||
else g_lMenuIDs += [kID, kMenuID, sName];
|
||||
|
||||
//Debug("Made "+sName+" menu.");
|
||||
}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer) {
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else {
|
||||
if (llGetAgentSize(kID)!=ZERO_VECTOR) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
string AutoPrefix()
|
||||
{
|
||||
list sName = llParseString2List(llKey2Name(llGetOwner()), [" "], []);
|
||||
return llToLower(llGetSubString(llList2String(sName, 0), 0, 0)) + llToLower(llGetSubString(llList2String(sName, 1), 0, 0));
|
||||
}
|
||||
|
||||
integer compareVersions(string v1, string v2){ //compares two symantic version strings, true if v1 >= v2
|
||||
integer v1Index=llSubStringIndex(v1,".");
|
||||
integer v2Index=llSubStringIndex(v2,".");
|
||||
|
||||
integer v1a=(integer)llGetSubString(v1,0,v1Index);
|
||||
integer v2a=(integer)llGetSubString(v2,0,v2Index);
|
||||
|
||||
if (v1a == v2a) {
|
||||
if ((~v1Index) || (~v2Index)){
|
||||
string v1b;
|
||||
if (v1Index == -1 || v1Index==llStringLength(v1)) {
|
||||
v1b="0";
|
||||
} else {
|
||||
v1b=llGetSubString(v1,v1Index+1,-1);
|
||||
}
|
||||
|
||||
string v2b;
|
||||
if (v2Index == -1 || v2Index==llStringLength(v2)) {
|
||||
v2b="0";
|
||||
} else {
|
||||
v2b=llGetSubString(v2,v2Index+1,-1);
|
||||
}
|
||||
|
||||
return compareVersions(v1b,v2b);
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
return v1a > v2a;
|
||||
}
|
||||
|
||||
AppsMenu(key kID, integer iAuth) {
|
||||
string sPrompt="\nBrowse apps, extras and custom features.\n\nwww.opencollar.at/apps";
|
||||
Dialog(kID, sPrompt, g_lAppsButtons, [UPMENU], 0, iAuth, "Apps");
|
||||
}
|
||||
AppearanceMenu(key kID, integer iAuth) {
|
||||
string sPrompt;
|
||||
string sLooksLockButton;
|
||||
if (g_iAppLock){
|
||||
sPrompt = "\nThe appearance of the "+CTYPE+" has been locked.\n\nAn owner must unlock it to allow modification.";
|
||||
sLooksLockButton="☒ LooksLock";
|
||||
} else {
|
||||
sPrompt="\nMake changes to the "+CTYPE+"'s appearance.";
|
||||
sLooksLockButton="☐ LooksLock";
|
||||
}
|
||||
sPrompt += "\n\nwww.opencollar.at/appearance";
|
||||
Dialog(kID, sPrompt, [sLooksLockButton]+g_lAppearanceButtons, [UPMENU], 0, iAuth, "Appearance");
|
||||
}
|
||||
HelpMenu(key kID, integer iAuth) {
|
||||
string sPrompt="\nOpenCollar Version "+g_sCollarVersion+"\n";
|
||||
if(!g_iLatestVersion) sPrompt+="Update available!";
|
||||
sPrompt+="\n\nPrefix: "+g_sPrefix+"\nChannel: "+(string)g_iListenChan+"\nSafeword: "+g_sSafeWord+"\n\nwww.opencollar.at/helpabout";
|
||||
|
||||
string sNewsButton="☐ News";
|
||||
if (g_iNews){
|
||||
sNewsButton="☒ News";
|
||||
}
|
||||
list lStaticButtons=[GIVECARD,CONTACT,LICENSE,sNewsButton,"Update"];
|
||||
Dialog(kID, sPrompt, lStaticButtons, [UPMENU], 0, iAuth, "Help/About");
|
||||
}
|
||||
MainMenu(key kID, integer iAuth) {
|
||||
string sPrompt="\nOpenCollar Version "+g_sCollarVersion;
|
||||
if(!g_iLatestVersion) sPrompt+="\nUpdate available!";
|
||||
sPrompt += "\n\nwww.opencollar.at/main-menu";
|
||||
//Debug("max memory used: "+(string)llGetSPMaxMemory());
|
||||
list lStaticButtons;
|
||||
|
||||
if (g_iLocked) lStaticButtons+="UNLOCK";
|
||||
else lStaticButtons+="LOCK";
|
||||
|
||||
lStaticButtons+="Apps";
|
||||
if (g_iAnimsMenu){
|
||||
lStaticButtons+="Animations";
|
||||
} else {
|
||||
lStaticButtons+=" ";
|
||||
}
|
||||
if (llGetListLength(g_lAppearanceButtons)>0) {
|
||||
lStaticButtons+="Appearance";
|
||||
} else {
|
||||
lStaticButtons+=" ";
|
||||
}
|
||||
lStaticButtons+="Leash";
|
||||
if (g_iRlvMenu){
|
||||
lStaticButtons+="RLV";
|
||||
} else {
|
||||
lStaticButtons+=" ";
|
||||
}
|
||||
lStaticButtons+=["Access","Options","Help/About"];
|
||||
|
||||
Dialog(kID, sPrompt, lStaticButtons, [], 0, iAuth, "Main");
|
||||
}
|
||||
|
||||
NotifyOwners(string sMsg) {
|
||||
integer n;
|
||||
integer stop = llGetListLength(g_lOwners);
|
||||
for (n = 0; n < stop; n += 2) {
|
||||
Notify((key)llList2String(g_lOwners, n), sMsg, FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
string GetTimestamp() { // Return a string of the date and time
|
||||
string out;
|
||||
string DateUTC = llGetDate();
|
||||
if (llGetGMTclock() < 28800) { // that's 28800 seconds, a.k.a. 8 hours.
|
||||
list DateList = llParseString2List(DateUTC, ["-", "-"], []);
|
||||
integer year = llList2Integer(DateList, 0);
|
||||
integer month = llList2Integer(DateList, 1);
|
||||
integer day = llList2Integer(DateList, 2);
|
||||
// day = day - 1; //Remember, remember, the 0th of November!
|
||||
if(day==1) {
|
||||
if(month==1) return (string)(year-1) + "-01-31";
|
||||
else {
|
||||
--month;
|
||||
if(month==2) day = 28+(year%4==FALSE); //To do: fix before 28th feb 2100.
|
||||
else day = 30+ (!~llListFindList([4,6,9,11],[month])); //31 days hath == TRUE
|
||||
}
|
||||
}
|
||||
else --day;
|
||||
out=(string)year + "-" + (string)month + "-" + (string)day;
|
||||
} else out=llGetDate();
|
||||
|
||||
integer t = (integer)llGetWallclock(); // seconds since midnight
|
||||
out += " " + (string)(t / 3600) + ":";
|
||||
|
||||
integer mins=(t % 3600) / 60;
|
||||
if (mins <10){
|
||||
out += "0";
|
||||
}
|
||||
out += (string)mins+":";
|
||||
|
||||
integer secs=t % 60;
|
||||
if (secs < 10){
|
||||
out += "0";
|
||||
}
|
||||
out += (string)secs;
|
||||
|
||||
return out;
|
||||
}
|
||||
|
||||
BuildLockElementList()//EB
|
||||
{
|
||||
integer n;
|
||||
integer iLinkCount = llGetNumberOfPrims();
|
||||
list lParams;
|
||||
|
||||
// clear list just in case
|
||||
g_lOpenLockElements = [];
|
||||
g_lClosedLockElements = [];
|
||||
|
||||
//root prim is 1, so start at 2
|
||||
for (n = 2; n <= iLinkCount; n++)
|
||||
{
|
||||
// read description
|
||||
lParams=llParseString2List((string)llGetObjectDetails(llGetLinkKey(n), [OBJECT_DESC]), ["~"], []);
|
||||
// check inf name is lock name
|
||||
if (llList2String(lParams, 0)==g_sLockPrimName || llList2String(lParams, 0)==g_sClosedLockPrimName)
|
||||
{
|
||||
// if so store the number of the prim
|
||||
g_lClosedLockElements += [n];
|
||||
}
|
||||
else if (llList2String(lParams, 0)==g_sOpenLockPrimName)
|
||||
{
|
||||
// if so store the number of the prim
|
||||
g_lOpenLockElements += [n];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SetLockElementAlpha() //EB
|
||||
{
|
||||
if (g_iHide) return ; // ***** if collar is hide, don't do anything
|
||||
//loop through stored links, setting alpha if element type is lock
|
||||
integer n;
|
||||
//float fAlpha;
|
||||
//if (g_iLocked) fAlpha = 1.0; else fAlpha = 0.0; //Let's just use g_iLocked!
|
||||
integer iLinkElements = llGetListLength(g_lOpenLockElements);
|
||||
for (n = 0; n < iLinkElements; n++)
|
||||
{
|
||||
llSetLinkAlpha(llList2Integer(g_lOpenLockElements,n), !g_iLocked, ALL_SIDES);
|
||||
}
|
||||
iLinkElements = llGetListLength(g_lClosedLockElements);
|
||||
for (n = 0; n < iLinkElements; n++)
|
||||
{
|
||||
llSetLinkAlpha(llList2Integer(g_lClosedLockElements,n), g_iLocked, ALL_SIDES);
|
||||
}
|
||||
}
|
||||
|
||||
RebuildMenu()
|
||||
{
|
||||
//Debug("Rebuild Menu");
|
||||
g_iAnimsMenu=FALSE;
|
||||
g_iRlvMenu=FALSE;
|
||||
g_iAppearanceMenu=FALSE;
|
||||
g_lAppsButtons = [] ;
|
||||
g_lAppearanceButtons = [];
|
||||
llMessageLinked(LINK_SET, MENUNAME_REQUEST, "Main", "");
|
||||
llMessageLinked(LINK_SET, MENUNAME_REQUEST, "AddOns", "");
|
||||
llMessageLinked(LINK_SET, MENUNAME_REQUEST, "Apps", "");
|
||||
llMessageLinked(LINK_SET, MENUNAME_REQUEST, "Appearance", "");
|
||||
}
|
||||
|
||||
init (){
|
||||
github_version_request = llHTTPRequest(version_check_url, [HTTP_METHOD, "GET", HTTP_VERBOSE_THROTTLE, FALSE], "");
|
||||
|
||||
g_iWaitRebuild = TRUE;
|
||||
llSetTimerEvent(1);//delay menu rebuild until other scripts are ready
|
||||
}
|
||||
|
||||
integer UserCommand(integer iNum, string sStr, key kID, integer fromMenu) {
|
||||
if (iNum == COMMAND_EVERYONE) return TRUE; // No command for people with no privilege in this plugin.
|
||||
else if (iNum > COMMAND_EVERYONE || iNum < COMMAND_OWNER) return FALSE; // sanity check
|
||||
//Debug("Got message "+sStr);
|
||||
|
||||
list lParams = llParseString2List(sStr, [" "], []);
|
||||
string sCmd = llToLower(llList2String(lParams, 0));
|
||||
|
||||
if (sCmd == "menu") {
|
||||
string sSubmenu = llToLower(llList2String(lParams, 1));
|
||||
if (sSubmenu == "main" || sSubmenu == "") MainMenu(kID, iNum);
|
||||
else if (sSubmenu == "apps" || sSubmenu=="addons") AppsMenu(kID, iNum);
|
||||
else if (sSubmenu == "help/about") HelpMenu(kID, iNum);
|
||||
else if (sSubmenu == "appearance") AppearanceMenu(kID, iNum);
|
||||
} else if (sStr == "license") {
|
||||
if(llGetInventoryType("OpenCollar License")==INVENTORY_NOTECARD) llGiveInventory(kID,"OpenCollar License");
|
||||
else Notify(kID,"License notecard missing from collar, sorry.", FALSE);
|
||||
if (fromMenu) HelpMenu(kID, iNum);
|
||||
} else if (sStr == "help") {
|
||||
llGiveInventory(kID, HELPCARD);
|
||||
if (fromMenu) HelpMenu(kID, iNum);
|
||||
} else if (sStr =="about" || sStr=="help/about") HelpMenu(kID,iNum);
|
||||
else if (sStr == "addons" || sStr=="apps") AppsMenu(kID, iNum);
|
||||
else if (sStr == "appearance") AppearanceMenu(kID, iNum);
|
||||
else if (sCmd == "menuto") {
|
||||
key kAv = (key)llList2String(lParams, 1);
|
||||
if (llGetAgentSize(kAv) != ZERO_VECTOR) //if kAv is an avatar in this region
|
||||
{
|
||||
if(llGetOwnerKey(kID)==kAv) MainMenu(kID, iNum); //if the request was sent by something owned by that agent, send a menu
|
||||
else llMessageLinked(LINK_SET, COMMAND_NOAUTH, "menu", kAv); //else send an auth request for the menu
|
||||
}
|
||||
} else if (sCmd == "lock" || (!g_iLocked && sStr == "togglelock")) { //does anything use togglelock? If not, it'd be nice to get rid of it
|
||||
//Debug("User command:"+sCmd);
|
||||
|
||||
if (iNum == COMMAND_OWNER || kID == g_kWearer ) { //primary owners and wearer can lock and unlock. no one else
|
||||
//inlined old "Lock()" function
|
||||
g_iLocked = TRUE;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, "Global_locked=1", "");
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "detach=n", "main");
|
||||
llPlaySound(g_sLockSound, 1.0);
|
||||
SetLockElementAlpha();//EB
|
||||
|
||||
Notify(kID,CTYPE + " has been locked.",TRUE);
|
||||
}
|
||||
else Notify(kID, "Sorry, only primary owners and wearer can lock the " + CTYPE + ".", FALSE);
|
||||
if (fromMenu) MainMenu(kID, iNum);
|
||||
} else if (sStr=="☒ LooksLock" || llToLower(sStr)=="lookslock off") {
|
||||
if (iNum == COMMAND_OWNER) {
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, "Appearance_Lock", "");
|
||||
llMessageLinked(LINK_SET, iNum, "lockappearance 0", kID);
|
||||
g_iAppLock=FALSE;
|
||||
} else Notify(kID,"Only owners can change the looks lock.", FALSE);
|
||||
if (fromMenu) AppearanceMenu(kID,iNum);
|
||||
} else if (sStr=="☐ LooksLock" || llToLower(sStr)=="lookslock on") {
|
||||
if (iNum == COMMAND_OWNER) {
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, "Appearance_Lock" + "=1", "");
|
||||
llMessageLinked(LINK_SET, iNum, "lockappearance 1", kID);
|
||||
g_iAppLock=TRUE;
|
||||
} else Notify(kID,"Only owners can change the looks lock.", FALSE);
|
||||
if (fromMenu) AppearanceMenu(kID,iNum);
|
||||
} else if (sStr == "runaway" || sCmd == "unlock" || (g_iLocked && sStr == "togglelock")) {
|
||||
if (iNum == COMMAND_OWNER) { //primary owners can lock and unlock. no one else
|
||||
//inlined old "Unlock()" function
|
||||
g_iLocked = FALSE;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, "Global_locked", "");
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "detach=y", "main");
|
||||
llPlaySound(g_sUnlockSound, 1.0);
|
||||
SetLockElementAlpha(); //EB
|
||||
|
||||
Notify(kID,CTYPE + " has been unlocked.",TRUE);
|
||||
}
|
||||
else Notify(kID, "Sorry, only primary owners can unlock the " + CTYPE + ".", FALSE);
|
||||
if (fromMenu) MainMenu(kID, iNum);
|
||||
} else if (sCmd == "fixmenus") {
|
||||
if (kID == g_kWearer || iNum==COMMAND_OWNER){
|
||||
RebuildMenu();
|
||||
Notify(kID, "Rebuilding menus, this may take several seconds.", FALSE);
|
||||
} else Notify(kID, "Sorry, only primary owners and wearer can fix menus.", FALSE);
|
||||
} else if (sCmd == "news"){
|
||||
if (kID == g_kWearer || iNum==COMMAND_OWNER){
|
||||
if (sStr=="news off"){
|
||||
g_iNews=FALSE;
|
||||
Notify(kID,"News items will no longer be downloaded from the OpenCollar web site.",TRUE); //notify news off
|
||||
} else if (sStr=="news on"){
|
||||
g_iNews=TRUE;
|
||||
Notify(kID,"News items will be downloaded from the OpenCollar web site when they are available.",TRUE); //notify news on
|
||||
g_sLastNewsTime="0";
|
||||
news_request = llHTTPRequest(news_url, [HTTP_METHOD, "GET", HTTP_VERBOSE_THROTTLE, FALSE], "");
|
||||
} else {
|
||||
g_sLastNewsTime="0";
|
||||
news_request = llHTTPRequest(news_url, [HTTP_METHOD, "GET", HTTP_VERBOSE_THROTTLE, FALSE], "");
|
||||
}
|
||||
} else Notify(kID,"Only primary owners and wearer can change news settings.",FALSE);
|
||||
if (fromMenu) HelpMenu(kID, iNum);
|
||||
} else if (sCmd == "update") {
|
||||
// if (llGetOwnerKey(kID) == g_kWearer) {
|
||||
if (kID == g_kWearer) {
|
||||
string sVersion = llList2String(llParseString2List(llGetObjectDesc(), ["~"], []), 1);
|
||||
g_iWillingUpdaters = 0;
|
||||
g_kCurrentUser = kID;
|
||||
g_iUpdateAuth = iNum;
|
||||
Notify(kID,"Searching for nearby updater",FALSE);
|
||||
g_iUpdateHandle = llListen(g_iUpdateChan, "", "", "");
|
||||
g_iUpdateFromMenu=fromMenu;
|
||||
llWhisper(g_iUpdateChan, "UPDATE|" + sVersion);
|
||||
g_iWaitUpdate = TRUE;
|
||||
llSetTimerEvent(5.0); //set a timer to wait for responses from updaters
|
||||
} else {
|
||||
Notify(kID,"Only the wearer can update the " + CTYPE + ".",FALSE);
|
||||
if (fromMenu) HelpMenu(kID, iNum);
|
||||
}
|
||||
} else if (sCmd == "version") {
|
||||
Notify(kID, "I am running OpenCollar version " + g_sCollarVersion, FALSE);
|
||||
} else if (sCmd == "objectversion") { // ping from an object, we answer to it on the object channel
|
||||
integer iChan = (integer)("0x"+llGetSubString((string)g_kWearer,2,7)) + 1111;
|
||||
if (iChan>0) iChan=iChan*(-1);
|
||||
if (iChan > -10000) iChan -= 30000;
|
||||
|
||||
llSay(iChan,(string)g_kWearer+"\\version="+g_sCollarVersion);
|
||||
} else if (sCmd == "attachmentversion") {
|
||||
// Reply to version request from "garvin style" attachment
|
||||
integer iInterfaceChannel = (integer)("0x" + llGetSubString(g_kWearer,30,-1));
|
||||
if (iInterfaceChannel > 0) iInterfaceChannel = -iInterfaceChannel;
|
||||
llRegionSayTo(g_kWearer, iInterfaceChannel, "version="+g_sCollarVersion);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
default {
|
||||
on_rez(integer iParam) {
|
||||
init();
|
||||
}
|
||||
|
||||
state_entry() {
|
||||
//llSetMemoryLimit(65536); //this script needs to be profiled, and its memory limited
|
||||
g_kWearer = llGetOwner(); //updates in change event prompting script restart
|
||||
WEARERNAME = llKey2Name(g_kWearer); //quick and dirty default, will get replaced by value from settings
|
||||
BuildLockElementList(); //updates in change event, doesn;t need a reset every time
|
||||
g_iScriptCount = llGetInventoryNumber(INVENTORY_SCRIPT); //updates on change event;
|
||||
|
||||
llMessageLinked(LINK_SET, LM_SETTING_REQUEST, "Global_locked", ""); //settings will send these on_rez, so no need to ask every rez
|
||||
llMessageLinked(LINK_SET, LM_SETTING_REQUEST, "auth_owner", ""); //settings will send these on_rez, so no need to ask every rez
|
||||
|
||||
init(); //do stuf needed on_rez AND on script start
|
||||
|
||||
g_sPrefix=AutoPrefix();
|
||||
//Debug("Starting");
|
||||
}
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID) {
|
||||
// SA: delete this after transition is finished
|
||||
if (iNum == COMMAND_NOAUTH) return;
|
||||
// /SA
|
||||
else if (iNum == MENUNAME_RESPONSE) {
|
||||
//sStr will be in form of "parent|menuname"
|
||||
//Debug("got menu button "+sStr);
|
||||
list lParams = llParseString2List(sStr, ["|"], []);
|
||||
string sName = llList2String(lParams, 0);
|
||||
string sSubMenu = llList2String(lParams, 1);
|
||||
if (sName=="AddOns" || sName=="Apps"){ //we only accept buttons for apps nemu
|
||||
//Debug("we handle " + sName);
|
||||
if (llListFindList(g_lAppsButtons, [sSubMenu]) == -1) {
|
||||
g_lAppsButtons += [sSubMenu];
|
||||
g_lAppsButtons = llListSort(g_lAppsButtons, 1, TRUE);
|
||||
}
|
||||
} else if (sName=="Appearance") { //and appearance
|
||||
if (llListFindList(g_lAppearanceButtons, [sSubMenu]) == -1) {
|
||||
g_lAppearanceButtons += [sSubMenu];
|
||||
g_lAppearanceButtons = llListSort(g_lAppearanceButtons, 1, TRUE);
|
||||
}
|
||||
|
||||
} else if (sStr=="Main|Animations"){
|
||||
g_iAnimsMenu=TRUE;
|
||||
} else if (sStr=="Main|RLV"){
|
||||
g_iRlvMenu=TRUE;
|
||||
// } else if (sStr=="Main|Appearance"){
|
||||
// g_iAppearanceMenu=TRUE;
|
||||
} else if (sStr=="Main|Customize"){
|
||||
g_iCustomizeMenu=TRUE;
|
||||
} else if (sStr=="Main|Paint"){
|
||||
g_iPaintMenu=TRUE;
|
||||
}
|
||||
} else if (iNum == MENUNAME_REMOVE) {
|
||||
//sStr should be in form of parentmenu|childmenu
|
||||
list lParams = llParseString2List(sStr, ["|"], []);
|
||||
string parent = llList2String(lParams, 0);
|
||||
string child = llList2String(lParams, 1);
|
||||
|
||||
if (parent=="Apps" || parent=="AddOns") {
|
||||
integer gutiIndex = llListFindList(g_lAppsButtons, [child]);
|
||||
if (gutiIndex != -1) g_lAppsButtons = llDeleteSubList(g_lAppsButtons, gutiIndex, gutiIndex);
|
||||
}
|
||||
if (parent=="Appearance") {
|
||||
integer gutiIndex = llListFindList(g_lAppsButtons, [child]);
|
||||
if (gutiIndex != -1) g_lAppearanceButtons = llDeleteSubList(g_lAppearanceButtons, gutiIndex, gutiIndex);
|
||||
}
|
||||
} else if (iNum == DIALOG_RESPONSE) {
|
||||
//Debug("Menu response");
|
||||
integer iMenuIndex = llListFindList(g_lMenuIDs, [kID]);
|
||||
if (iMenuIndex != -1) { //got a menu response meant for us. pull out values
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
|
||||
//remove stride from g_lMenuIDs. We have to subtract from the index because the dialog id comes in the middle of the stride
|
||||
string sMenu=llList2String(g_lMenuIDs, iMenuIndex + 1);
|
||||
g_lMenuIDs = llDeleteSubList(g_lMenuIDs, iMenuIndex - 1, iMenuIndex - 2 + g_iMenuStride);
|
||||
|
||||
//process response
|
||||
if (sMenu=="Main"){
|
||||
//Debug("Main menu response: '"+sMessage+"'");
|
||||
if (sMessage == "LOCK" || sMessage== "UNLOCK"){
|
||||
//Debug("doing usercommand for lock/unlock");
|
||||
UserCommand(iAuth, sMessage, kAv, TRUE);
|
||||
} else if (sMessage == "Help/About"){
|
||||
HelpMenu(kAv, iAuth);
|
||||
} else if (sMessage == "Apps"){
|
||||
AppsMenu(kAv, iAuth);
|
||||
} else if (sMessage == "Appearance"){
|
||||
AppearanceMenu(kAv, iAuth);
|
||||
} else {
|
||||
llMessageLinked(LINK_SET, iAuth, "menu "+sMessage, kAv);
|
||||
}
|
||||
} else if (sMenu=="Apps" || sMenu=="Appearance"){
|
||||
//Debug("Apps menu response:"+sMessage);
|
||||
if (sMessage == UPMENU) {
|
||||
MainMenu(kAv, iAuth);
|
||||
} else if (llSubStringIndex(sMessage,"LooksLock")==2) {
|
||||
UserCommand(iAuth, sMessage, kAv, TRUE);
|
||||
} else {
|
||||
llMessageLinked(LINK_SET, iAuth, "menu "+sMessage, kAv);
|
||||
}
|
||||
} else if (sMenu=="Help/About"){
|
||||
//Debug("Help menu response");
|
||||
if (sMessage == UPMENU) MainMenu(kAv, iAuth);
|
||||
else if (sMessage == "Settings") {
|
||||
llMessageLinked(LINK_SET, iAuth, "menu settings", kAv);
|
||||
} else if (sMessage == GIVECARD) {
|
||||
UserCommand(iAuth,"help",kAv, TRUE);
|
||||
} else if (sMessage == LICENSE) {
|
||||
UserCommand(iAuth,"license",kAv, TRUE);
|
||||
} else if (sMessage == CONTACT) {
|
||||
g_kWebLookup = llHTTPRequest("https://raw.githubusercontent.com/lickx/opencollar-os/oscollar3/LSL/~contact", [HTTP_METHOD, "GET", HTTP_VERBOSE_THROTTLE, FALSE], "");
|
||||
g_kCurrentUser = kAv;
|
||||
HelpMenu(kAv, iAuth);
|
||||
} else if (sMessage=="☐ News") {
|
||||
//Debug("News on button");
|
||||
UserCommand(iAuth, "news on", kAv, TRUE);
|
||||
} else if (sMessage=="☒ News") {
|
||||
//Debug("News off button");
|
||||
UserCommand(iAuth, "news off", kAv, TRUE);
|
||||
} else if (sMessage == "Update") UserCommand(iAuth,"update",kAv,TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (UserCommand(iNum, sStr, kID, FALSE)) return;
|
||||
else if (iNum == LM_SETTING_RESPONSE)
|
||||
{
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
if (sToken == "Global_locked") {
|
||||
g_iLocked = (integer)sValue;
|
||||
SetLockElementAlpha(); //EB
|
||||
} else if (sToken == "Global_CType") CTYPE = sValue;
|
||||
else if (sToken == "auth_owner")
|
||||
{
|
||||
g_lOwners = llParseString2List(sValue, [","], []);
|
||||
}
|
||||
else if(sToken =="lock_locksound")
|
||||
{
|
||||
if(sValue=="default") g_sLockSound=g_sDefaultLockSound;
|
||||
else if((key)sValue!=NULL_KEY || llGetInventoryType(sValue)==INVENTORY_SOUND) g_sLockSound=sValue;
|
||||
}
|
||||
else if (sToken == "Appearance_Lock") g_iAppLock = (integer)sValue;
|
||||
else if(sToken =="lock_unlocksound")
|
||||
{
|
||||
if(sValue=="default") g_sUnlockSound=g_sDefaultUnlockSound;
|
||||
else if((key)sValue!=NULL_KEY || llGetInventoryType(sValue)==INVENTORY_SOUND) g_sUnlockSound=sValue;
|
||||
}
|
||||
else if (sToken == "listener_channel") g_iListenChan = llList2Integer(llParseString2List(sValue,[","],[]),0);
|
||||
else if (sToken == "listener_safeword") g_sSafeWord = sValue;
|
||||
else if (sToken == "Global_prefix") g_sPrefix = sValue;
|
||||
else if (sToken == "Global_news") g_iNews = (integer)sValue;
|
||||
else if (sStr == "settings=sent") {
|
||||
if (g_iNews) news_request = llHTTPRequest(news_url, [HTTP_METHOD, "GET", HTTP_VERBOSE_THROTTLE, FALSE], "");
|
||||
} else if (sToken=="Global_WearerName") WEARERNAME=sValue;
|
||||
}
|
||||
else if (iNum == DIALOG_TIMEOUT)
|
||||
{
|
||||
integer iMenuIndex = llListFindList(g_lMenuIDs, [kID]);
|
||||
//remove stride from g_lMenuIDs
|
||||
//we have to subtract from the index because the dialog id comes in the middle of the stride
|
||||
g_lMenuIDs = llDeleteSubList(g_lMenuIDs, iMenuIndex - 1, iMenuIndex - 2 + g_iMenuStride);
|
||||
}
|
||||
else if (iNum == LM_SETTING_SAVE)
|
||||
{
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
if (sToken == "auth_owner") g_lOwners = llParseString2List(sValue, [","], []);
|
||||
else if (sToken == "listener_channel") g_iListenChan = llList2Integer(llParseString2List(sValue,[","],[]),0);
|
||||
else if (sToken == "listener_safeword") g_sSafeWord = sValue;
|
||||
else if (sToken == "Global_prefix") g_sPrefix = sValue;
|
||||
}
|
||||
else if (iNum == RLV_REFRESH || iNum == RLV_CLEAR)
|
||||
{
|
||||
if (g_iLocked) llMessageLinked(LINK_SET, RLV_CMD, "detach=n", "main");
|
||||
else llMessageLinked(LINK_SET, RLV_CMD, "detach=y", "main");
|
||||
}
|
||||
}
|
||||
|
||||
attach(key kID)
|
||||
{
|
||||
if (g_iLocked)
|
||||
{
|
||||
if(kID == NULL_KEY)
|
||||
{
|
||||
g_bDetached = TRUE;
|
||||
NotifyOwners(WEARERNAME + " has detached me while locked at " + GetTimestamp() + "!");
|
||||
}
|
||||
else if(g_bDetached)
|
||||
{
|
||||
NotifyOwners(WEARERNAME + " has re-atached me at " + GetTimestamp() + "!");
|
||||
g_bDetached = FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
http_response(key id, integer status, list meta, string body){
|
||||
if (status == 200) { // be silent on failures.
|
||||
if (id == g_kWebLookup){
|
||||
Notify(g_kCurrentUser,body,FALSE);
|
||||
} else if (id == github_version_request) { // strip the newline off the end of the text
|
||||
if (compareVersions(llStringTrim(body, STRING_TRIM),g_sCollarVersion)) g_iLatestVersion=FALSE;
|
||||
else g_iLatestVersion=TRUE;
|
||||
} else if (id == news_request) { // We got a response back from the news page on Github. See if it's new enough to report to the user.
|
||||
// The first line of a news item should be space delimited list with timestamp in format yyyymmdd.n as the last field, where n is the number of messages on this day
|
||||
string firstline = llList2String(llParseString2List(body, ["\n"], []), 0);
|
||||
list firstline_parts = llParseString2List(firstline, [" "], []);
|
||||
string this_news_time = llList2String(firstline_parts, -1);
|
||||
|
||||
if (compareVersions(this_news_time,g_sLastNewsTime)) {
|
||||
string news = "Newsflash " + body;
|
||||
llOwnerSay(news);
|
||||
g_sLastNewsTime = this_news_time;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
listen(integer channel, string name, key id, string message) {
|
||||
if (llGetOwnerKey(id) == g_kWearer) { //collar and updater have to have the same Owner else do nothing!
|
||||
list lTemp = llParseString2List(message, [","],[]);
|
||||
string sCommand = llList2String(lTemp, 0);
|
||||
if( message == "get ready") {
|
||||
g_iWillingUpdaters++;
|
||||
g_kUpdaterOrb = id;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
timer() {
|
||||
if (g_iWaitUpdate) {
|
||||
g_iWaitUpdate = FALSE;
|
||||
llListenRemove(g_iUpdateHandle);
|
||||
|
||||
if (!g_iWillingUpdaters) { //if no updaters responded, get upgrader info from web and remenu
|
||||
g_kWebLookup = llHTTPRequest("https://raw.githubusercontent.com/OpenCollar/OpenCollarUpdater/main/LSL/~update", [HTTP_METHOD, "GET", HTTP_VERBOSE_THROTTLE, FALSE], "");
|
||||
if (g_iUpdateFromMenu) HelpMenu(g_kCurrentUser,g_iUpdateAuth);
|
||||
} else if (g_iWillingUpdaters > 1) { //if too many updaters, PANIC!
|
||||
Notify(g_kCurrentUser,"Multiple updaters were found within 10m. Please remove all but one and try again",FALSE);
|
||||
} else { //perform update
|
||||
integer pin = (integer)llFrand(99999998.0) + 1; //set a random pin
|
||||
llSetRemoteScriptAccessPin(pin);
|
||||
llRegionSayTo(g_kUpdaterOrb, g_iUpdateChan, "ready|" + (string)pin );
|
||||
}
|
||||
}
|
||||
|
||||
if (g_iWaitRebuild) {
|
||||
g_iWaitRebuild = FALSE;
|
||||
RebuildMenu();
|
||||
}
|
||||
|
||||
if (!g_iWaitUpdate && !g_iWaitRebuild) llSetTimerEvent(0.0);
|
||||
}
|
||||
|
||||
changed(integer iChange)
|
||||
{
|
||||
if (iChange & CHANGED_INVENTORY)
|
||||
{
|
||||
if (llGetInventoryNumber(INVENTORY_SCRIPT) != g_iScriptCount) { //a script has been added or removed. Reset to rebuild menu
|
||||
RebuildMenu(); //llResetScript();
|
||||
}
|
||||
g_iScriptCount=llGetInventoryNumber(INVENTORY_SCRIPT);
|
||||
}
|
||||
if (iChange & CHANGED_OWNER) llResetScript();
|
||||
if (iChange & CHANGED_COLOR) // *********************
|
||||
{
|
||||
integer iNewHide=!(integer)llGetAlpha(ALL_SIDES) ; //check alpha
|
||||
if (g_iHide != iNewHide){ //check there's a difference to avoid infinite loop
|
||||
g_iHide = iNewHide;
|
||||
SetLockElementAlpha(); // update hide elements
|
||||
}
|
||||
}
|
||||
if (iChange & CHANGED_LINK) BuildLockElementList(); // need rebuils lockelements list
|
||||
/*
|
||||
if (iChange & CHANGED_REGION) {
|
||||
if (g_iProfiled){
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,507 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - meshlabel //
|
||||
// version 160727.1 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
string g_sParentMenu = "Apps";
|
||||
string g_sSubMenu = "Label";
|
||||
|
||||
key g_kWearer;
|
||||
|
||||
integer g_iAppLock = FALSE;
|
||||
string g_sAppLockToken = "Appearance_Lock";
|
||||
|
||||
//opencollar MESSAGE MAP
|
||||
integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
|
||||
integer POPUP_HELP = 1001;
|
||||
|
||||
integer LM_SETTING_SAVE = 2000;//scripts send messages on this channel to have settings saved to httpdb
|
||||
//str must be in form of "token=value"
|
||||
integer LM_SETTING_REQUEST = 2001;//when startup, scripts send requests for settings on this channel
|
||||
integer LM_SETTING_RESPONSE = 2002;//the httpdb script will send responses on this channel
|
||||
integer LM_SETTING_DELETE = 2003;//delete token from DB
|
||||
integer LM_SETTING_EMPTY = 2004;//sent when a token has no value in the httpdb
|
||||
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
integer MENUNAME_REMOVE = 3003;
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
integer g_iCharLimit = -1;
|
||||
|
||||
string UPMENU = "BACK";
|
||||
string CTYPE = "collar";
|
||||
|
||||
string g_sTextMenu = "Set Label";
|
||||
string g_sFontMenu = "Font";
|
||||
string g_sColorMenu = "Color";
|
||||
|
||||
key g_kDialogID;
|
||||
key g_kTBoxID;
|
||||
key g_kFontID;
|
||||
key g_kColorID;
|
||||
|
||||
list g_lColours=[
|
||||
"Gray Shade",<0.70588, 0.70588, 0.70588>,
|
||||
"Gold Shade",<0.69020, 0.61569, 0.43529>,
|
||||
"Baby Pink",<1.00000, 0.52157, 0.76078>,
|
||||
"Hot Pink",<1.00000, 0.05490, 0.72157>,
|
||||
"Firefighter",<0.88627, 0.08627, 0.00392>,
|
||||
"Flame",<0.92941, 0.43529, 0.00000>,
|
||||
"Matrix",<0.07843, 1.00000, 0.07843>,
|
||||
"Electricity",<0.00000, 0.46667, 0.92941>,
|
||||
"Violet Wand",<0.63922, 0.00000, 0.78824>,
|
||||
"Black",<0.00000, 0.00000, 0.00000>,
|
||||
"White",<1.00000, 1.00000, 1.00000>
|
||||
];
|
||||
string g_sCharmap = "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƒƠơƯưǰǺǻǼǽǾǿȘșʼˆˇˉ˘˙˚˛˜˝˳̣̀́̃̉̏΄΅Ά·ΈΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώϑϒϖЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿҀҁ҂҃҄҅҆҈҉ҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝҞҟҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎӏӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹӺӻӼӽӾӿԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԐԑԒԓḀḁḾḿẀẁẂẃẄẅẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹὍ–—―‗‘’‚‛“”„†‡•…‰′″‹›‼⁄ⁿ₣₤₧₫€℅ℓ№™Ω℮⅛⅜⅝⅞∂∆∏∑−√∞∫≈≠≤≥◊fiflffiffl ";
|
||||
|
||||
list g_lFonts = [
|
||||
"Solid", "464e8b47-d578-4e24-a671-de7c2f2b7a24",
|
||||
"Outlined", "efeb123d-a014-4586-8012-62086272ccaf"
|
||||
];
|
||||
|
||||
key g_kFontTexture = "464e8b47-d578-4e24-a671-de7c2f2b7a24";
|
||||
|
||||
integer x = 45;
|
||||
integer y = 19;
|
||||
|
||||
integer faces = 6;
|
||||
|
||||
float g_fScrollTime = 0.3 ;
|
||||
integer g_iSctollPos ;
|
||||
string g_sScrollText;
|
||||
list g_lLabelLinks ;
|
||||
|
||||
integer g_iScroll = FALSE;
|
||||
integer g_iShow;
|
||||
vector g_vColor = <1,1,1>;
|
||||
|
||||
string g_sLabelText = "";
|
||||
string g_sSettingToken = "label_";
|
||||
//string g_sGlobalToken = "global_";
|
||||
|
||||
float Ureps;
|
||||
float Vreps;
|
||||
|
||||
string g_sScript = "label_";
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
key Dialog(key kRCPT, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth)
|
||||
{
|
||||
key kID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kRCPT + "|" + sPrompt + "|" + (string)iPage + "|"
|
||||
+ llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kID);
|
||||
//Debug("Made menu.");
|
||||
return kID;
|
||||
}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer)
|
||||
{
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else
|
||||
{
|
||||
if (llGetAgentSize(kID)!=ZERO_VECTOR) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
integer GetIndex(string sChar) {
|
||||
integer i;
|
||||
if (sChar == "") return 854;
|
||||
else i = llSubStringIndex(g_sCharmap, sChar);
|
||||
if (i>=0) return i;
|
||||
else return 854;
|
||||
}
|
||||
|
||||
|
||||
RenderString(integer iPos, string sChar) { // iPos - позиция символа на лейбле
|
||||
integer frame = GetIndex(sChar); //номер символа в таблице
|
||||
integer i = iPos/faces;
|
||||
integer link = llList2Integer(g_lLabelLinks,i);
|
||||
integer face = iPos - faces * i;
|
||||
integer frameY = frame / x;
|
||||
integer frameX = frame - x * frameY;
|
||||
float Uoffset = -0.5 + (Ureps/2 + Ureps*(frameX)) ;
|
||||
float Voffset = 0.5 - (Vreps/2 + Vreps*(frameY)) ;
|
||||
llSetLinkPrimitiveParamsFast(link, [PRIM_TEXTURE, face, g_kFontTexture, <Ureps, Vreps,0>, <Uoffset, Voffset, 0>, 0]);
|
||||
}
|
||||
|
||||
SetColor() {
|
||||
integer i=0;
|
||||
do {
|
||||
integer iLink = llList2Integer(g_lLabelLinks,i);
|
||||
float fAlpha = llList2Float(llGetLinkPrimitiveParams( iLink,[PRIM_COLOR,ALL_SIDES]),1);
|
||||
llSetLinkPrimitiveParamsFast(iLink, [PRIM_COLOR, ALL_SIDES, g_vColor, fAlpha]);
|
||||
} while (++i < llGetListLength(g_lLabelLinks));
|
||||
}
|
||||
|
||||
// find all 'Label' prims, count and store it's link numbers for fast work SetLabel() and timer
|
||||
integer LabelsCount() {
|
||||
integer ok = TRUE ;
|
||||
g_lLabelLinks = [] ;
|
||||
|
||||
string sLabel;
|
||||
list lTmp;
|
||||
integer iLink;
|
||||
integer iLinkCount = llGetNumberOfPrims();
|
||||
//find all 'Label' prims and count it's
|
||||
for(iLink=2; iLink <= iLinkCount; iLink++) {
|
||||
lTmp = llParseString2List(llList2String(llGetLinkPrimitiveParams(iLink,[PRIM_NAME]),0), ["~"],[]);
|
||||
sLabel = llList2String(lTmp,0);
|
||||
if(sLabel == "MeshLabel") {
|
||||
g_lLabelLinks += [0]; // fill list witn nulls
|
||||
//change prim description
|
||||
llSetLinkPrimitiveParamsFast(iLink,[PRIM_DESC,"Label~notexture~nocolor~nohide~noshiny"]);
|
||||
}
|
||||
}
|
||||
g_iCharLimit = llGetListLength(g_lLabelLinks) * 6;
|
||||
//find all 'Label' prims and store it's links to list
|
||||
for(iLink=2; iLink <= iLinkCount; iLink++) {
|
||||
lTmp = llParseString2List(llList2String(llGetLinkPrimitiveParams(iLink,[PRIM_NAME]),0), ["~"],[]);
|
||||
sLabel = llList2String(lTmp,0);
|
||||
if (sLabel == "MeshLabel") {
|
||||
integer iLabel = (integer)llList2String(lTmp,1);
|
||||
integer link = llList2Integer(g_lLabelLinks,iLabel);
|
||||
if (link == 0)
|
||||
g_lLabelLinks = llListReplaceList(g_lLabelLinks,[iLink],iLabel,iLabel);
|
||||
else {
|
||||
ok = FALSE;
|
||||
llOwnerSay("Warning! Found duplicated label prims: "+sLabel+" with link numbers: "+(string)link+" and "+(string)iLink);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!ok) {
|
||||
if ((~llSubStringIndex(llGetObjectName(),"Installer")) && (~llSubStringIndex(llGetObjectName(),"Updater")))
|
||||
return 1;
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
SetLabel() {
|
||||
string sText ;
|
||||
if (g_iShow) sText = g_sLabelText;
|
||||
|
||||
string sPadding;
|
||||
if(g_iScroll==TRUE) {
|
||||
while(llStringLength(sPadding) < g_iCharLimit) sPadding += " ";
|
||||
g_sScrollText = sPadding + sText;
|
||||
llSetTimerEvent(g_fScrollTime);
|
||||
} else {
|
||||
g_sScrollText = "";
|
||||
llSetTimerEvent(0);
|
||||
//inlined single use CenterJustify function
|
||||
while(llStringLength(sPadding + sText + sPadding) < g_iCharLimit) sPadding += " ";
|
||||
sText = sPadding + sText;
|
||||
integer iCharPosition;
|
||||
for(iCharPosition=0; iCharPosition < g_iCharLimit; iCharPosition++)
|
||||
RenderString(iCharPosition, llGetSubString(sText, iCharPosition, iCharPosition));
|
||||
}
|
||||
//Debug("Label Set");
|
||||
}
|
||||
|
||||
|
||||
MainMenu(key kID, integer iAuth)
|
||||
{
|
||||
list lButtons= [g_sTextMenu, g_sColorMenu, g_sFontMenu];
|
||||
if (g_iShow) lButtons += ["☒ Show"];
|
||||
else lButtons += ["☐ Show"];
|
||||
|
||||
if (g_iScroll) lButtons += ["☒ Scroll"];
|
||||
else lButtons += ["☐ Scroll"];
|
||||
|
||||
string sPrompt = "\nCustomize the " + CTYPE + "'s label!\n\nwww.opencollar.at/label";
|
||||
g_kDialogID=Dialog(kID, sPrompt, lButtons, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
TextMenu(key kID, integer iAuth)
|
||||
{
|
||||
string sPrompt="\n- Submit the new label in the field below.\n- Submit a few spaces to clear the label.\n- Submit a blank field to go back to " + g_sSubMenu + ".\n\nwww.opencollar.at/label";
|
||||
g_kTBoxID = Dialog(kID, sPrompt, [], [], 0, iAuth);
|
||||
}
|
||||
|
||||
ColorMenu(key kID, integer iAuth)
|
||||
{
|
||||
string sPrompt = "\n\nSelect a colour from the list";
|
||||
list lColourNames;
|
||||
integer numColours=llGetListLength(g_lColours)/2;
|
||||
while (numColours--)
|
||||
{
|
||||
lColourNames+=llList2String(g_lColours,numColours*2);
|
||||
}
|
||||
g_kColorID=Dialog(kID, sPrompt, lColourNames, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
FontMenu(key kID, integer iAuth)
|
||||
{
|
||||
list lButtons=llList2ListStrided(g_lFonts,0,-1,2);
|
||||
string sPrompt = "\nSelect the font for the " + CTYPE + "'s label.\n\nNOTE: This feature requires a design with label prims. If the worn design doesn't have any of those, it is recommended to uninstall Label with the updater.\n\nwww.opencollar.at/label";
|
||||
|
||||
g_kFontID=Dialog(kID, sPrompt, lButtons, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
|
||||
integer UserCommand(integer iAuth, string sStr, key kAv)
|
||||
{
|
||||
if (iAuth > COMMAND_WEARER || iAuth < COMMAND_OWNER) return FALSE; // sanity check
|
||||
|
||||
if (iAuth == COMMAND_OWNER || !g_iAppLock)
|
||||
{
|
||||
if (sStr == "menu " + g_sSubMenu || llToLower(sStr)=="label")
|
||||
{
|
||||
MainMenu(kAv, iAuth);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
list lParams = llParseString2List(sStr, [" "], []);
|
||||
string sCommand = llToLower(llList2String(lParams, 0));
|
||||
|
||||
if (sCommand == "lockappearance" && iAuth == COMMAND_OWNER) {
|
||||
if (llToLower(llList2String(lParams, 1)) == "0") g_iAppLock = FALSE;
|
||||
else g_iAppLock = TRUE;
|
||||
} else if (sCommand == "labeltext") {
|
||||
g_sLabelText = llStringTrim(llDumpList2String(llDeleteSubList(lParams,0,0)," "),STRING_TRIM);
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "text=" + g_sLabelText, "");
|
||||
if (llStringLength(g_sLabelText) > g_iCharLimit) {
|
||||
string sDisplayText = llGetSubString(g_sLabelText, 0, g_iCharLimit-1);
|
||||
Notify(kAv,"Unless you set your label to scroll it will be truncated at "+sDisplayText+".", FALSE);
|
||||
}
|
||||
SetLabel();
|
||||
} else if (sCommand == "labelfont") {
|
||||
lParams = llDeleteSubList(lParams, 0, 0);
|
||||
string font = llDumpList2String(lParams, " ");
|
||||
integer iIndex = llListFindList(g_lFonts, [font]);
|
||||
if (iIndex != -1)
|
||||
{
|
||||
g_kFontTexture = (key)llList2String(g_lFonts, iIndex + 1);
|
||||
SetLabel();
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "font=" + (string)g_kFontTexture, "");
|
||||
}
|
||||
else FontMenu(kAv, iAuth);
|
||||
} else if (sCommand == "labelcolor") {
|
||||
string sColour= llDumpList2String(llDeleteSubList(lParams,0,0)," ");
|
||||
integer colourIndex=llListFindList(g_lColours,[sColour]);
|
||||
if (~colourIndex)
|
||||
{
|
||||
g_vColor=(vector)llList2String(g_lColours,colourIndex+1);
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript+"color="+(string)g_vColor, "");
|
||||
SetColor();
|
||||
}
|
||||
} else if (sCommand == "labelshow") {
|
||||
g_iShow = llList2Integer(lParams, 1);
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript+"show="+(string)g_iShow, "");
|
||||
SetLabel();
|
||||
} else if (sCommand == "labelscroll") {
|
||||
g_iScroll = llList2Integer(lParams, 1);
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript+"scroll="+(string)g_iScroll, "");
|
||||
SetLabel();
|
||||
}
|
||||
}
|
||||
else if ((iAuth >= COMMAND_SECOWNER && iAuth <= COMMAND_WEARER) && g_iAppLock)
|
||||
{
|
||||
string sCommand = llToLower(llList2String(llParseString2List(sStr, [" "], []), 0));
|
||||
if (sStr=="menu "+g_sSubMenu)
|
||||
{
|
||||
llMessageLinked(LINK_SET, iAuth, "menu "+g_sParentMenu, kAv);
|
||||
Notify(kAv,"Only owners can change the label!", FALSE);
|
||||
}
|
||||
else if (sCommand=="labeltext" || sCommand == "labelfont" || sCommand == "labelcolor" || sCommand == "labelshow")
|
||||
{
|
||||
Notify(kAv,"Only owners can change the label!", FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
default
|
||||
{
|
||||
state_entry() {
|
||||
//llSetMemoryLimit(65536); //this script needs to be profiled, and its memory limited
|
||||
g_sScript = "meshlabel_";
|
||||
g_kWearer = llGetOwner();
|
||||
Ureps = (float)1 / x;
|
||||
Vreps = (float)1 / y;
|
||||
LabelsCount();
|
||||
|
||||
if (g_iCharLimit <= 0) {
|
||||
llMessageLinked(LINK_SET, MENUNAME_REMOVE, g_sParentMenu + "|" + g_sSubMenu, "");
|
||||
llRemoveInventory(llGetScriptName());
|
||||
}
|
||||
// g_sLabelText = llList2String(llParseString2List(llKey2Name(llGetOwner()), [" "], []), 0);
|
||||
//SetLabel();
|
||||
//Debug("Starting");
|
||||
}
|
||||
|
||||
on_rez(integer iNum) {
|
||||
if (g_kWearer != llGetOwner()) {
|
||||
g_sLabelText = "";
|
||||
SetLabel();
|
||||
}
|
||||
llResetScript();
|
||||
}
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID)
|
||||
{
|
||||
if ( UserCommand(iNum, sStr, kID) ) {}
|
||||
else if (iNum == LM_SETTING_RESPONSE)
|
||||
{
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
integer i = llSubStringIndex(sToken, "_");
|
||||
if (llGetSubString(sToken, 0, i) == g_sScript)
|
||||
{
|
||||
sToken = llGetSubString(sToken, i + 1, -1);
|
||||
if (sToken == "text") g_sLabelText = sValue;
|
||||
else if (sToken == "font") g_kFontTexture = (key)sValue;
|
||||
else if (sToken == "color") g_vColor = (vector)sValue;
|
||||
else if (sToken == "show") g_iShow = (integer)sValue;
|
||||
else if (sToken == "scroll") g_iScroll = (integer)sValue;
|
||||
}
|
||||
else if (sToken == g_sAppLockToken) g_iAppLock = (integer)sValue;
|
||||
else if (sToken == "Global_CType") CTYPE = sValue;
|
||||
else if (sToken == "settings" && sValue == "sent") {
|
||||
SetColor();
|
||||
SetLabel();
|
||||
}
|
||||
}
|
||||
else if (iNum == MENUNAME_REQUEST && sStr == g_sParentMenu)
|
||||
{
|
||||
llMessageLinked(LINK_SET, MENUNAME_RESPONSE, g_sParentMenu + "|" + g_sSubMenu, "");
|
||||
}
|
||||
else if (iNum == DIALOG_RESPONSE)
|
||||
{
|
||||
if (kID==g_kDialogID)
|
||||
{
|
||||
//got a menu response meant for us. pull out values
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
if (sMessage == UPMENU) llMessageLinked(LINK_SET, iAuth, "menu " + g_sParentMenu, kAv);
|
||||
else if (sMessage == g_sTextMenu) TextMenu(kAv, iAuth);
|
||||
else if (sMessage == g_sColorMenu) ColorMenu(kAv, iAuth);
|
||||
else if (sMessage == g_sFontMenu) FontMenu(kAv, iAuth);
|
||||
else if (sMessage == "☐ Show")
|
||||
{
|
||||
UserCommand(iAuth, "labelshow 1", kAv);
|
||||
MainMenu(kAv, iAuth);
|
||||
}
|
||||
else if (sMessage == "☒ Show")
|
||||
{
|
||||
UserCommand(iAuth, "labelshow 0", kAv);
|
||||
MainMenu(kAv, iAuth);
|
||||
}
|
||||
else if (sMessage == "☐ Scroll")
|
||||
{
|
||||
UserCommand(iAuth, "labelscroll 1", kAv);
|
||||
MainMenu(kAv, iAuth);
|
||||
}
|
||||
else if (sMessage == "☒ Scroll")
|
||||
{
|
||||
UserCommand(iAuth, "labelscroll 0", kAv);
|
||||
MainMenu(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
else if (kID == g_kColorID)
|
||||
{
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
if (sMessage == UPMENU) MainMenu(kAv, iAuth);
|
||||
else
|
||||
{
|
||||
UserCommand(iAuth, "labelcolor "+sMessage, kAv);
|
||||
ColorMenu(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
else if (kID == g_kFontID)
|
||||
{
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
if (sMessage == UPMENU) MainMenu(kAv, iAuth);
|
||||
else
|
||||
{
|
||||
UserCommand(iAuth, "labelfont " + sMessage, kAv);
|
||||
FontMenu(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
else if (kID == g_kTBoxID) // TextBox response, extract values
|
||||
{
|
||||
list lMenuParams = llParseStringKeepNulls(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
if (sMessage != "") UserCommand(iAuth, "labeltext " + sMessage, kAv);
|
||||
llMessageLinked(LINK_ROOT, iAuth, "menu " + g_sSubMenu, kAv);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
timer()
|
||||
{
|
||||
string sText = llGetSubString(g_sScrollText, g_iSctollPos, -1);
|
||||
integer iCharPosition;
|
||||
for(iCharPosition=0; iCharPosition < g_iCharLimit; iCharPosition++)
|
||||
{
|
||||
RenderString(iCharPosition, llGetSubString(sText, iCharPosition, iCharPosition));
|
||||
}
|
||||
g_iSctollPos++;
|
||||
if(g_iSctollPos > llStringLength(g_sScrollText)) g_iSctollPos = 0 ;
|
||||
}
|
||||
|
||||
changed(integer change) {
|
||||
if(change & CHANGED_LINK) // if links changed
|
||||
{
|
||||
if (LabelsCount()==TRUE) SetLabel();
|
||||
}
|
||||
/*
|
||||
if (iChange & CHANGED_REGION) {
|
||||
if (g_iProfiled) {
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
@@ -1,420 +0,0 @@
|
||||
// Template for creating a OpenCollar Plugin
|
||||
// API Version: 3.9
|
||||
|
||||
// Licensed under the GPLv2, with the additional requirement that these scripts
|
||||
// remain "full perms" in Second Life. See "OpenCollar License" for details.
|
||||
|
||||
// Please agressively remove any unneeded code sections to save memory and sim time
|
||||
|
||||
|
||||
string SUBMENU_BUTTON = "Plugin"; // Name of the submenu
|
||||
string COLLAR_PARENT_MENU = "Apps"; // name of the menu, where want to plug it in
|
||||
string PLUGIN_CHAT_COMMAND = "plugin"; // every menu should have a chat command, so the user can easily access it by type for instance *plugin
|
||||
integer IN_DEBUG_MODE = FALSE; // set to TRUE to enable Debug messages
|
||||
|
||||
key g_kMenuID; // menu handler
|
||||
key g_kWearer; // key of the current wearer to reset only on owner changes
|
||||
string g_sScript; // part of script name used for settings
|
||||
|
||||
string CTYPE = "collar"; // designer can set in notecard to appropriate word for their item
|
||||
|
||||
// any local, not changing buttons which will be used in this plugin, leave empty or add buttons as you like:
|
||||
list PLUGIN_BUTTONS = ["Command 1", "Command 2", "AuthCommand"];
|
||||
|
||||
list g_lButtons;
|
||||
|
||||
// OpenCollar MESSAGE MAP
|
||||
|
||||
// messages for authenticating users
|
||||
// integer COMMAND_NOAUTH = 0; // for reference, but should usually not be in use inside plugins
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
integer COMMAND_RLV_RELAY = 507;
|
||||
integer COMMAND_SAFEWORD = 510;
|
||||
integer COMMAND_RELAY_SAFEWORD = 511;
|
||||
integer COMMAND_BLACKLIST = 520;
|
||||
// added for timer so when the sub is locked out they can use postions
|
||||
integer COMMAND_WEARERLOCKEDOUT = 521;
|
||||
|
||||
integer ATTACHMENT_REQUEST = 600;
|
||||
integer ATTACHMENT_RESPONSE = 601;
|
||||
integer ATTACHMENT_FORWARD = 610;
|
||||
|
||||
integer WEARERLOCKOUT = 620; // turns on and off wearer lockout
|
||||
|
||||
// integer SEND_IM = 1000; deprecated. each script should send its own IMs now.
|
||||
// This is to reduce even the tiny bit of lag caused by having IM slave scripts
|
||||
integer POPUP_HELP = 1001;
|
||||
|
||||
// messages for storing and retrieving values from settings store
|
||||
integer LM_SETTING_SAVE = 2000; // scripts send messages on this channel to have settings saved to settings store
|
||||
// str must be in form of "token=value"
|
||||
integer LM_SETTING_REQUEST = 2001; // when startup, scripts send requests for settings on this channel
|
||||
integer LM_SETTING_RESPONSE = 2002; // the settings script will send responses on this channel
|
||||
integer LM_SETTING_DELETE = 2003; // delete token from settings store
|
||||
integer LM_SETTING_EMPTY = 2004; // sent by settings script when a token has no value in the settings store
|
||||
integer LM_SETTING_REQUEST_NOCACHE = 2005;
|
||||
|
||||
// messages for creating OC menu structure
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
integer MENUNAME_REMOVE = 3003;
|
||||
|
||||
// messages for RLV commands
|
||||
integer RLV_CMD = 6000;
|
||||
integer RLV_REFRESH = 6001; // RLV plugins should reinstate their restrictions upon receiving this message.
|
||||
integer RLV_CLEAR = 6002; // RLV plugins should clear their restriction lists upon receiving this message.
|
||||
integer RLV_VERSION = 6003; // RLV Plugins can recieve the used rl viewer version upon receiving this message..
|
||||
integer RLV_OFF = 6100; // send to inform plugins that RLV is disabled now, no message or key needed
|
||||
integer RLV_ON = 6101; // send to inform plugins that RLV is enabled now, no message or key needed
|
||||
integer RLV_QUERY = 6102; //query from a script asking if RLV is currently functioning
|
||||
integer RLV_RESPONSE = 6103; //reply to RLV_QUERY, with "ON" or "OFF" as the message
|
||||
|
||||
// messages for poses and couple anims
|
||||
integer ANIM_START = 7000; // send this with the name of an anim in the string part of the message to play the anim
|
||||
integer ANIM_STOP = 7001; // send this with the name of an anim in the string part of the message to stop the anim
|
||||
integer CPLANIM_PERMREQUEST = 7002; // id should be av's key, str should be cmd name "hug", "kiss", etc
|
||||
integer CPLANIM_PERMRESPONSE = 7003; // str should be "1" for got perms or "0" for not. id should be av's key
|
||||
integer CPLANIM_START = 7004; // str should be valid anim name. id should be av
|
||||
integer CPLANIM_STOP = 7005; // str should be valid anim name. id should be av
|
||||
|
||||
// messages to the dialog helper
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
integer FIND_AGENT = -9005; // to look for agent(s) in region with a (optional) search string
|
||||
key REQUEST_KEY;
|
||||
|
||||
integer TIMER_EVENT = -10000; // str = "start" or "end". For start, either "online" or "realtime".
|
||||
|
||||
integer UPDATE = 10001; // for child prim scripts (currently none in 3.8, thanks to LSL new functions)
|
||||
|
||||
// For other things that want to manage showing/hiding keys.
|
||||
integer KEY_VISIBLE = -10100;
|
||||
integer KEY_INVISIBLE = -10100;
|
||||
|
||||
integer COMMAND_PARTICLE = 20000;
|
||||
integer COMMAND_LEASH_SENSOR = 20001;
|
||||
|
||||
//chain systems
|
||||
integer LOCKMEISTER = -8888;
|
||||
integer LOCKGUARD = -9119;
|
||||
|
||||
//rlv relay chan
|
||||
integer RLV_RELAY_CHANNEL = -1812221819;
|
||||
|
||||
// menu option to go one step back in menustructure
|
||||
string UPMENU = "^"; // when your menu hears this, give the parent menu
|
||||
|
||||
|
||||
|
||||
//===============================================================================
|
||||
//= parameters : string sMsg message string received
|
||||
//=
|
||||
//= return : none
|
||||
//=
|
||||
//= description : output debug messages
|
||||
//=
|
||||
//===============================================================================
|
||||
|
||||
|
||||
Debug(string sMsg) {
|
||||
if (!IN_DEBUG_MODE) {
|
||||
return;
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + " [DEBUG]: " + sMsg);
|
||||
}
|
||||
|
||||
//===============================================================================
|
||||
//= parameters : key kID key of the avatar that receives the message
|
||||
//= string sMsg message to send
|
||||
//= integer iAlsoNotifyWearer if TRUE, a copy of the message is sent to the wearer
|
||||
//=
|
||||
//= return : none
|
||||
//=
|
||||
//= description : notify targeted id and maybe the wearer
|
||||
//=
|
||||
//===============================================================================
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer) {
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else {
|
||||
if (llGetAgentSize(kID)) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
//===============================================================================
|
||||
//= parameters : key kRCPT recipient of the dialog
|
||||
//= string sPrompt dialog prompt
|
||||
//= list lChoices true dialog buttons
|
||||
//= list lUtilityButtons utility buttons (kept on every iPage)
|
||||
//= integer iPage Page to be display
|
||||
//=
|
||||
//= return : key handler of the dialog
|
||||
//=
|
||||
//= description : displays a dialog to the given recipient
|
||||
//=
|
||||
//===============================================================================
|
||||
|
||||
key Dialog(key kRCPT, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth)
|
||||
{
|
||||
key kID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kRCPT + "|" + sPrompt + "|" + (string)iPage + "|"
|
||||
+ llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kID);
|
||||
return kID;
|
||||
}
|
||||
|
||||
//===============================================================================
|
||||
//= parameters : string keyID key of person requesting the menu
|
||||
//=
|
||||
//= return : none
|
||||
//=
|
||||
//= description : build menu and display to user
|
||||
//=
|
||||
//===============================================================================
|
||||
|
||||
DoMenu(key keyID, integer iAuth) {
|
||||
string sPrompt = "Pick an option.\n";
|
||||
list lMyButtons = PLUGIN_BUTTONS + g_lButtons;
|
||||
|
||||
//fill in your button list and additional prompt here
|
||||
lMyButtons = llListSort(lMyButtons, 1, TRUE); // resort menu buttons alphabetical
|
||||
|
||||
// and dispay the menu
|
||||
g_kMenuID = Dialog(keyID, sPrompt, lMyButtons, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
//===============================================================================
|
||||
//= parameters : auth: integer (avatar auth level)
|
||||
//= type: string; user-defined label; what to do with result
|
||||
//= name: search string (optional) full or partial name to seek
|
||||
//= user: key; Requesting Agent (menu user / chat commander)
|
||||
//=
|
||||
//= return : none
|
||||
//=
|
||||
//= description : request agent key, searching in region, with name as criteria
|
||||
//=
|
||||
//===============================================================================
|
||||
FetchAvi(integer auth, string type, string name, key user)
|
||||
{
|
||||
if (name == "") name = " "; // getavi requires a value here - blank will search with no string
|
||||
string out = llDumpList2String(["getavi_", g_sScript, user, auth, type, name], "|");
|
||||
// sometimes, you want to exclude possible finds, such as if they exist in a list you are adding to
|
||||
// do not search for these names (can be partial string)
|
||||
list exclude = ["source list"];
|
||||
if (llGetListLength(exclude))
|
||||
out += "|" + llDumpList2String(exclude, ",");
|
||||
llMessageLinked(LINK_THIS, FIND_AGENT, out, REQUEST_KEY = llGenerateKey());
|
||||
}
|
||||
|
||||
//===============================================================================
|
||||
//= parameters : iNum: integer parameter of link message (avatar auth level)
|
||||
//= sStr: string parameter of link message (command name)
|
||||
//= kID: key parameter of link message (user key, usually)
|
||||
//=
|
||||
//= return : TRUE if the command was handled, FALSE otherwise
|
||||
//=
|
||||
//= description : handles user chat commands (also used as backend for menus)
|
||||
//=
|
||||
//===============================================================================
|
||||
|
||||
integer UserCommand(integer iNum, string sStr, key kID) {
|
||||
if (!(iNum >= COMMAND_OWNER && iNum <= COMMAND_WEARER)) {
|
||||
return FALSE;
|
||||
}
|
||||
// a validated command from a owner, secowner, groupmember or the wearer has been received
|
||||
// can also be used to listen to chat commands
|
||||
list lParams = llParseString2List(sStr, [" "], []);
|
||||
string sCommand = llToLower(llList2String(lParams, 0));
|
||||
string sValue = llToLower(llList2String(lParams, 1));
|
||||
// So commands can accept a value
|
||||
if (sStr == "reset") {
|
||||
// it is a request for a reset
|
||||
if (iNum == COMMAND_WEARER || iNum == COMMAND_OWNER) {
|
||||
//only owner and wearer may reset
|
||||
llResetScript();
|
||||
}
|
||||
}
|
||||
else if (sStr == PLUGIN_CHAT_COMMAND || sStr == "menu " + SUBMENU_BUTTON) {
|
||||
// an authorized user requested the plugin menu by typing the menus chat command
|
||||
DoMenu(kID, iNum);
|
||||
}
|
||||
else if (sStr == "yourcommandhere") {
|
||||
// example for a command which can be invoked by chat and/or menu, replace yourcommandhere by what you need
|
||||
Debug("Do some fancy stuff to impress the user");
|
||||
|
||||
// maybe save a value to the setting store:
|
||||
llMessageLinked(LINK_THIS, LM_SETTING_SAVE, g_sScript + "token=value", "");
|
||||
|
||||
// or delete a toke from the setting store:
|
||||
llMessageLinked(LINK_THIS, LM_SETTING_DELETE, g_sScript + "token", "");
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
default {
|
||||
|
||||
state_entry()
|
||||
{
|
||||
g_sScript = llStringTrim(llList2String(llParseString2List(llGetScriptName(), ["-"], []), 1), STRING_TRIM) + "_";
|
||||
// store key of wearer
|
||||
g_kWearer = llGetOwner();
|
||||
// sleep a second to allow all scripts to be initialized
|
||||
llSleep(1);
|
||||
// send request to main menu and ask other menus if they want to register with us
|
||||
//llMessageLinked(LINK_THIS, MENUNAME_REQUEST, SUBMENU_BUTTON, "");
|
||||
//llMessageLinked(LINK_THIS, MENUNAME_RESPONSE, COLLAR_PARENT_MENU + "|" + SUBMENU_BUTTON, "");
|
||||
}
|
||||
|
||||
// Reset the script if wearer changes. By only reseting on owner change we can keep most of our
|
||||
// configuration in the script itself as global variables, so that we don't loose anything in case
|
||||
// the settings store isn't available, and also keep settings that were not sent to that store
|
||||
// in the first place.
|
||||
// Cleo: As per Nan this should be a reset on every rez, this has to be handled as needed, but be prepared that the user can reset your script anytime using the OC menus
|
||||
on_rez(integer iParam) {
|
||||
if (llGetOwner()!=g_kWearer) {
|
||||
// Reset if wearer changed
|
||||
llResetScript();
|
||||
}
|
||||
}
|
||||
|
||||
// listen for linked messages from OC scripts
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID) {
|
||||
if (iNum == MENUNAME_REQUEST && sStr == COLLAR_PARENT_MENU) {
|
||||
// our parent menu requested to receive buttons, so send ours
|
||||
llMessageLinked(LINK_THIS, MENUNAME_RESPONSE, COLLAR_PARENT_MENU + "|" + SUBMENU_BUTTON, "");
|
||||
g_lButtons = [] ;
|
||||
llMessageLinked(LINK_THIS, MENUNAME_REQUEST, SUBMENU_BUTTON, "");
|
||||
}
|
||||
else if (iNum == MENUNAME_RESPONSE) {
|
||||
// a button is send to be added to a menu
|
||||
list lParts = llParseString2List(sStr, ["|"], []);
|
||||
if (llList2String(lParts, 0) == SUBMENU_BUTTON) {
|
||||
// someone wants to stick something in our menu
|
||||
string button = llList2String(lParts, 1);
|
||||
if (llListFindList(g_lButtons, [button]) == -1) {
|
||||
// if the button isnt in our menu yet, than we add it
|
||||
g_lButtons = llListSort(g_lButtons + [button], 1, TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (iNum == LM_SETTING_RESPONSE)
|
||||
{
|
||||
// response from setting store have been received
|
||||
// pares the answer
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
// and check if any values for use are received
|
||||
// replace "value1" by your own token
|
||||
integer i = llSubStringIndex(sToken, "_");
|
||||
if (llGetSubString(sToken, 0, i) == g_sScript)
|
||||
{
|
||||
sToken = llGetSubString(sToken, i + 1, -1);
|
||||
if (sToken == "value1" )
|
||||
{
|
||||
// work with the received values
|
||||
}
|
||||
// replace "value2" by your own token, but if possible try to store everything in one token
|
||||
// to reduce the load on the setting store (especially if it is implemented as a webservice... )
|
||||
else if (sToken == "value2")
|
||||
{
|
||||
// work with the received values
|
||||
}
|
||||
}
|
||||
// or check for specific values from the collar like "auth_owner" (for owners) "auth_secowners" (for secondary owners) etc
|
||||
else if (sToken == "auth_owner")
|
||||
{
|
||||
// work with the received values, in this case pare the vlaue into a strided list with the owners
|
||||
list lOwners = llParseString2List(sValue, [","], []);
|
||||
}
|
||||
else if (sToken == "Global_CType") CTYPE = sValue;
|
||||
}
|
||||
else if (UserCommand(iNum, sStr, kID)) {
|
||||
// do nothing more if TRUE
|
||||
}
|
||||
else if (iNum == COMMAND_EVERYONE) {
|
||||
// you might want to react on unauthorized users or such, see message map on the top of the script, please remove if not needed
|
||||
Debug("Go away and get your own sub, you have no right on this " + CTYPE + "");
|
||||
}
|
||||
else if (iNum == COMMAND_SAFEWORD) {
|
||||
// Safeword has been received, release any restricitions that should be released
|
||||
Debug("Safeword received, releasing the subs restricions as needed");
|
||||
}
|
||||
else if (iNum == DIALOG_RESPONSE) {
|
||||
// answer from menu system
|
||||
// careful, don't use the variable kID to identify the user, it is the UUID we generated when calling the dialog
|
||||
// you have to parse the answer from the dialog system and use the parsed variable kAv
|
||||
if (kID == g_kMenuID) {
|
||||
//got a menu response meant for us, extract the values
|
||||
list lMenuParams = llParseStringKeepNulls(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0); // avatar using the menu
|
||||
string sMessage = llList2String(lMenuParams, 1); // button label
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2); // menu page
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3); // auth level of avatar
|
||||
// request to switch to parent menu
|
||||
if (sMessage == UPMENU) {
|
||||
//give av the parent menu
|
||||
llMessageLinked(LINK_THIS, iAuth, "menu "+COLLAR_PARENT_MENU, kAv);
|
||||
}
|
||||
else if (~llListFindList(PLUGIN_BUTTONS, [sMessage])) {
|
||||
//we got a response for something we handle locally
|
||||
if (sMessage == "Command 1") {
|
||||
// do What has to be Done
|
||||
Debug("Command 1");
|
||||
// and restart the menu if wanted/needed
|
||||
DoMenu(kAv, iAuth);
|
||||
}
|
||||
else if (sMessage == "Command 2") {
|
||||
// do What has to be Done
|
||||
Debug("Command 2");
|
||||
// and restart the menu if wanted/needed
|
||||
DoMenu(kAv, iAuth);
|
||||
}
|
||||
else if (sMessage == "AuthCommand") {
|
||||
// we assume the action assoctiated to the button also
|
||||
// has a chat command trigger, which we call here,
|
||||
// thus finally handling menu and chat the same way
|
||||
UserCommand(iAuth, "yourcommandhere", kAv);
|
||||
// then we show the menu again
|
||||
DoMenu(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
else if (~llListFindList(g_lButtons, [sMessage])) {
|
||||
//we got a button which another plugin put into into our menu
|
||||
llMessageLinked(LINK_THIS, iAuth, "menu "+ sMessage, kAv);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (iNum == DIALOG_TIMEOUT) {
|
||||
// timeout from menu system, you do not have to react on this, but you can
|
||||
if (kID == g_kMenuID) {
|
||||
// if you react, make sure the timeout is from your menu by checking the g_kMenuID variable
|
||||
Debug("The user was to slow or lazy, we got a timeout!");
|
||||
}
|
||||
}
|
||||
else if (iNum == FIND_AGENT)
|
||||
{
|
||||
if (kID != REQUEST_KEY) return; // if we didn't request it, we won't know what to do with it
|
||||
list params = llParseString2List(sStr, ["|"], []);
|
||||
if (llList2String(params, 0) != g_sScript) return; // not sent to us
|
||||
key kUser = (key)llList2String(params, 2); // requesting user key, for Notify or more menus
|
||||
integer iAuth = (integer)llList2String(params, 3); // auth level of user
|
||||
string sType = llList2String(params, 4); // we sent this string as an identifier for what to do with the result
|
||||
key kNew = (key)llList2String(params, 5); // this is the key for whatever agent we picked by name
|
||||
if (sType == "our type identifier")
|
||||
{ // examples
|
||||
// g_lMyList += [kNew];
|
||||
// Notify(kUser, "I think " + llKey2Name(kNew) + " likes you", FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
// OpenCollar - remote template
|
||||
// Licensed under the GPLv2, with the additional requirement that these scripts remain "full perms" in Second Life. See "OpenCollar License" for details.
|
||||
|
||||
key kToucher;
|
||||
|
||||
Debug(string in)
|
||||
{
|
||||
//llOwnerSay(llGetScriptName() + ": " + in);
|
||||
}
|
||||
|
||||
integer GetOwnerChannel(key kOwner, integer iOffset)
|
||||
{
|
||||
integer iChan = (integer)("0x"+llGetSubString((string)kOwner,2,7)) + iOffset;
|
||||
if (iChan>0)
|
||||
{
|
||||
iChan=iChan*(-1);
|
||||
}
|
||||
if (iChan > -10000)
|
||||
{
|
||||
iChan -= 30000;
|
||||
}
|
||||
return iChan;
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,924 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - rlvfolders //
|
||||
// version 3.989.1 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
string g_sParentMenu = "Un/Dress";
|
||||
|
||||
list g_lChildren = ["Browse #RLV", "#RLV History"];
|
||||
|
||||
//MESSAGE MAP
|
||||
//integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
|
||||
//integer SEND_IM = 1000; deprecated. each script should send its own IMs now. This is to reduce even the tiny bt of lag caused by having IM slave scripts
|
||||
integer POPUP_HELP = 1001;
|
||||
|
||||
integer LM_SETTING_SAVE = 2000;//scripts send messages on this channel to have settings saved to httpdb
|
||||
//sStr must be in form of "token=value"
|
||||
//integer LM_SETTING_REQUEST = 2001;//when startup, scripts send requests for settings on this channel
|
||||
integer LM_SETTING_RESPONSE = 2002;//the settings script will send responses on this channel
|
||||
integer LM_SETTING_DELETE = 2003;//delete token from DB
|
||||
//integer LM_SETTING_EMPTY = 2004;//sent by httpdb script when a token has no value in the db
|
||||
|
||||
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
integer MENUNAME_REMOVE = 3003;
|
||||
|
||||
integer RLV_CMD = 6000;
|
||||
integer RLV_REFRESH = 6001;//RLV plugins should reinstate their restrictions upon receiving this message.
|
||||
integer RLV_CLEAR = 6002;//RLV plugins should clear their restriction lists upon receiving this message.
|
||||
integer RLV_VERSION = 6003; //RLV Plugins can recieve the used rl viewer version upon receiving this message..
|
||||
integer RLVA_VERSION = 6004; //RLV Plugins can recieve the used rl viewer version upon receiving this message..
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
string PARENT = "⏎";
|
||||
string ACTIONS_CURRENT = "Actions";
|
||||
string ROOT_ACTIONS = "Global Actions";
|
||||
|
||||
string UPMENU = "BACK";
|
||||
//string MORE = ">";
|
||||
|
||||
// Folder actions
|
||||
//string ALL = "*All*";
|
||||
//string SELECT_CURRENT = "*This*";
|
||||
string REPLACE_ALL = "Replace all";
|
||||
string ADD_ALL = "Add all";
|
||||
string DETACH_ALL = "Detach all";
|
||||
string REPLACE = "Replace this";
|
||||
string ADD = "Add this";
|
||||
string DETACH = "Detach this";
|
||||
string LOCK_ATTACH_ALL = "Lock att. all";
|
||||
string LOCK_DETACH_ALL = "Lock det. all";
|
||||
string LOCK_ATTACH = "Lock att. this";
|
||||
string LOCK_DETACH = "Lock det. this";
|
||||
|
||||
integer g_iUnsharedLocks = 0; // 2 bits bitfield: first (strong) one for unsharedwear, second (weak) one for unsharedunwear
|
||||
list g_lFolderLocks; // strided list: folder path, lock type (4 bits field)
|
||||
|
||||
integer g_iTimeOut = 60;
|
||||
|
||||
integer g_iFolderRLV = 78467;
|
||||
integer g_iRLVaOn = FALSE; //Assume we don't have RLVa, until we hear that we do
|
||||
|
||||
key g_kBrowseID;
|
||||
key g_kActionsID;
|
||||
key g_kRootActionsID;
|
||||
key g_kHistoryMenuID;
|
||||
key g_kMultipleFoldersOnSearchMenuID;
|
||||
integer g_iPage = 0;//Having a global is nice, if you redisplay the menu after an action on a folder.
|
||||
|
||||
integer g_iListener;//Nan:do we still need this? -- SA: of course. It's where the viewer talks.
|
||||
|
||||
// Asynchronous menu request. Alas still needed since some menus are triggered after an answer from the viewer.
|
||||
key g_kAsyncMenuUser;
|
||||
integer g_iAsyncMenuAuth;
|
||||
integer g_iAsyncMenuRequested = FALSE;
|
||||
|
||||
string sPrompt;//Nan: why is this global?
|
||||
string g_sFolderType; //what to do with those folders
|
||||
string g_sCurrentFolder;
|
||||
|
||||
list g_lOutfit; //saved folder list
|
||||
list g_lToCheck; //stack of folders to check, used for subfolder tree search
|
||||
|
||||
list g_lSearchList; //list of folders to search
|
||||
|
||||
integer g_iLastFolderState;
|
||||
|
||||
key g_kWearer;
|
||||
string g_sScript;
|
||||
|
||||
list g_lHistory;
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
key Dialog(key kRCPT, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth)
|
||||
{
|
||||
key kID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kRCPT + "|" + sPrompt + "|" + (string)iPage + "|" + llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kID);
|
||||
//Debug("Made menu.");
|
||||
return kID;
|
||||
}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer)
|
||||
{
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else
|
||||
{
|
||||
if (llGetAgentSize(kID)!=ZERO_VECTOR) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
addToHistory(string folder)
|
||||
{
|
||||
if (!(~llListFindList(g_lHistory, [folder]))) g_lHistory+=[folder];
|
||||
g_lHistory = llList2List(g_lHistory, -10, -1);
|
||||
}
|
||||
|
||||
ParentFolder() {
|
||||
list lFolders = llParseString2List(g_sCurrentFolder,["/"],[]);
|
||||
g_iPage = 0; // changing the folder also means going back to first page
|
||||
if (llGetListLength(lFolders)>1) {
|
||||
g_sCurrentFolder=llList2String(lFolders,0);
|
||||
integer i;
|
||||
for (i=1;i<llGetListLength(lFolders)-1;i++) g_sCurrentFolder+="/"+llList2String(lFolders,i);
|
||||
}
|
||||
else g_sCurrentFolder="";
|
||||
}
|
||||
|
||||
QueryFolders(string sType)
|
||||
{
|
||||
g_sFolderType = sType;
|
||||
g_iFolderRLV = 9999 + llRound(llFrand(9999999.0));
|
||||
g_iListener = llListen(g_iFolderRLV, "", llGetOwner(), "");
|
||||
llSetTimerEvent(g_iTimeOut);
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "getinvworn:"+g_sCurrentFolder+"=" + (string)g_iFolderRLV, NULL_KEY);
|
||||
}
|
||||
|
||||
string lockFolderButton(integer iLockState, integer iLockNum, integer iAuth)
|
||||
{
|
||||
string sOut;
|
||||
if ((iLockState >> (4 + iLockNum)) & 0x1) sOut = "☔";
|
||||
else if ((iLockState >> iLockNum) & 0x1) sOut = "✔";
|
||||
else sOut = "✘";
|
||||
if (iLockNum == 0) sOut += LOCK_ATTACH;
|
||||
else if (iLockNum == 1) sOut += LOCK_DETACH;
|
||||
else if (iLockNum == 2) sOut += LOCK_ATTACH_ALL;
|
||||
else if (iLockNum == 3) sOut += LOCK_DETACH_ALL;
|
||||
if (iAuth > COMMAND_GROUP) sOut = "("+sOut+")";
|
||||
return sOut;
|
||||
}
|
||||
|
||||
string lockUnsharedButton(integer iLockNum, integer iAuth)
|
||||
{
|
||||
string sOut;
|
||||
if ((g_iUnsharedLocks >> iLockNum) & 0x1) sOut = "✔";
|
||||
else sOut = "✘";
|
||||
if (iLockNum == 1) sOut += "Lk Unsh Wear";
|
||||
else if (iLockNum == 0) sOut += "Lk Unsh Remove";
|
||||
if (iAuth > COMMAND_GROUP) sOut = "("+sOut+")";
|
||||
return sOut;
|
||||
}
|
||||
|
||||
HistoryMenu(key kAv, integer iAuth)
|
||||
{
|
||||
g_kHistoryMenuID = Dialog(kAv, "\nRecently worn #RLV folders:", g_lHistory, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
|
||||
RootActionsMenu(key kAv, integer iAuth)
|
||||
{
|
||||
list lActions = [lockUnsharedButton(0, iAuth), lockUnsharedButton(1, iAuth), "Save", "Restore"];
|
||||
string sPrompt = "\nwww.opencollar.at/folders\n\nYou are at the #RLV shared root.\n\nFrom here, you can restrict wearing or removing not shared items, you can also save the list of worn shared folders or make the currently saved list be worn again.\n\nWhat do you want to do?";
|
||||
g_kRootActionsID = Dialog(kAv, sPrompt, lActions, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
|
||||
FolderActionsMenu(integer iState, key kAv, integer iAuth)
|
||||
{
|
||||
integer iStateThis = iState / 10;
|
||||
integer iStateSub = iState % 10;
|
||||
list lActions;
|
||||
if (g_sFolderType == "history") lActions += "Browse";
|
||||
g_sFolderType += "_actions";
|
||||
if (!iStateSub) g_sFolderType += "_sub";
|
||||
|
||||
if (g_sCurrentFolder != "")
|
||||
{
|
||||
integer iIndex = llListFindList(g_lFolderLocks, [g_sCurrentFolder]);
|
||||
integer iLock;
|
||||
if (~iIndex)
|
||||
{
|
||||
iLock = llList2Integer(g_lFolderLocks, iIndex+1);
|
||||
}
|
||||
|
||||
if ( iStateThis == 1 || iStateThis == 2) // there are items that can be added in current folder
|
||||
lActions += [REPLACE, ADD, lockFolderButton(iLock, 0, iAuth)];
|
||||
if ( iStateThis == 2 || iStateThis == 3) // there are items that can be removed
|
||||
lActions += [DETACH, lockFolderButton(iLock, 1, iAuth)];
|
||||
if ( iStateSub == 1 || iStateSub == 2) // there are items that can be added in descendant folder
|
||||
lActions += [REPLACE_ALL, ADD_ALL, lockFolderButton(iLock, 2, iAuth)];
|
||||
if ( iStateSub == 2 || iStateSub == 3) // there are items that can be removed from descendant folders
|
||||
lActions += [DETACH_ALL, lockFolderButton(iLock, 3, iAuth)];
|
||||
}
|
||||
string sPrompt = "\nwww.opencollar.at/folders\n\nCurrent folder is ";
|
||||
if (g_sCurrentFolder == "") sPrompt += "root";
|
||||
else sPrompt += g_sCurrentFolder;
|
||||
sPrompt += ".\n";
|
||||
sPrompt += "\nWhat do you want to do?";
|
||||
|
||||
g_kActionsID = Dialog(kAv, sPrompt, lActions, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
string folderIcon(integer iState)
|
||||
{
|
||||
string sOut = "";
|
||||
integer iStateThis = iState / 10;
|
||||
integer iStateSub = iState % 10;
|
||||
if (iStateThis==0) sOut += "⬚"; //▪";
|
||||
else if (iStateThis==1) sOut += "◻";
|
||||
else if (iStateThis==2) sOut += "◩";
|
||||
else if (iStateThis==3) sOut += "◼";
|
||||
else sOut += " ";
|
||||
// sOut += "/";
|
||||
if (iStateSub==0) sOut += "⬚"; //▪";
|
||||
else if (iStateSub==1) sOut += "◻";
|
||||
else if (iStateSub==2) sOut += "◩";
|
||||
else if (iStateSub==3) sOut += "◼";
|
||||
else sOut += " ";
|
||||
return sOut;
|
||||
}
|
||||
|
||||
integer StateFromButton(string sButton)
|
||||
{
|
||||
string sIconThis = llGetSubString(sButton, 0, 0);
|
||||
string sIconSub = llGetSubString(sButton, 1, 1);
|
||||
integer iState;
|
||||
if (sIconThis=="◻") iState = 1;
|
||||
else if (sIconThis=="◩") iState = 2;
|
||||
else if (sIconThis=="◼") iState = 3;
|
||||
iState *= 10;
|
||||
if (sIconSub=="◻") iState +=1;
|
||||
else if (sIconSub=="◩") iState +=2;
|
||||
else if (sIconSub=="◼") iState += 3;
|
||||
return iState;
|
||||
}
|
||||
|
||||
string FolderFromButton(string sButton)
|
||||
{
|
||||
return llToLower(llGetSubString(sButton, 2, -1));
|
||||
}
|
||||
|
||||
updateFolderLocks(string sFolder, integer iAdd, integer iRem)
|
||||
{ // adds and removes locks for sFolder, which implies saving to central settings and triggering a RLV command (dolockFolder)
|
||||
integer iLock;
|
||||
integer iIndex = llListFindList(g_lFolderLocks, [sFolder]);
|
||||
if (~iIndex)
|
||||
{
|
||||
iLock = ((llList2Integer(g_lFolderLocks, iIndex+1) | iAdd) & ~iRem);
|
||||
if (iLock)
|
||||
{
|
||||
g_lFolderLocks = llListReplaceList(g_lFolderLocks, [iLock], iIndex+1, iIndex+1);
|
||||
doLockFolder(iIndex);
|
||||
}
|
||||
else
|
||||
{
|
||||
g_lFolderLocks = llDeleteSubList(g_lFolderLocks, iIndex, iIndex+1);
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "attachthis_except:"+sFolder+"=y,detachthis_except:"+sFolder+"=y,attachallthis_except:"+sFolder+"=y,detachallthis_except:"+sFolder+"=y,"+ "attachthis:"+sFolder+"=y,detachthis:"+sFolder+"=y,attachallthis:"+sFolder+"=y,detachallthis:"+sFolder+"=y", NULL_KEY);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
iLock = iAdd & ~iRem;
|
||||
g_lFolderLocks += [sFolder, iLock];
|
||||
iIndex = llGetListLength(g_lFolderLocks)-2;
|
||||
doLockFolder(iIndex);
|
||||
}
|
||||
if ([] != g_lFolderLocks) llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "Locks=" + llDumpList2String(g_lFolderLocks, ","), "");
|
||||
else llMessageLinked(LINK_SET, LM_SETTING_DELETE, g_sScript + "Locks", "");
|
||||
}
|
||||
|
||||
doLockFolder(integer iIndex)
|
||||
{ // sends command to the viewer to update all locks concerning folder #iIndex
|
||||
string sFolder = llList2String(g_lFolderLocks, iIndex);
|
||||
integer iLock = llList2Integer(g_lFolderLocks, iIndex + 1);
|
||||
string sRlvCom = "attachthis:"+sFolder+"=";
|
||||
if ((iLock >> 0) & 1) sRlvCom += "n"; else sRlvCom += "y";
|
||||
sRlvCom += ",detachthis:"+sFolder+"=";
|
||||
if ((iLock >> 1) & 1) sRlvCom += "n"; else sRlvCom += "y";
|
||||
sRlvCom += ",attachallthis:"+sFolder+"=";
|
||||
if ((iLock >> 2) & 1) sRlvCom += "n"; else sRlvCom += "y";
|
||||
sRlvCom += ",detachallthis:"+sFolder+"=";
|
||||
if ((iLock >> 3) & 1) sRlvCom += "n"; else sRlvCom += "y";
|
||||
sRlvCom += ",attachthis_except:"+sFolder+"=";
|
||||
if ((iLock >> 4) & 1) sRlvCom += "n"; else sRlvCom += "y";
|
||||
sRlvCom += ",detachthis_except:"+sFolder+"=";
|
||||
if ((iLock >> 5) & 1) sRlvCom += "n"; else sRlvCom += "y";
|
||||
sRlvCom += ",attachallthis_except:"+sFolder+"=";
|
||||
if ((iLock >> 6) & 1) sRlvCom += "n"; else sRlvCom += "y";
|
||||
sRlvCom += ",detachallthis_except:"+sFolder+"=";
|
||||
if ((iLock >> 7) & 1) sRlvCom += "n"; else sRlvCom += "y";
|
||||
// llOwnerSay(sRlvCom);
|
||||
llMessageLinked(LINK_SET, RLV_CMD, sRlvCom, NULL_KEY);
|
||||
}
|
||||
|
||||
|
||||
updateUnsharedLocks(integer iAdd, integer iRem)
|
||||
{ // adds and removes locks for unshared items, which implies saving to central settings and triggering a RLV command (dolockUnshared)
|
||||
g_iUnsharedLocks = ((g_iUnsharedLocks | iAdd) & ~iRem);
|
||||
doLockUnshared();
|
||||
if (g_iUnsharedLocks) llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "Unshared=" + (string) g_iUnsharedLocks, "");
|
||||
else llMessageLinked(LINK_SET, LM_SETTING_DELETE, g_sScript + "Unshared", "");
|
||||
}
|
||||
|
||||
doLockUnshared()
|
||||
{ // sends command to the viewer to update all locks concerning unshared items
|
||||
string sRlvCom = "unsharedunwear=";
|
||||
if ((g_iUnsharedLocks >> 0) & 1) sRlvCom += "n"; else sRlvCom += "y";
|
||||
sRlvCom += ",unsharedwear=";
|
||||
if ((g_iUnsharedLocks >> 1) & 1) sRlvCom += "n"; else sRlvCom += "y";
|
||||
llMessageLinked(LINK_SET, RLV_CMD, sRlvCom, NULL_KEY);
|
||||
}
|
||||
|
||||
// Browsing menu, called asynchronously only (after querying folder state). Queries user and auth from globals.
|
||||
FolderBrowseMenu(string sStr)
|
||||
{
|
||||
g_iAsyncMenuRequested = FALSE;
|
||||
list lUtilityButtons = [UPMENU];
|
||||
string sPrompt = "\nwww.opencollar.at/folders\n\nCurrent folder is ";
|
||||
if (g_sCurrentFolder == "")
|
||||
{
|
||||
sPrompt += "root";
|
||||
}
|
||||
else sPrompt += g_sCurrentFolder;
|
||||
sPrompt += ".\n";
|
||||
list sData = llParseStringKeepNulls(sStr, [","], []);
|
||||
string sFirst = llList2String(sData, 0);
|
||||
sData = llListSort(llList2List(sData, 1, -1), 1, 1);
|
||||
integer i;
|
||||
list lItem;
|
||||
integer iWorn;
|
||||
list lFolders = [];
|
||||
|
||||
// now add the button for wearing all recursively when it makes sense
|
||||
if (g_sCurrentFolder!="") {
|
||||
lItem=llParseString2List(sFirst,["|"],[]);
|
||||
iWorn=llList2Integer(lItem,0);
|
||||
g_iLastFolderState=iWorn;
|
||||
if (iWorn / 10 == 1 ) sPrompt += "It has wearable items";
|
||||
else if (iWorn / 10 == 2 ) sPrompt += "It has wearable and removable items";
|
||||
else if (iWorn / 10 == 3 ) sPrompt += "It has removable items";
|
||||
else if (iWorn / 10 == 0 ) sPrompt += "It does not directly have any wearable or removable item";
|
||||
sPrompt += ".\n";
|
||||
lUtilityButtons += [ACTIONS_CURRENT];
|
||||
}
|
||||
else lUtilityButtons += [ROOT_ACTIONS];
|
||||
for (i=0;i<llGetListLength(sData);i++) {
|
||||
lItem=llParseString2List(llList2String(sData,i),["|"],[]);
|
||||
string sFolder = llList2String(lItem,0);
|
||||
iWorn=llList2Integer(lItem,1);
|
||||
if (iWorn != 0)
|
||||
{
|
||||
lFolders += [llGetSubString(folderIcon(iWorn)+sFolder, 0, 12)];
|
||||
}
|
||||
}
|
||||
sPrompt += "\n- Click "+ACTIONS_CURRENT+" to manage this folder content.\n- Click one of the subfolders to browse it.\n";
|
||||
if (g_sCurrentFolder!="") {sPrompt += "- Click "+PARENT+" to browse parent folder.\n"; lUtilityButtons += [PARENT];}
|
||||
sPrompt += "- Click "+UPMENU+" to go back to "+g_sParentMenu+".\n";
|
||||
g_kBrowseID = Dialog(g_kAsyncMenuUser, sPrompt, lFolders, lUtilityButtons, g_iPage, g_iAsyncMenuAuth);
|
||||
}
|
||||
|
||||
SaveFolder(string sStr)
|
||||
{
|
||||
list sData = llParseString2List(sStr, [","], []);
|
||||
integer i;
|
||||
list lItem;
|
||||
integer iWorn;
|
||||
if (g_sCurrentFolder!="") g_sCurrentFolder+="/";
|
||||
for (i=1;i<llGetListLength(sData);i++) {
|
||||
lItem=llParseString2List(llList2String(sData,i),["|"],[]);
|
||||
iWorn=llList2Integer(lItem,1);
|
||||
if (iWorn>=30) g_lOutfit+=[g_sCurrentFolder+llList2String(lItem,0)];
|
||||
else if (iWorn>=20) g_lOutfit=[g_sCurrentFolder+llList2String(lItem,0)]+g_lOutfit;
|
||||
if (iWorn%10>=2) g_lToCheck+=[g_sCurrentFolder+llList2String(lItem,0)];
|
||||
}
|
||||
if (llGetListLength(g_lToCheck)>0)
|
||||
{
|
||||
g_sCurrentFolder=llList2String(g_lToCheck,-1);
|
||||
g_lToCheck=llDeleteSubList(g_lToCheck,-1,-1);
|
||||
QueryFolders("save");
|
||||
}
|
||||
else
|
||||
{
|
||||
Notify(g_kAsyncMenuUser,"Current outfit has been saved.", TRUE);
|
||||
g_sCurrentFolder="";
|
||||
if (g_iAsyncMenuRequested)
|
||||
{
|
||||
g_iAsyncMenuRequested=FALSE;
|
||||
llMessageLinked(LINK_SET, g_iAsyncMenuAuth, "menu "+g_sParentMenu, g_kAsyncMenuUser);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
handleMultiSearch()
|
||||
{
|
||||
string sItem=llList2String(g_lSearchList,0);
|
||||
string pref1 = llGetSubString(sItem, 0, 0);
|
||||
string pref2 = llGetSubString(sItem, 0, 1);
|
||||
g_lSearchList=llDeleteSubList(g_lSearchList,0,0);
|
||||
|
||||
if (pref1 == "+" || pref1 == "&") g_sFolderType = "searchattach";
|
||||
else if (pref1 == "-") g_sFolderType = "searchdetach";
|
||||
else jump next; // operator was omitted, then repeat last action
|
||||
|
||||
if (pref2 == "++" || pref2 == "--" || pref2 == "&&")
|
||||
{
|
||||
g_sFolderType += "all";
|
||||
sItem = llToLower(llGetSubString(sItem,2,-1));
|
||||
}
|
||||
else sItem = llToLower(llGetSubString(sItem,1,-1));
|
||||
|
||||
if (pref1 == "&") g_sFolderType += "over";
|
||||
|
||||
@next;
|
||||
|
||||
searchSingle(sItem);
|
||||
}
|
||||
|
||||
string g_sFirstsearch;
|
||||
string g_sNextsearch;
|
||||
string g_sBuildpath;
|
||||
|
||||
searchSingle(string sItem)
|
||||
{
|
||||
//open listener
|
||||
g_iFolderRLV = 9999 + llRound(llFrand(9999999.0));
|
||||
g_iListener = llListen(g_iFolderRLV, "", llGetOwner(), "");
|
||||
//start timer
|
||||
g_sFirstsearch="";
|
||||
g_sNextsearch="";
|
||||
g_sBuildpath="";
|
||||
if(~llSubStringIndex(sItem,"/"))
|
||||
{
|
||||
//we're doing a two-level search.
|
||||
list tlist=llParseString2List(sItem,["/"],[]);
|
||||
g_sFirstsearch=llList2String(tlist,0);
|
||||
g_sNextsearch=llList2String(tlist,1);
|
||||
sItem=g_sFirstsearch;
|
||||
}
|
||||
llSetTimerEvent(g_iTimeOut);
|
||||
//llMessageLinked(LINK_SET, RLV_CMD, "findfolder:"+sItem+"="+(string)g_iFolderRLV, NULL_KEY);
|
||||
if ((g_iRLVaOn) && (g_sNextsearch == "")) { //use multiple folder matching from RLVa if we have it
|
||||
llOwnerSay("@findfolders:"+sItem+"="+(string)g_iFolderRLV); //Unstored one-shot commands are better performed locally to save the linked message.
|
||||
}
|
||||
else llOwnerSay("@findfolder:"+sItem+"="+(string)g_iFolderRLV); //Unstored one-shot commands are better performed locally to save the linked message.
|
||||
|
||||
}
|
||||
|
||||
// set a dialog to be requested after the next viewer answer
|
||||
SetAsyncMenu(key kAv, integer iAuth)
|
||||
{
|
||||
g_iAsyncMenuRequested = TRUE;
|
||||
g_kAsyncMenuUser = kAv;
|
||||
g_iAsyncMenuAuth = iAuth;
|
||||
}
|
||||
|
||||
integer UserCommand(integer iNum, string sStr, key kID)
|
||||
{
|
||||
if (iNum < COMMAND_OWNER || iNum > COMMAND_WEARER) return FALSE;
|
||||
list lParams = llParseString2List(sStr, [" "], []);
|
||||
string sCommand = llToLower(llList2String(lParams, 0));
|
||||
string sValue = llToLower(llList2String(lParams, 1));
|
||||
if (llToLower(sStr) == "#rlv" || sStr == "menu Browse #RLV")
|
||||
{
|
||||
g_sCurrentFolder = "";
|
||||
QueryFolders("browse");
|
||||
SetAsyncMenu(kID, iNum);
|
||||
}
|
||||
else if (llToLower(sStr) == "history" || sStr == "menu #RLV History")
|
||||
{
|
||||
HistoryMenu(kID, iNum);
|
||||
}
|
||||
else if (llToLower(llGetSubString(sStr, 0, 4)) == "#rlv ")
|
||||
{
|
||||
SetAsyncMenu(kID, iNum);
|
||||
g_sFolderType = "searchbrowse";
|
||||
string sPattern = llDeleteSubString(sStr,0, 4);
|
||||
llOwnerSay("Searching folder containing string \"" + sPattern + "\" for browsing.");
|
||||
searchSingle(sPattern);
|
||||
}
|
||||
else if (sStr=="save")
|
||||
{
|
||||
g_sCurrentFolder = "";
|
||||
g_lOutfit=[];
|
||||
g_lToCheck=[];
|
||||
QueryFolders("save");
|
||||
//if (sCommand == "menu") SetAsyncMenu(kID, iNum);
|
||||
g_kAsyncMenuUser = kID; // needed for notifying
|
||||
}
|
||||
else if (sStr=="restore"/*|| sStr=="menu Restore"*/)
|
||||
{
|
||||
integer i = 0; integer n = llGetListLength(g_lOutfit);
|
||||
for (; i < n; ++i)
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "attachover:" + llList2String(g_lOutfit,i) + "=force", NULL_KEY);
|
||||
Notify(kID, "Saved outfit has been restored.", TRUE );
|
||||
//if (sCommand == "menu") llMessageLinked(LINK_SET, iNum, "menu " + g_sParentMenu, kID);;
|
||||
}
|
||||
else if (llGetSubString(sStr,0,0)=="+"||llGetSubString(sStr,0,0)=="-"||llGetSubString(sStr,0,0)=="&")
|
||||
{
|
||||
g_kAsyncMenuUser = kID;
|
||||
g_lSearchList=llParseString2List(sStr,[","],[]);
|
||||
handleMultiSearch();
|
||||
}
|
||||
else if (iNum <= COMMAND_GROUP)
|
||||
{
|
||||
list lArgs = llParseStringKeepNulls(sStr, ["="], []);
|
||||
integer val;
|
||||
if (llList2String(lArgs,0)=="unsharedwear") val = 0x2;
|
||||
else if (llList2String(lArgs,0)=="unsharedunwear") val = 0x1;
|
||||
else return TRUE;
|
||||
if (llList2String(lArgs,1)=="y") updateUnsharedLocks(0, val);
|
||||
else if (llList2String(lArgs,1)=="n") updateUnsharedLocks(val, 0);
|
||||
else return TRUE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
default {
|
||||
on_rez(integer iParam) {
|
||||
llResetScript();
|
||||
}
|
||||
|
||||
state_entry() {
|
||||
//llSetMemoryLimit(65536); //this script needs to be profiled, and its memory limited
|
||||
g_sScript = "rlvfolders_";
|
||||
g_kWearer = llGetOwner();
|
||||
//Debug("Starting");
|
||||
}
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID)
|
||||
{
|
||||
if (iNum == MENUNAME_REQUEST && sStr == g_sParentMenu)
|
||||
{
|
||||
integer i;
|
||||
for (i=0;i < llGetListLength(g_lChildren);i++)
|
||||
{
|
||||
llMessageLinked(LINK_SET, MENUNAME_RESPONSE, g_sParentMenu + "|" + llList2String(g_lChildren,i), "");
|
||||
}
|
||||
}
|
||||
else if (iNum == RLV_CLEAR) //this triggers for safeword as well
|
||||
{
|
||||
g_lFolderLocks = [];
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, g_sScript + "Locks", NULL_KEY);
|
||||
}
|
||||
else if (UserCommand(iNum, sStr, kID)) return;
|
||||
else if (iNum == RLVA_VERSION) g_iRLVaOn = TRUE;
|
||||
else if (iNum == DIALOG_RESPONSE)
|
||||
{
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
g_iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
if (kID == g_kHistoryMenuID)
|
||||
{
|
||||
|
||||
if (sMessage == UPMENU)
|
||||
{
|
||||
llMessageLinked(LINK_SET, iAuth, "menu " + g_sParentMenu, kAv);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_sCurrentFolder = sMessage;
|
||||
g_iPage = 0;
|
||||
SetAsyncMenu(kAv, iAuth);
|
||||
QueryFolders("history");
|
||||
}
|
||||
}
|
||||
else if (kID == g_kMultipleFoldersOnSearchMenuID) {
|
||||
if (sMessage == UPMENU) {
|
||||
g_sCurrentFolder = "";
|
||||
QueryFolders("browse");
|
||||
return;
|
||||
}
|
||||
llMessageLinked(LINK_SET, RLV_CMD, llGetSubString(g_sFolderType,6,-1)+":"+sMessage+"=force", NULL_KEY);
|
||||
addToHistory(sMessage);
|
||||
Notify(kAv, "Now "+llGetSubString(g_sFolderType,6,11)+"ing "+sMessage, TRUE);
|
||||
}
|
||||
else if (kID == g_kRootActionsID)
|
||||
{
|
||||
if (sMessage == UPMENU)
|
||||
{
|
||||
SetAsyncMenu(kAv, iAuth); QueryFolders("browse");
|
||||
return;
|
||||
}
|
||||
else if (sMessage == "Save") UserCommand(iAuth, "save", kAv);
|
||||
else if (sMessage == "Restore") UserCommand(iAuth, "restore", kAv);
|
||||
else if (sMessage == lockUnsharedButton(0, 0))
|
||||
{
|
||||
if (g_iUnsharedLocks & 0x1) {
|
||||
updateUnsharedLocks(0x0, 0x1);
|
||||
Notify(kAv, "Now removing unshared items is no longer forbidden.", TRUE);
|
||||
}
|
||||
else {
|
||||
updateUnsharedLocks(0x1, 0x0);
|
||||
Notify(kAv, "Now removing unshared items is forbidden.", TRUE);
|
||||
}
|
||||
}
|
||||
else if (sMessage == lockUnsharedButton(1, 0))
|
||||
{
|
||||
if (g_iUnsharedLocks & 0x2) {
|
||||
updateUnsharedLocks(0x0, 0x2);
|
||||
Notify(kAv, "Now wearing unshared items is no longer forbidden.", TRUE);
|
||||
}
|
||||
else {
|
||||
updateUnsharedLocks(0x2, 0x0);
|
||||
Notify(kAv, "Now wearing unshared items is forbidden.", TRUE);
|
||||
}
|
||||
}
|
||||
RootActionsMenu(kAv, iAuth);
|
||||
}
|
||||
else if (kID == g_kBrowseID)
|
||||
{
|
||||
|
||||
if (sMessage == UPMENU)
|
||||
{
|
||||
llMessageLinked(LINK_SET, iAuth, "menu " + g_sParentMenu, kAv);
|
||||
return;
|
||||
}
|
||||
else if (sMessage == ROOT_ACTIONS)
|
||||
{
|
||||
RootActionsMenu(kAv, iAuth);
|
||||
return;
|
||||
}
|
||||
else if (sMessage == ACTIONS_CURRENT)
|
||||
{
|
||||
FolderActionsMenu(g_iLastFolderState, kAv, iAuth);
|
||||
return;
|
||||
}
|
||||
else if (sMessage == PARENT)
|
||||
{
|
||||
ParentFolder();
|
||||
}
|
||||
else
|
||||
{ //we got a folder. send the RLV command to remove/attach it.
|
||||
integer iState = StateFromButton(sMessage);
|
||||
string folder = FolderFromButton(sMessage);
|
||||
if (g_sCurrentFolder == "") g_sCurrentFolder = folder;
|
||||
else g_sCurrentFolder += "/" + folder;
|
||||
if ((iState % 10) == 0)
|
||||
{ // open actions menu if requested folder does not have subfolders
|
||||
FolderActionsMenu(iState, kAv, iAuth);
|
||||
return;
|
||||
}
|
||||
}
|
||||
g_iPage = 0;
|
||||
SetAsyncMenu(kAv, iAuth);
|
||||
QueryFolders("browse");
|
||||
}
|
||||
|
||||
else if (kID == g_kActionsID)
|
||||
{
|
||||
|
||||
if (sMessage == ADD)
|
||||
{
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "attachover:" + g_sCurrentFolder + "=force", NULL_KEY);
|
||||
Notify(kAv, "Now adding "+g_sCurrentFolder, TRUE);
|
||||
}
|
||||
else if (sMessage == REPLACE)
|
||||
{
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "attach:" + g_sCurrentFolder + "=force", NULL_KEY);
|
||||
addToHistory(g_sCurrentFolder);
|
||||
Notify(kAv, "Now attaching "+g_sCurrentFolder, TRUE);
|
||||
}
|
||||
else if (sMessage == DETACH)
|
||||
{
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "detach:" + g_sCurrentFolder + "=force", NULL_KEY);
|
||||
Notify(kAv, "Now detaching "+g_sCurrentFolder, TRUE);
|
||||
}
|
||||
else if (sMessage == ADD_ALL)
|
||||
{
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "attachallover:" + g_sCurrentFolder + "=force", NULL_KEY);
|
||||
Notify(kAv, "Now adding everything in "+g_sCurrentFolder, TRUE);
|
||||
}
|
||||
else if (sMessage == REPLACE_ALL)
|
||||
{
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "attachall:" + g_sCurrentFolder + "=force", NULL_KEY);
|
||||
Notify(kAv, "Now attaching everything in "+g_sCurrentFolder, TRUE);
|
||||
}
|
||||
else if (sMessage == DETACH_ALL)
|
||||
{
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "detachall:" + g_sCurrentFolder + "=force", NULL_KEY);
|
||||
Notify(kAv, "Now detaching everything in "+g_sCurrentFolder, TRUE);
|
||||
}
|
||||
else if (sMessage == lockFolderButton(0x00, 0, 0))
|
||||
{
|
||||
updateFolderLocks(g_sCurrentFolder, 0x01, 0x10);
|
||||
Notify(kAv, "Now wearing "+g_sCurrentFolder+ " is forbidden (this overrides parent exceptions).", TRUE);
|
||||
}
|
||||
else if (sMessage == lockFolderButton(0x00,1, 0))
|
||||
{
|
||||
updateFolderLocks(g_sCurrentFolder, 0x02, 0x20);
|
||||
Notify(kAv, "Now removing "+g_sCurrentFolder+ " is forbidden (this overrides parent exceptions).", TRUE);
|
||||
}
|
||||
else if (sMessage == lockFolderButton(0x00, 2, 0))
|
||||
{
|
||||
updateFolderLocks(g_sCurrentFolder, 0x04, 0x40);
|
||||
Notify(kAv, "Now wearing "+g_sCurrentFolder+ " or its subfolders is forbidden (this overrides parent exceptions).", TRUE);
|
||||
}
|
||||
else if (sMessage == lockFolderButton(0x00, 3, 0))
|
||||
{
|
||||
updateFolderLocks(g_sCurrentFolder, 0x08, 0x80);
|
||||
Notify(kAv, "Now removing "+g_sCurrentFolder+ " or its subfolders is forbidden (this overrides parent exceptions).", TRUE);
|
||||
}
|
||||
else if (sMessage == lockFolderButton(0x0F, 0, 0))
|
||||
{
|
||||
updateFolderLocks(g_sCurrentFolder, 0x10, 0x01);
|
||||
Notify(kAv, "Now wearing "+g_sCurrentFolder+ " is exceptionally allowed (this overrides parent locks).", TRUE);
|
||||
}
|
||||
else if (sMessage == lockFolderButton(0x0F, 1, 0))
|
||||
{
|
||||
updateFolderLocks(g_sCurrentFolder, 0x20, 0x02);
|
||||
Notify(kAv, "Now removing "+g_sCurrentFolder+ " is exceptionally allowed (this overrides parent locks).", TRUE);
|
||||
}
|
||||
else if (sMessage == lockFolderButton(0x0F,2, 0))
|
||||
{
|
||||
updateFolderLocks(g_sCurrentFolder, 0x40, 0x04);
|
||||
Notify(kAv, "Now wearing "+g_sCurrentFolder+ " or its subfolders is exceptionally allowed (this overrides parent locks).", TRUE);
|
||||
}
|
||||
else if (sMessage == lockFolderButton(0x0F,3, 0))
|
||||
{
|
||||
updateFolderLocks(g_sCurrentFolder, 0x80, 0x08);
|
||||
Notify(kAv, "Now removing "+g_sCurrentFolder+ " or its subfolders is exceptionally allowed (this overrides parent locks).", TRUE);
|
||||
}
|
||||
else if (sMessage == lockFolderButton(0xFFFF,0, 0))
|
||||
{
|
||||
updateFolderLocks(g_sCurrentFolder, 0, 0x11);
|
||||
Notify(kAv, "Now there is no restriction or exception on wearing "+g_sCurrentFolder+ ".", TRUE);
|
||||
}
|
||||
else if (sMessage == lockFolderButton(0xFFFF,1, 0))
|
||||
{
|
||||
updateFolderLocks(g_sCurrentFolder, 0, 0x22);
|
||||
Notify(kAv, "Now there is no restriction or exception on removing "+g_sCurrentFolder+ ".", TRUE);
|
||||
}
|
||||
else if (sMessage == lockFolderButton(0xFFFF,2, 0))
|
||||
{
|
||||
updateFolderLocks(g_sCurrentFolder, 0, 0x44);
|
||||
Notify(kAv, "Now there is no restriction or exception on wearing "+g_sCurrentFolder+ " and its subfolders.", TRUE);
|
||||
}
|
||||
else if (sMessage == lockFolderButton(0xFFFF,3, 0))
|
||||
{
|
||||
updateFolderLocks(g_sCurrentFolder, 0, 0x88);
|
||||
Notify(kAv, "Now there is no restriction or exception on removing "+g_sCurrentFolder+ " and its subfolders.", TRUE);
|
||||
}
|
||||
else if (llGetSubString(sMessage, 0, 0) == "(") Notify(kAv, "This action is forbidden at your authentification level.", FALSE);
|
||||
if (sMessage != UPMENU) { addToHistory(g_sCurrentFolder); llSleep(1.0);} //time for command to take effect so that we see the result in menu
|
||||
//Return to browse menu
|
||||
if (llGetSubString(g_sFolderType, 0, 14) == "history_actions" && sMessage != "Browse") {HistoryMenu(kAv, iAuth); return;}
|
||||
if (llGetSubString(g_sFolderType, -4, -1) == "_sub") ParentFolder();
|
||||
SetAsyncMenu(kAv, iAuth);
|
||||
QueryFolders("browse");
|
||||
}
|
||||
}
|
||||
else if (iNum == LM_SETTING_RESPONSE)
|
||||
{
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
integer i = llSubStringIndex(sToken, "_");
|
||||
if (llGetSubString(sToken, 0, i) == g_sScript)
|
||||
{
|
||||
sToken = llGetSubString(sToken, i + 1, -1);
|
||||
if (sToken == "Locks")
|
||||
{
|
||||
g_lFolderLocks = llParseString2List(sValue, [","], []);
|
||||
integer iN = llGetListLength(g_lFolderLocks);
|
||||
for (i = 0; i < iN; i += 2) doLockFolder(i);
|
||||
}
|
||||
else if (sToken == "Unshared")
|
||||
{
|
||||
g_iUnsharedLocks = (integer) sValue;
|
||||
doLockUnshared();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
listen(integer iChan, string sName, key kID, string sMsg)
|
||||
{
|
||||
llListenRemove(g_iListener);
|
||||
llSetTimerEvent(0.0);
|
||||
if (iChan == g_iFolderRLV)
|
||||
{ //we got a list of folders
|
||||
if (g_sFolderType=="browse")
|
||||
{
|
||||
if (sMsg == "")
|
||||
{ // try again if the folder name was wrong (may happen if the inventory changed)
|
||||
g_sCurrentFolder = "";
|
||||
g_iPage = 0;
|
||||
QueryFolders("browse");
|
||||
}
|
||||
else FolderBrowseMenu(sMsg);
|
||||
}
|
||||
else if (g_sFolderType=="history")
|
||||
{
|
||||
list sData = llParseStringKeepNulls(sMsg, [",", "|"], []);
|
||||
integer iState = llList2Integer(sData, 1);
|
||||
FolderActionsMenu(iState, g_kAsyncMenuUser, g_iAsyncMenuAuth);
|
||||
}
|
||||
else if (g_sFolderType=="save") SaveFolder(sMsg);
|
||||
else if (llGetSubString(g_sFolderType,0,5)=="search")
|
||||
{
|
||||
if (sMsg=="") Notify(g_kAsyncMenuUser,sMsg+"No folder found", FALSE);
|
||||
else if (llGetSubString(g_sFolderType,6,-1)=="browse")
|
||||
{
|
||||
g_sCurrentFolder = sMsg;
|
||||
QueryFolders("browse");
|
||||
}
|
||||
else
|
||||
{
|
||||
if(g_sFirstsearch!="")
|
||||
{
|
||||
integer idx=llSubStringIndex(llToLower(sMsg),llToLower(g_sFirstsearch));
|
||||
g_sBuildpath=llGetSubString(sMsg,0,idx);
|
||||
sMsg=llDeleteSubString(sMsg,0,idx);
|
||||
idx=llSubStringIndex(sMsg,"/");
|
||||
g_sBuildpath+=llGetSubString(sMsg,0,idx);
|
||||
g_sFirstsearch="";
|
||||
g_iListener = llListen(g_iFolderRLV, "", llGetOwner(), "");
|
||||
llSetTimerEvent(g_iTimeOut);
|
||||
llOwnerSay("@getinv:"+g_sBuildpath+"="+(string)g_iFolderRLV);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(g_sNextsearch!="")
|
||||
{
|
||||
list tlist=llParseString2List(sMsg,[","],[]);
|
||||
integer i=llGetListLength(tlist);
|
||||
string found;
|
||||
string test;
|
||||
while(i)
|
||||
{
|
||||
--i;
|
||||
test=llList2String(tlist,i);
|
||||
if(~llSubStringIndex(llToLower(test),llToLower(g_sNextsearch)))
|
||||
{
|
||||
i=0;
|
||||
found=test;
|
||||
}
|
||||
}
|
||||
if(found=="")
|
||||
{
|
||||
Notify(g_kAsyncMenuUser,g_sNextsearch+" subfolder not found", FALSE);
|
||||
return;
|
||||
}
|
||||
else sMsg=g_sBuildpath+"/"+found;
|
||||
g_sNextsearch="";
|
||||
g_sBuildpath="";
|
||||
}
|
||||
if ((llSubStringIndex(sMsg,",") >=0) && (g_iRLVaOn)) { //we have multiple results, bring up a menu
|
||||
list lMultiFolders = llParseString2List(sMsg,[","],[]);
|
||||
string sPrompt = "Multiple results found. Please select an item\n";
|
||||
sPrompt += "Current action is "+g_sFolderType+"\n";
|
||||
g_kMultipleFoldersOnSearchMenuID = Dialog(g_kAsyncMenuUser, sPrompt, lMultiFolders, [UPMENU], 0, iChan);
|
||||
return;
|
||||
}
|
||||
llMessageLinked(LINK_SET, RLV_CMD, llGetSubString(g_sFolderType,6,-1)+":"+sMsg+"=force", NULL_KEY);
|
||||
addToHistory(sMsg);
|
||||
Notify(g_kAsyncMenuUser, "Now "+llGetSubString(g_sFolderType,6,11)+"ing "+sMsg, TRUE);
|
||||
}
|
||||
}
|
||||
if (g_lSearchList!=[]) handleMultiSearch();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
timer()
|
||||
{
|
||||
llListenRemove(g_iListener);
|
||||
llSetTimerEvent(0.0);
|
||||
}
|
||||
|
||||
/*
|
||||
changed(integer iChange) {
|
||||
if (iChange & CHANGED_REGION) {
|
||||
if (g_iProfiled) {
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
@@ -1,742 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - rlvmain //
|
||||
// version 3.990 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//201410060330
|
||||
|
||||
integer g_iRLVOn = TRUE;//set to TRUE if DB says user has turned RLV features on
|
||||
integer g_iViewerCheck = FALSE;//set to TRUE if viewer is has responded to @versionnum message
|
||||
integer g_iRlvActive = FALSE;
|
||||
|
||||
//integer g_iRLVNotify = FALSE;//if TRUE, ownersay on each RLV restriction
|
||||
integer g_iListener;
|
||||
float g_fVersionTimeOut = 30.0; //MD- changed from 60. 2 minute wait before finding RLV is off is too long.
|
||||
integer g_iRlvVersion;
|
||||
integer g_iRlvaVersion;
|
||||
integer g_iCheckCount;//increment this each time we say @versionnum. check it each time timer goes off in default state. give up if it's >= 2
|
||||
integer g_iMaxViewerChecks=10;
|
||||
integer g_iCollarLocked=FALSE;
|
||||
|
||||
string g_sParentMenu = "Main";
|
||||
string g_sSubMenu = "RLV";
|
||||
list g_lMenu;
|
||||
key kMenuID;
|
||||
integer RELAY_CHANNEL = -1812221819;
|
||||
|
||||
//MESSAGE MAP
|
||||
integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
//integer COMMAND_SECOWNER = 501;
|
||||
//integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
integer COMMAND_RLV_RELAY = 507;
|
||||
integer COMMAND_SAFEWORD = 510;
|
||||
integer COMMAND_RELAY_SAFEWORD = 511;
|
||||
|
||||
integer POPUP_HELP = 1001;
|
||||
|
||||
integer LM_SETTING_SAVE = 2000;//scripts send messages on this channel to have settings saved to httpdb
|
||||
//str must be in form of "token=value"
|
||||
//integer LM_SETTING_REQUEST = 2001;//when startup, scripts send requests for settings on this channel
|
||||
integer LM_SETTING_RESPONSE = 2002;//the httpdb script will send responses on this channel
|
||||
integer LM_SETTING_DELETE = 2003;//delete token from DB
|
||||
//integer LM_SETTING_EMPTY = 2004;//sent by httpdb script when a token has no value in the db
|
||||
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
integer MENUNAME_REMOVE = 3003;
|
||||
|
||||
integer RLV_CMD = 6000;
|
||||
integer RLV_REFRESH = 6001;//RLV plugins should reinstate their restrictions upon receiving this message.
|
||||
integer RLV_CLEAR = 6002;//RLV plugins should clear their restriction lists upon receiving this message.
|
||||
integer RLV_VERSION = 6003; //RLV Plugins can recieve the used RLV viewer version upon receiving this message..
|
||||
integer RLVA_VERSION = 6004; //RLV Plugins can recieve the used RLVa viewer version upon receiving this message..
|
||||
|
||||
integer RLV_OFF = 6100; // send to inform plugins that RLV is disabled now, no message or key needed
|
||||
integer RLV_ON = 6101; // send to inform plugins that RLV is enabled now, no message or key needed
|
||||
integer RLV_QUERY = 6102; //query from a script asking if RLV is currently functioning
|
||||
integer RLV_RESPONSE = 6103; //reply to RLV_QUERY, with "ON" or "OFF" as the message
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
string UPMENU = "BACK";
|
||||
string TURNON = " ON";
|
||||
string TURNOFF = " OFF";
|
||||
string CLEAR = "CLEAR ALL";
|
||||
string CTYPE = "collar";
|
||||
string WEARERNAME;
|
||||
key g_kWearer;
|
||||
string g_sScript="rlvmain_";
|
||||
string g_sRlvVersionString="(unknown)";
|
||||
string g_sRlvaVersionString="(unknown)";
|
||||
|
||||
list g_lOwners;
|
||||
list g_lRestrictions; //2 strided list of sourceId, § separated list of restrictions strings
|
||||
list g_lExceptions;
|
||||
list g_lBaked=[]; //list of restrictions currently in force
|
||||
key g_kSitter=NULL_KEY;
|
||||
key g_kSitTarget=NULL_KEY;
|
||||
|
||||
integer CMD_ADDSRC = 11;
|
||||
integer CMD_REMSRC = 12;
|
||||
|
||||
integer g_iWaitRelay = FALSE ;
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer){
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else{
|
||||
if (llGetAgentSize(kID)!=ZERO_VECTOR) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
DoMenu(key kID, integer iAuth){
|
||||
list lButtons;
|
||||
if (g_iRLVOn)
|
||||
{
|
||||
lButtons += [TURNOFF];
|
||||
if (g_iViewerCheck) lButtons += [CLEAR] + llListSort(g_lMenu, 1, TRUE);
|
||||
}
|
||||
else lButtons += [TURNON];
|
||||
|
||||
string sPrompt = "\nRestrained Love Viewer Options\n";
|
||||
if (g_iRlvVersion) sPrompt += "Detected Version of RLV: "+g_sRlvVersionString;
|
||||
if (g_iRlvaVersion) sPrompt += " (RLVa: "+g_sRlvaVersionString+")";
|
||||
if (!g_iViewerCheck) sPrompt += "Could not detect Restrained Love Viewer.\nRestrained Love functions disabled.";
|
||||
sPrompt +="\n\nwww.opencollar.at/rlv";
|
||||
kMenuID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kID + "|" + sPrompt + "|0|" + llDumpList2String(lButtons, "`") + "|" + UPMENU + "|" + (string)iAuth, kMenuID);
|
||||
//Debug("Made menu.");
|
||||
}
|
||||
|
||||
rebakeSourceRestrictions(key kSource){
|
||||
//Debug("rebakeSourceRestrictions "+(string)kSource);
|
||||
integer iSourceIndex=llListFindList(g_lRestrictions,[kSource]);
|
||||
if (~iSourceIndex) { // if its a known source, rebake its restrictions
|
||||
list lRestr=llParseString2List(llList2String(g_lRestrictions,iSourceIndex+1),["§"],[]);
|
||||
while(llGetListLength(lRestr)){
|
||||
ApplyAdd(llList2String(lRestr,-1));
|
||||
lRestr=llDeleteSubList(lRestr,-1,-1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DoLock(){
|
||||
//lock the collar if there are still restrictions from active traps. Garbage collection will clear lock if they are stale.
|
||||
integer numSources=llGetListLength(llList2ListStrided(g_lRestrictions,0,-2,2));
|
||||
while (numSources--){
|
||||
if ((key)llList2Key(llList2ListStrided(g_lRestrictions,0,-2,2),numSources)){
|
||||
//an active source has a valid key, so remain locked... return
|
||||
ApplyAdd("detach");
|
||||
return;
|
||||
}
|
||||
}
|
||||
ApplyRem("detach"); //we only get here if none of the active sources is a real source, so remove our lock
|
||||
}
|
||||
|
||||
setRlvState(){
|
||||
if (g_iRLVOn && g_iViewerCheck){ //everyone says RLV on
|
||||
if (!g_iRlvActive) { //its newly active
|
||||
//Debug("RLV went active");
|
||||
//Debug("Sources:"+llDumpList2String(g_lSources,";"));
|
||||
g_iRlvActive=TRUE;
|
||||
llMessageLinked(LINK_SET, RLV_ON, "", NULL_KEY);
|
||||
g_lMenu = [] ; // flush submenu buttons
|
||||
llMessageLinked(LINK_SET, MENUNAME_REQUEST, g_sSubMenu, "");
|
||||
//tell rlv plugins to reinstate restrictions (and wake up the relay listener... so that it can at least hear !pong's!
|
||||
llMessageLinked(LINK_SET, RLV_REFRESH, "", NULL_KEY);
|
||||
|
||||
g_iWaitRelay = TRUE ;
|
||||
llSetTimerEvent(5); //Make sure the relay is ready before pinging
|
||||
//move ping to timer
|
||||
|
||||
//reinstate exceptions
|
||||
//Debug("adding exceptions:\n"+llDumpList2String(g_lExceptions,",\n"));
|
||||
integer i;
|
||||
for (i=0;i<llGetListLength(g_lExceptions);i+=2) {
|
||||
key kSource=(key)llList2String(g_lExceptions,i);
|
||||
list lBehaviours=llParseString2List(llList2String(g_lExceptions,i+1),["§"],[]);
|
||||
while (llGetListLength(lBehaviours)){
|
||||
//Debug("re-adding exception "+llList2String(lBehaviours,-1)+" for "+(string)kSource);
|
||||
ApplyAdd(llList2String(lBehaviours,-1)+":"+(string)kSource);
|
||||
lBehaviours=llDeleteSubList(lBehaviours,-1,-1);
|
||||
}
|
||||
}
|
||||
llMessageLinked(LINK_SET, RLV_VERSION, (string) g_iRlvVersion, NULL_KEY);
|
||||
if (g_iRlvaVersion) { //Respond on RLVa as well
|
||||
llMessageLinked(LINK_SET, RLVA_VERSION, (string) g_iRlvaVersion, NULL_KEY);
|
||||
}
|
||||
llOwnerSay("RLV ready! (v" + g_sRlvVersionString + ")");
|
||||
|
||||
DoLock();
|
||||
}
|
||||
} else if (g_iRlvActive) { //Both were true, but not now. g_iViewerCheck must still be TRUE (as it was once true), so g_iRLVOn must have just been set FALSE
|
||||
//Debug("RLV went inactive");
|
||||
g_iRlvActive=FALSE;
|
||||
//SafeWord(TRUE);
|
||||
while (llGetListLength(g_lBaked)){
|
||||
llOwnerSay("@"+llList2String(g_lBaked,-1)+"=y"); //remove restriction
|
||||
g_lBaked=llDeleteSubList(g_lBaked,-1,-1);
|
||||
}
|
||||
llMessageLinked(LINK_SET, RLV_OFF, "", NULL_KEY);
|
||||
} else if (g_iRLVOn){ //g_iViewerCheck must be FALSE (see above 2 cases), so g_iRLVOn must have just been set to TRUE, so do viewer check
|
||||
if (g_iListener) llListenRemove(g_iListener);
|
||||
g_iListener = llListen(293847, "", g_kWearer, "");
|
||||
llSetTimerEvent(g_fVersionTimeOut);
|
||||
g_iCheckCount=0;
|
||||
llOwnerSay("@versionnew=293847");
|
||||
} else { //else both are FALSE, its the only combination left, No need to do viewercheck if g_iRLVOn is FALSE
|
||||
llSetTimerEvent(0.0);
|
||||
}
|
||||
}
|
||||
|
||||
AddRestriction(key kID, string sBehav) {
|
||||
|
||||
if (kID=="rlvex"){ //if its an exception, add it to the exceptions list
|
||||
list lParams = llParseString2List(sBehav, [":"], []);
|
||||
key kAv = (key)llList2String(lParams, 1);
|
||||
sBehav = llList2String(lParams, 0);
|
||||
|
||||
//Debug("apply exception ("+(string)kAv+")"+sBehav);
|
||||
if ((key)kAv){
|
||||
integer iSource=llListFindList(g_lExceptions,[kAv]);
|
||||
if (! ~iSource ) { //if this is an exception for a new agent
|
||||
//Debug("Exception for new agent "+(string)kAv);
|
||||
g_lExceptions+=[kAv,""]; //add UUID and blank list to exceptions list
|
||||
iSource=-2;
|
||||
}
|
||||
//Debug("trying to apply exception ("+(string)kID+")"+sBehav);
|
||||
string sSrcRestr = llList2String(g_lExceptions,iSource+1);
|
||||
if (!(sSrcRestr==sBehav || (~llSubStringIndex(sSrcRestr,"§"+sBehav)) || (~llSubStringIndex(sSrcRestr,sBehav+"§"))) ) {
|
||||
//Debug("AddRestriction 2.2");
|
||||
sSrcRestr+="§"+sBehav;
|
||||
if (llSubStringIndex(sSrcRestr,"§")==0) sSrcRestr=llGetSubString(sSrcRestr,1,-1);
|
||||
|
||||
g_lExceptions=llListReplaceList(g_lExceptions,[sSrcRestr],iSource+1, iSource+1);
|
||||
ApplyAdd(sBehav+":"+(string)kAv);
|
||||
//} else {
|
||||
//Debug("exception already active ("+(string)kID+")"+sBehav);
|
||||
//Debug(sSrcRestr);
|
||||
}
|
||||
} else {
|
||||
llOwnerSay("OC doesn't currently support global exceptions");
|
||||
}
|
||||
} else { //add this restriction to the list for this source
|
||||
//add new sources to sources list
|
||||
integer iSource=llListFindList(g_lRestrictions,[kID]);
|
||||
if (! ~iSource ) { //if this is a restriction from a new source
|
||||
g_lRestrictions += [kID,""];
|
||||
iSource=-2;
|
||||
if ((key)kID) llMessageLinked(LINK_SET, CMD_ADDSRC,"",kID); //tell relay script we have a new restriction source
|
||||
}
|
||||
|
||||
string sSrcRestr = llList2String(g_lRestrictions,iSource+1);
|
||||
//Debug("AddRestriction 2.1");
|
||||
if (!(sSrcRestr==sBehav || (~llSubStringIndex(sSrcRestr,"§"+sBehav)) || (~llSubStringIndex(sSrcRestr,sBehav+"§"))) ) {
|
||||
//Debug("AddRestriction 2.2");
|
||||
sSrcRestr+="§"+sBehav;
|
||||
if (llSubStringIndex(sSrcRestr,"§")==0) sSrcRestr=llGetSubString(sSrcRestr,1,-1);
|
||||
|
||||
g_lRestrictions=llListReplaceList(g_lRestrictions,[sSrcRestr],iSource+1, iSource+1);
|
||||
//Debug("apply restriction ("+(string)kID+")"+sBehav);
|
||||
ApplyAdd(sBehav);
|
||||
//Debug("AddRestriction 2.3");
|
||||
if (sBehav=="unsit") {
|
||||
g_kSitTarget = llList2Key(llGetObjectDetails(g_kWearer, [OBJECT_ROOT]), 0);
|
||||
g_kSitter=kID;
|
||||
}
|
||||
}
|
||||
DoLock(); //if there are sources with valid keys, collar should be locked.
|
||||
}
|
||||
}
|
||||
|
||||
ApplyAdd (string sBehav) {
|
||||
if (! ~llListFindList(g_lBaked, [sBehav])) { //if this restriction is not already baked
|
||||
g_lBaked+=[sBehav];
|
||||
llOwnerSay("@"+sBehav+"=n");
|
||||
//Debug("'"+sBehav+"' added to the baked list");
|
||||
//} else {
|
||||
//Debug(sBehav+" is already baked");
|
||||
}
|
||||
}
|
||||
|
||||
RemRestriction(key kID, string sBehav) {
|
||||
if ((string)kID=="rlvex"){
|
||||
//Debug("RemRestriction [rlvex] "+sBehav);
|
||||
list lParams = llParseString2List(sBehav, [":"], []);
|
||||
key kAv = (key)llList2String(lParams, 1);
|
||||
sBehav = llList2String(lParams, 0);
|
||||
|
||||
integer iSource=llGetListLength(g_lExceptions);
|
||||
while (iSource){
|
||||
iSource -= 2;
|
||||
key thisAgent=llList2Key(g_lExceptions,iSource);
|
||||
if (thisAgent==kAv || kAv==""){ //if we're clearing this one, or all
|
||||
//Debug("clearing "+(string)sBehav+" for "+(string)thisAgent);
|
||||
list lSrcRestr = llParseString2List(llList2String(g_lExceptions,iSource+1),["§"],[]); //get a list of this source's restrictions
|
||||
integer iRestr=llListFindList(lSrcRestr,[sBehav]); //get index of this restriction from that list
|
||||
if (~iRestr) { //if the restriction is in the list
|
||||
if (llGetListLength(lSrcRestr)==1) { //if it is the only restriction in the list
|
||||
//Debug("removing last restriction");
|
||||
g_lExceptions=llDeleteSubList(g_lExceptions,iSource, iSource+1); //remove the restrictions list
|
||||
} else { //else, the source has other restrictions
|
||||
lSrcRestr=llDeleteSubList(lSrcRestr,iRestr,iRestr); //delete the restriction from the list
|
||||
g_lExceptions=llListReplaceList(g_lExceptions,[llDumpList2String(lSrcRestr,"§")] ,iSource+1,iSource+1);//store the list in the sources restrictions list
|
||||
//Debug("removed restriction, there are "+(string)llGetListLength(lSrcRestr)+" remaining "+llDumpList2String(lSrcRestr,"|"));
|
||||
}
|
||||
lSrcRestr=[];
|
||||
ApplyRem(sBehav+":"+(string)thisAgent);
|
||||
//} else {
|
||||
//Debug("restriction is not in the list");
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//Debug("RemRestriction ("+(string)kID+")"+sBehav);
|
||||
integer iSource=llListFindList(g_lRestrictions,[kID]); //find index of the source
|
||||
if (~iSource) { //if this source set any restrictions
|
||||
list lSrcRestr = llParseString2List(llList2String(g_lRestrictions,iSource+1),["§"],[]); //get a list of this source's restrictions
|
||||
integer iRestr=llListFindList(lSrcRestr,[sBehav]); //get index of this restriction from that list
|
||||
if ((~iRestr) || sBehav=="ALL") { //if the restriction is in the list
|
||||
if (llGetListLength(lSrcRestr)==1) { //if it is the only restriction in the list
|
||||
g_lRestrictions=llDeleteSubList(g_lRestrictions,iSource, iSource+1); //remove the restrictions list
|
||||
if ((key)kID) llMessageLinked(LINK_SET, CMD_REMSRC,"",kID); //tell the relay the source has no restrictions
|
||||
} else { //else, the source has other restrictions
|
||||
lSrcRestr=llDeleteSubList(lSrcRestr,iRestr,iRestr); //delete the restriction from the list
|
||||
g_lRestrictions=llListReplaceList(g_lRestrictions,[llDumpList2String(lSrcRestr,"§")] ,iSource+1,iSource+1);//store the list in the sources restrictions list
|
||||
}
|
||||
if (sBehav=="unsit"&&g_kSitter==kID) {
|
||||
g_kSitter=NULL_KEY;
|
||||
g_kSitTarget=NULL_KEY;
|
||||
}
|
||||
lSrcRestr=[];
|
||||
ApplyRem(sBehav);
|
||||
}
|
||||
}
|
||||
DoLock();
|
||||
}
|
||||
}
|
||||
|
||||
ApplyRem(string sBehav) {
|
||||
//Debug("(rem) Baked restrictions:\n"+llDumpList2String(g_lBaked,"\n"));
|
||||
integer iRestr=llListFindList(g_lBaked, [sBehav]); //look for this restriction in the baked list
|
||||
if (~iRestr) { //if this restriction has been baked already
|
||||
integer i;
|
||||
for (i=0;i<=llGetListLength(g_lRestrictions);i++) { //for each source
|
||||
list lSrcRestr=llParseString2List(llList2String(g_lRestrictions,i),["§"],[]); //get its restrictions list
|
||||
if (llListFindList(lSrcRestr, [sBehav])!=-1) return; //check it for this restriction
|
||||
}
|
||||
|
||||
// //also check the exceptions list, in case its an exception
|
||||
list lParts=llParseString2List(sBehav,[":"],[]);
|
||||
key exceptee=llList2Key(lParts,1);
|
||||
if (exceptee) {
|
||||
integer exceptionIndex=llListFindList(g_lExceptions,[exceptee]);
|
||||
if (~exceptionIndex){
|
||||
//Debug("This exceptee has exceptions");
|
||||
list lExceptions=llParseString2List(llList2String(g_lExceptions,exceptionIndex+1),["§"],[]);
|
||||
string exception=llList2String(lParts,0);
|
||||
if (~llListFindList(lExceptions,[exception])){
|
||||
//Debug("we found this exception for this person set by rlvex, so don't release it");
|
||||
return;
|
||||
}
|
||||
//} else {
|
||||
//Debug("Exceptions list is "+llDumpList2String(g_lExceptions,",")+"\n checking for "+exception+" from "+(string)exceptee);
|
||||
}
|
||||
//} else {
|
||||
//Debug((string)exceptee+" is not a key, so this is not an exception");
|
||||
}
|
||||
|
||||
g_lBaked=llDeleteSubList(g_lBaked,iRestr,iRestr); //delete it from the baked list
|
||||
llOwnerSay("@"+sBehav+"=y"); //remove restriction
|
||||
//} else {
|
||||
//Debug("Restriction '"+sBehav+"'not in baked list");
|
||||
}
|
||||
//Debug("(post rem) Baked restrictions:\n"+llDumpList2String(g_lBaked,"\n"));
|
||||
}
|
||||
|
||||
|
||||
SafeWord() {
|
||||
//leave lock and exceptions intact, clear everything else
|
||||
integer numRestrictions=llGetListLength(g_lRestrictions);
|
||||
while (numRestrictions){
|
||||
numRestrictions -= 2;
|
||||
string kSource=llList2String(g_lRestrictions,numRestrictions);
|
||||
if (kSource != "main" && kSource != "rlvex" && llSubStringIndex(kSource,"utility_") != 0){
|
||||
llMessageLinked(LINK_SET,RLV_CMD,"clear",kSource);
|
||||
}
|
||||
}
|
||||
llMessageLinked(LINK_SET,RLV_CLEAR,"","");
|
||||
}
|
||||
// End of book keeping functions
|
||||
|
||||
UserCommand(integer iNum, string sStr, key kID) {
|
||||
if (iNum == COMMAND_EVERYONE) return; // No command for people with no privilege in this plugin.
|
||||
|
||||
list lParams = llParseString2List(sStr, [" "], []);
|
||||
string sCmd = llList2String(lParams, 0);
|
||||
string sValue = llToLower(llList2String(lParams, 1));
|
||||
lParams=[];
|
||||
|
||||
if (sStr=="runaway" && kID==g_kWearer) { // some scripts reset on runaway, we want to resend RLV state.
|
||||
llSleep(2); //give some time for scripts to get ready.
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "on="+(string)g_iRLVOn, "");
|
||||
} else if (llToLower(sStr) == "rlv" || llToLower(sStr) == "menu rlv" ){
|
||||
//someone clicked "RLV" on the main menu. Give them our menu now
|
||||
DoMenu(kID, iNum);
|
||||
// } else if (sStr == "rlvnotify on") {
|
||||
// g_iRLVNotify = TRUE;
|
||||
// llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "notify=1", "");
|
||||
// } else if (sStr == "rlvnotify off") {
|
||||
// g_iRLVNotify = FALSE;
|
||||
// llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "notify=0", "");
|
||||
} else if (sStr == "rlvon") {
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "on=1", "");
|
||||
g_iRLVOn = TRUE;
|
||||
setRlvState();
|
||||
} else if (sStr == "rlvoff") {
|
||||
if (iNum == COMMAND_OWNER) {
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "on=0", "");
|
||||
g_iRLVOn = FALSE;
|
||||
setRlvState();
|
||||
} else Notify(kID, "Sorry, only owner may disable Restrained Love functions", FALSE);
|
||||
} else if (sStr == "clear") {
|
||||
if (iNum == COMMAND_WEARER) llOwnerSay("Sorry, but the sub cannot clear RLV settings.");
|
||||
else SafeWord();
|
||||
} else if (sStr=="showrestrictions") {
|
||||
string sOut="You are being restricted by the following objects";
|
||||
integer numRestrictions=llGetListLength(g_lRestrictions);
|
||||
while (numRestrictions){
|
||||
key kSource=(key)llList2String(g_lRestrictions,numRestrictions);
|
||||
if ((key)kSource)
|
||||
sOut+="\n"+llKey2Name((key)kSource)+" ("+(string)kSource+"): "+llList2String(g_lRestrictions,numRestrictions+1);
|
||||
else
|
||||
sOut+="\nThis " + CTYPE + "("+(string)kSource+"): "+llList2String(g_lRestrictions,numRestrictions+1);
|
||||
numRestrictions -= 2;
|
||||
}
|
||||
Notify(kID,sOut,FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
default {
|
||||
on_rez(integer param) {
|
||||
/*
|
||||
if (g_iProfiled){
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
*/
|
||||
g_iRlvActive=FALSE;
|
||||
g_iViewerCheck=FALSE;
|
||||
g_iRLVOn=FALSE;
|
||||
g_lBaked=[]; //just been rezzed, so should have no baked restrictions
|
||||
}
|
||||
|
||||
state_entry() {
|
||||
//llSetMemoryLimit(65536); //this script needs to be profiled, and its memory limited
|
||||
setRlvState();
|
||||
llOwnerSay("@clear");
|
||||
g_kWearer = llGetOwner();
|
||||
WEARERNAME = llKey2Name(g_kWearer); //quick and dirty default, will get replaced by value from settings
|
||||
//Debug("Starting");
|
||||
}
|
||||
|
||||
listen(integer iChan, string sName, key kID, string sMsg) {
|
||||
//RestrainedLove viewer v2.8.0 (RLVa 1.4.10) <-- @versionnew response structure v1.23 (implemented April 2010).
|
||||
//lines commented out are from @versionnum response string (implemented late 2009)
|
||||
llListenRemove(g_iListener);
|
||||
llSetTimerEvent(0.0);
|
||||
g_iCheckCount = 0;
|
||||
g_iViewerCheck = TRUE;
|
||||
|
||||
//send the version to rlv plugins
|
||||
list lParam = llParseString2List(sMsg,[" "],[""]); //(0:RestrainedLove)(1:viewer)(2:v2.8.0)(3:(RLVa)(4:1.4.10))
|
||||
|
||||
//g_iRlvVersion = (integer) llGetSubString(sMsg, 0, 2); //expects (208)0000 (old versionnum response)
|
||||
list lVersionSplit = llParseString2List(llGetSubString(llList2String(lParam,2), 1, -1),["."],[]); //expects (208)0000 | derive from:(2:v2.8.0)
|
||||
g_iRlvVersion = llList2Integer(lVersionSplit,0) * 100 + llList2Integer(lVersionSplit,1); //we should now have (integer)208
|
||||
//integer i=(integer)sMsg;
|
||||
//string s3=llGetSubString((string)(i/100),-2,-1);
|
||||
//string s2=llGetSubString((string)(i/10000),-2,-1);
|
||||
//string s1=llGetSubString((string)(i/1000000),-2,-1);
|
||||
//g_sRlvVersionString = s1+"."+s2+"."+s3;
|
||||
string sRlvResponseString = llList2String(lParam,2); //(2:v2.8.0) RLV segmented response from viewer
|
||||
g_sRlvVersionString = llGetSubString(sRlvResponseString,llSubStringIndex(sRlvResponseString,"v")+1,llSubStringIndex(sRlvResponseString,")") );
|
||||
string sRlvaResponseString = llList2String(lParam,4); //(4:1.4.10)) RLVa segmented response from viewer
|
||||
g_sRlvaVersionString = llGetSubString(sRlvaResponseString,0,llSubStringIndex(sRlvaResponseString,")") -1);
|
||||
|
||||
lVersionSplit = llParseString2List(g_sRlvaVersionString,["."],[]); //split up RLVa version string (1.4.10)
|
||||
g_iRlvaVersion = llList2Integer(lVersionSplit,0) * 100 + llList2Integer(lVersionSplit,1); //we should now have (integer)104
|
||||
|
||||
//We should now have: ["2.8.0" in g_sRlvVersionString] and ["1.4.10" in g_sRlvaVersionString]
|
||||
//Debug("g_iRlvVersion: "+(string)g_iRlvVersion+" g_sRlvVersionString: "+g_sRlvVersionString+ " g_sRlvaVersionString: "+g_sRlvaVersionString+ " g_iRlvaVersion: "+(string)g_iRlvaVersion);
|
||||
//Debug("|"+sMsg+"|");
|
||||
setRlvState();
|
||||
//Debug("Starting");
|
||||
} //Firestorm - viewer response: RestrainedLove viewer v2.8.0 (RLVa 1.4.10)
|
||||
//Firestorm - rlvmain parsed result: g_iRlvVersion: 208 (same as before) g_sRlvVersionString: 2.8.0 (same as before) g_sRlvaVersionString: 1.4.10 (new) g_iRlvaVersion: 104 (new)
|
||||
//
|
||||
//Marine's RLV Viewer - viewer response: RestrainedLove viewer v2.09.01.0 (3.7.9.32089)
|
||||
//Marine's RLV Viewer - rlvmain parsed result: g_iRlvVersion: 209 (same as before) g_sRlvVersionString: 2.09.01.0 (same as before) g_sRlvaVersionString: NULL (new) g_iRlvaVersion: 0 (new)
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID) {
|
||||
if (iNum == MENUNAME_REQUEST && sStr == g_sParentMenu) {
|
||||
llMessageLinked(LINK_SET, MENUNAME_RESPONSE, g_sParentMenu + "|" + g_sSubMenu, "");
|
||||
g_lMenu = [] ; // flush submenu buttons
|
||||
llMessageLinked(LINK_SET, MENUNAME_REQUEST, g_sSubMenu, "");
|
||||
}
|
||||
else if (iNum == COMMAND_NOAUTH) return; // SA: TODO remove later
|
||||
else if (iNum <= COMMAND_EVERYONE && iNum >= COMMAND_OWNER) UserCommand(iNum, sStr, kID);
|
||||
else if (iNum == DIALOG_RESPONSE) {
|
||||
//Debug(sStr);
|
||||
if (kID == kMenuID) {
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMsg = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
lMenuParams=[];
|
||||
//Debug(sMsg);
|
||||
if (sMsg == TURNON) {
|
||||
UserCommand(iAuth, "rlvon", kAv);
|
||||
} else if (sMsg == TURNOFF) {
|
||||
UserCommand(iAuth, "rlvoff", kAv);
|
||||
DoMenu(kAv, iAuth);
|
||||
} else if (sMsg == CLEAR) {
|
||||
UserCommand(iAuth, "clear", kAv);
|
||||
DoMenu(kAv, iAuth);
|
||||
} else if (sMsg == UPMENU) {
|
||||
llMessageLinked(LINK_SET, iAuth, "menu "+g_sParentMenu, kAv);
|
||||
} else if (~llListFindList(g_lMenu, [sMsg])) { //if this is a valid request for a foreign menu
|
||||
llMessageLinked(LINK_SET, iAuth, "menu " + sMsg, kAv);
|
||||
}
|
||||
}
|
||||
} else if (iNum == LM_SETTING_SAVE) {
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
lParams=[];
|
||||
if(sToken == "auth_owner" && llStringLength(sValue) > 0) g_lOwners = llParseString2List(sValue, [","], []);
|
||||
else if (sToken=="Global_lock") g_iCollarLocked=(integer)sValue;
|
||||
else if (sToken=="Global_CType") CTYPE=sValue;
|
||||
} else if (iNum == LM_SETTING_RESPONSE) {
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
lParams=[];
|
||||
if (sToken == "auth_owner" && llStringLength(sValue) > 0) g_lOwners = llParseString2List(sValue, [","], []);
|
||||
else if (sToken=="Global_lock") g_iCollarLocked=(integer)sValue;
|
||||
else if (sToken=="Global_CType") CTYPE=sValue;
|
||||
else if (sToken=="Global_WearerName") WEARERNAME=sValue;
|
||||
// else if (sToken=="rlvmain_notify") g_iRLVNotify = (integer)sValue;
|
||||
else if (sToken=="rlvmain_on") {
|
||||
g_iRLVOn=(integer)sValue;
|
||||
setRlvState();
|
||||
}
|
||||
} else if (iNum == COMMAND_SAFEWORD) SafeWord();
|
||||
else if (iNum==COMMAND_RELAY_SAFEWORD) SafeWord();
|
||||
else if (iNum==RLV_QUERY){
|
||||
if (g_iRlvActive) llMessageLinked(LINK_SET, RLV_RESPONSE, "ON", "");
|
||||
else llMessageLinked(LINK_SET, RLV_RESPONSE, "OFF", "");
|
||||
} else if (iNum == MENUNAME_RESPONSE) { //sStr will be in form of "parentmenu|menuname"
|
||||
list lParams = llParseString2List(sStr, ["|"], []);
|
||||
string sThisParent = llList2String(lParams, 0);
|
||||
string sChild = llList2String(lParams, 1);
|
||||
lParams=[];
|
||||
if (sThisParent == g_sSubMenu) { //add this str to our menu buttons
|
||||
if (! ~llListFindList(g_lMenu, [sChild])) {
|
||||
g_lMenu += [sChild];
|
||||
}
|
||||
}
|
||||
} else if (iNum == MENUNAME_REMOVE) { //sStr will be in form of "parentmenu|menuname"
|
||||
list lParams = llParseString2List(sStr, ["|"], []);
|
||||
string sThisParent = llList2String(lParams, 0);
|
||||
string sChild = llList2String(lParams, 1);
|
||||
lParams=[];
|
||||
if (sThisParent == g_sSubMenu) {
|
||||
integer iIndex = llListFindList(g_lMenu, [sChild]);
|
||||
if (iIndex != -1) {
|
||||
g_lMenu = llDeleteSubList(g_lMenu, iIndex, iIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//these are things we only do if RLV is ready to go
|
||||
else if (g_iRlvActive) { //if RLV is off, don't even respond to RLV submenu events
|
||||
if (iNum == RLV_CMD) {
|
||||
//Debug("Received RLV_CMD: "+sStr+" from "+(string)kID);
|
||||
list lCommands=llParseString2List(llToLower(sStr),[","],[]);
|
||||
|
||||
while (llGetListLength(lCommands)){
|
||||
string sCommand=llToLower(llList2String(lCommands,0));
|
||||
list lArgs = llParseString2List(sCommand,["="],[]); //split the command on "="
|
||||
string sCom = llList2String(lArgs,0); //store first part of command
|
||||
if (llGetSubString(sCom,-1,-1)==":") sCom=llGetSubString(sCom,0,-2); //remove trailing :
|
||||
string sVal = llList2String(lArgs,1); //store value
|
||||
lArgs=[];
|
||||
|
||||
if (sVal=="n"||sVal=="add") AddRestriction(kID,sCom); //add a restriction
|
||||
else if (sVal=="y"||sVal=="rem") RemRestriction(kID,sCom); //remove a restriction
|
||||
else if (sCom=="clear") { //release some or all restrictions FOR THIS OBJECT ONLY
|
||||
//Debug("Got clear command:\nkey: "+(string)kID+"\ncommand: "+sCommand);
|
||||
integer iSource=llListFindList(g_lRestrictions,[kID]);
|
||||
if (kID=="rlvex"){
|
||||
RemRestriction(kID,sVal);
|
||||
} else if (~iSource) { //if this is a known source
|
||||
//Debug("Clearing restrictions:\nrestrictions: "+sVal+"\nfor key: "+(string)kID+"\nindex: "+(string)iSource);
|
||||
list lSrcRestr=llParseString2List(llList2String(g_lRestrictions,iSource+1),["§"],[]); //get a list of this source's restrictions
|
||||
integer numRestrictions=llGetListLength(lSrcRestr);
|
||||
list lRestrictionsToRemove;
|
||||
|
||||
while (llGetListLength(lSrcRestr)) { //loop through all of this source's restrictions and store them in a new list
|
||||
string sBehav=llList2String(lSrcRestr,-1); //get the name of the restriction from the list
|
||||
if (sVal=="" || llSubStringIndex(sBehav,sVal)!=-1) { //if the restriction to remove matches the start of the behaviour in the list, or we need to remove all of them
|
||||
//Debug("Clearing restriction "+sBehav+" for "+(string)kID);
|
||||
lRestrictionsToRemove+=sBehav;
|
||||
//RemRestriction(kID,sBehav); //remove the restriction from the list
|
||||
}
|
||||
lSrcRestr=llDeleteSubList(lSrcRestr,-1,-1);
|
||||
}
|
||||
lSrcRestr=[]; //delete the list to free memory
|
||||
//Debug("removing restrictions:"+llDumpList2String(lRestrictionsToRemove,"|")+" for "+(string)kID);
|
||||
while(llGetListLength(lRestrictionsToRemove)){
|
||||
RemRestriction(kID,llList2String(lRestrictionsToRemove,-1)); //remove the restriction from the list
|
||||
lRestrictionsToRemove=llDeleteSubList(lRestrictionsToRemove,-1,-1);
|
||||
}
|
||||
}
|
||||
} else { //perform other command
|
||||
//Debug("Got other command:\nkey: "+(string)kID+"\ncommand: "+sCommand);
|
||||
if (llSubStringIndex(sCom,"tpto")==0) { //looks like a tpto command, lets check to see if we should honour it or not, and message back if we can if it fails
|
||||
if ( (~llListFindList(g_lBaked,["tploc"])) || (~llListFindList(g_lBaked,["unsit"])) ) {
|
||||
if ((key)kID) Notify(kID,"Can't teleport due to RLV restrictions",TRUE);
|
||||
return;
|
||||
}
|
||||
} else if (sStr=="unsit=force") {
|
||||
if (~llListFindList(g_lBaked,["unsit"]) ) {
|
||||
if ((key)kID) Notify(kID,"Can't force stand due to RLV restrictions",TRUE);
|
||||
return;
|
||||
}
|
||||
}
|
||||
llOwnerSay("@"+sCommand);
|
||||
if (g_kSitter==NULL_KEY&&llGetSubString(sCommand,0,3)=="sit:") {
|
||||
g_kSitter=kID;
|
||||
//Debug("Sitter:"+(string)(g_kSitter));
|
||||
g_kSitTarget=(key)llGetSubString(sCom,4,-1);
|
||||
//Debug("Sittarget:"+(string)(g_kSitTarget));
|
||||
}
|
||||
}
|
||||
|
||||
lCommands=llDeleteSubList(lCommands,0,0);
|
||||
//Debug("Command list now "+llDumpList2String(lCommands,"|"));
|
||||
}
|
||||
} else if (iNum == COMMAND_RLV_RELAY) {
|
||||
if (llGetSubString(sStr,-43,-1)== ","+(string)g_kWearer+",!pong") { //if it is a pong aimed at wearer
|
||||
//Debug("Received pong:"+sStr+" from "+(string)kID);
|
||||
if (kID==g_kSitter) llOwnerSay("@"+"sit:"+(string)g_kSitTarget+"=force"); //if we stored a sitter, sit on it
|
||||
rebakeSourceRestrictions(kID);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
timer() {
|
||||
if (g_iWaitRelay) {
|
||||
llSetTimerEvent(0.0);
|
||||
g_iWaitRelay = FALSE;
|
||||
//ping inworld object so that they reinstate their restrictions
|
||||
integer i;
|
||||
for (i=0;i<llGetListLength(g_lRestrictions)/2;i++) {
|
||||
key kSource=(key)llList2String(llList2ListStrided(g_lRestrictions,0,-1,2),i);
|
||||
if ((key)kSource) llShout(RELAY_CHANNEL,"ping,"+(string)kSource+",ping,ping");
|
||||
else rebakeSourceRestrictions(kSource); //reapply collar's restrictions here
|
||||
}
|
||||
} else if (g_iCheckCount++ <= g_iMaxViewerChecks) { //no response in timeout period, try again
|
||||
llOwnerSay("@versionnew=293847");
|
||||
if (g_iCheckCount>1) llMessageLinked(LINK_SET, POPUP_HELP, "\n\nIf your viewer doesn't support RLV, you can stop the \"@versionnew\" message by switching RLV off in your "+CTYPE+"'s RLV menu or by typing: _PREFIX_rlvoff\n", g_kWearer);
|
||||
} else { //we've waited long enough, and are out of retries
|
||||
llSetTimerEvent(0.0);
|
||||
llListenRemove(g_iListener);
|
||||
g_iCheckCount=0;
|
||||
//llSetTimerEvent(0.0);
|
||||
|
||||
g_iViewerCheck = FALSE;
|
||||
g_iRlvVersion = FALSE;
|
||||
g_iRlvaVersion = FALSE;
|
||||
setRlvState();
|
||||
|
||||
llOwnerSay("Could not detect Restrained Love Viewer. Restrained Love functions disabled.");
|
||||
if (llGetListLength(g_lRestrictions) > 0 && llGetListLength(g_lOwners) > 0) {
|
||||
string sMsg = WEARERNAME+" appears to have logged in without using the Restrained Love Viewer. Their Restrained Love functions have been disabled.";
|
||||
|
||||
integer i_OwnerCount=llGetListLength(g_lOwners);
|
||||
integer i;
|
||||
for(i=0; i < i_OwnerCount; i+=2) {
|
||||
Notify(llList2Key(g_lOwners,i), sMsg, FALSE);
|
||||
}
|
||||
|
||||
if (i_OwnerCount == 2) llOwnerSay("Your owner has been notified.");
|
||||
else llOwnerSay("Your owners have been notified.");
|
||||
}
|
||||
}
|
||||
}
|
||||
changed(integer change) {
|
||||
if (change & CHANGED_OWNER) {
|
||||
llResetScript();
|
||||
}
|
||||
//re make rlv restrictions after teleport or region change, because SL seems to be losing them
|
||||
if (change & CHANGED_TELEPORT || change & CHANGED_REGION) { //if we teleported, or changed regions
|
||||
//re make rlv restrictions after teleport or region change, because SL seems to be losing them
|
||||
integer numBaked=llGetListLength(g_lBaked);
|
||||
while (numBaked--){
|
||||
llOwnerSay("@"+llList2String(g_lBaked,numBaked)+"=n");
|
||||
//Debug("resending @"+llList2String(g_lBaked,numBaked));
|
||||
}
|
||||
|
||||
}
|
||||
if (change & CHANGED_INVENTORY) { //A script may have been recompiled or added, lets refresh the RLV state for other scripts
|
||||
if (g_iRlvActive==TRUE) {
|
||||
llSleep(2);
|
||||
llMessageLinked(LINK_SET, RLV_ON, "", NULL_KEY);
|
||||
if (g_iRlvaVersion) llMessageLinked(LINK_SET, RLVA_VERSION, (string) g_iRlvaVersion, NULL_KEY);
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
if (change & CHANGED_REGION) {
|
||||
if (g_iProfiled){
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,565 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - rlvstuff //
|
||||
// version 3.995 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
string g_sParentMenu = "RLV";
|
||||
|
||||
list g_lSettings; //3 strided list of prefix,option,value
|
||||
list g_lChangedCategories;//list of categories that changed since last saved
|
||||
|
||||
integer g_lRLVcmds_stride=4;
|
||||
list g_lRLVcmds=[ //4 strided list of menuname,command,prettyname,description
|
||||
"rlvsit_","unsit","Stand","Stand up if seated",
|
||||
"rlvsit_","sittp","Sit","Sit on objects >1.5m away",
|
||||
"rlvtp_","tplm","Landmark","Teleport via Landmark",
|
||||
"rlvtp_","tploc","Slurl","Teleport via Slurl/Map",
|
||||
"rlvtp_","tplure","Lure","Teleport via offers",
|
||||
"rlvtp_","showworldmap","Map","View World-map",
|
||||
"rlvtp_","showminimap","Mini-map","View Mini-map",
|
||||
"rlvtp_","showloc","Location","See current location",
|
||||
"rlvtalk_","sendchat","Chat","Ability to Chat",
|
||||
"rlvtalk_","chatshout","Shout","Ability to Shout",
|
||||
"rlvtalk_","chatnormal","Whisper","Forced to Whisper",
|
||||
"rlvtalk_","startim","Start IMs","Initiate IM Sessions",
|
||||
"rlvtalk_","sendim","Send IMs","Respond to IMs",
|
||||
"rlvtalk_","recvim","Get IMs","Receive IMs",
|
||||
"rlvtalk_","recvchat","See Chat","Receive Chat",
|
||||
"rlvtalk_","recvemote","See Emote","Receive Emotes",
|
||||
"rlvtalk_","emote","Emote","Short Emotes if Chat blocked",
|
||||
"rlvtouch_","fartouch","Far","Touch objects >1.5m away",
|
||||
"rlvtouch_","touchworld","World","Touch in-world objects",
|
||||
"rlvtouch_","touchattachself","Self","Touch your attachments",
|
||||
"rlvtouch_","touchattachother","Others","Touch others' attachments",
|
||||
"rlvmisc_","shownames","Names","See Avatar Names",
|
||||
"rlvmisc_","fly","Fly","Ability to Fly",
|
||||
"rlvmisc_","edit","Edit","Edit Objects",
|
||||
"rlvmisc_","rez","Rez","Rez Objects",
|
||||
"rlvmisc_","showinv","Inventory","View Inventory",
|
||||
"rlvmisc_","viewnote","Notecards","View Notecards",
|
||||
"rlvmisc_","viewscript","Scripts","View Scripts",
|
||||
"rlvmisc_","viewtexture","Textures","View Textures",
|
||||
"rlvmisc_","showhovertextworld","Hovertext","See hovertext like titles",
|
||||
"rlvview_","camdistmax:0","Mouselook","Leave Mouselook",
|
||||
"rlvview_","camunlock","Alt Zoom","Alt zoom/pan around",
|
||||
"rlvview_","camdrawalphamax:1","See","See anything at all"
|
||||
];
|
||||
|
||||
//commands take effect immediately and are not stored, like: force sit and force stand
|
||||
//4 strided list of menuname,cmd,prettyname,desc
|
||||
integer g_lIdmtCmds_stride=4;
|
||||
list g_lIdmtCmds = [
|
||||
"rlvsit_","sit","SitNow","Force Sit",
|
||||
"rlvsit_","forceunsit","StandNow","Force Stand"
|
||||
];
|
||||
|
||||
list g_lMenuHelpMap = [
|
||||
"rlvsit_","sit",
|
||||
"rlvtp_","travel",
|
||||
"rlvtalk_","talk",
|
||||
"rlvtouch_","touch",
|
||||
"rlvmisc_","misc",
|
||||
"rlvview_","view\n\nNOTE: This will only work on RLV API v2.9 and greater."
|
||||
];
|
||||
|
||||
string TURNON = "✔";
|
||||
string TURNOFF = "✘";
|
||||
string CTYPE = "collar";
|
||||
|
||||
float g_fScanRange = 20.0;//range we'll scan for scripted objects when doing a force-sit
|
||||
|
||||
// Variables used for sit memory function
|
||||
string g_sSitTarget = "";
|
||||
integer g_iSitMode;
|
||||
integer g_iSitListener;
|
||||
float g_fRestoreDelay = 1.0;
|
||||
integer g_iRestoreCount = 0;
|
||||
float g_fPollDelay = 10.0;
|
||||
|
||||
//MESSAGE MAP
|
||||
//integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
integer COMMAND_RLV_RELAY = 507;
|
||||
|
||||
//integer SEND_IM = 1000; deprecated. each script should send its own IMs now. This is to reduce even the tiny bt of lag caused by having IM slave scripts
|
||||
integer POPUP_HELP = 1001;
|
||||
|
||||
integer LM_SETTING_SAVE = 2000;//scripts send messages on this channel to have settings saved to httpdb
|
||||
//str must be in form of "token=value"
|
||||
integer LM_SETTING_REQUEST = 2001;//when startup, scripts send requests for settings on this channel
|
||||
integer LM_SETTING_RESPONSE = 2002;//the httpdb script will send responses on this channel
|
||||
integer LM_SETTING_DELETE = 2003;//delete token from DB
|
||||
integer LM_SETTING_EMPTY = 2004;//sent by httpdb script when a token has no value in the db
|
||||
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
integer MENUNAME_REMOVE = 3003;
|
||||
|
||||
integer RLV_CMD = 6000;
|
||||
integer RLV_REFRESH = 6001;//RLV plugins should reinstate their restrictions upon receiving this message.
|
||||
integer RLV_CLEAR = 6002;//RLV plugins should clear their restriction lists upon receiving this message.
|
||||
|
||||
integer RLV_OFF = 6100; // send to inform plugins that RLV is disabled now, no message or key needed
|
||||
integer RLV_ON = 6101; // send to inform plugins that RLV is enabled now, no message or key needed
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
integer SENSORDIALOG = -9003;
|
||||
|
||||
string UPMENU = "BACK";
|
||||
|
||||
key g_kWearer;
|
||||
string g_sScript_sit="rlvsit_";
|
||||
|
||||
integer g_iRLVOn=FALSE;
|
||||
|
||||
list g_lMenuIDs;//3-strided list of avatars given menus, their dialog ids, and the name of the menu they were given
|
||||
integer g_iMenuStride = 3;
|
||||
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
Dialog(key kID, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth, string sName) {
|
||||
key kMenuID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kID + "|" + sPrompt + "|" + (string)iPage + "|" + llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kMenuID);
|
||||
|
||||
integer iIndex = llListFindList(g_lMenuIDs, [kID]);
|
||||
if (~iIndex) g_lMenuIDs = llListReplaceList(g_lMenuIDs, [kID, kMenuID, sName], iIndex, iIndex + g_iMenuStride - 1);
|
||||
else g_lMenuIDs += [kID, kMenuID, sName];
|
||||
|
||||
//Debug("Made "+sName+" menu.");
|
||||
}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer) {
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else {
|
||||
if (llGetAgentSize(kID)!=ZERO_VECTOR) llRegionSayTo(kID, 0, sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
Menu(key kID, integer iAuth, string sMenuName) {
|
||||
//Debug("Making menu "+sMenuName);
|
||||
if (!g_iRLVOn) {
|
||||
Notify(kID, "RLV features are now disabled in this " + CTYPE + ". You can enable those in RLV submenu. Opening it now.", FALSE);
|
||||
llMessageLinked(LINK_SET, iAuth, "menu RLV", kID);
|
||||
return;
|
||||
}
|
||||
|
||||
//build prompt showing current settings
|
||||
//make enable/disable buttons
|
||||
integer n;
|
||||
string sPrompt;
|
||||
list lButtons;
|
||||
|
||||
n=llListFindList(g_lMenuHelpMap,[sMenuName]);
|
||||
if (~n){
|
||||
sPrompt="\nwww.opencollar.at/"+llList2String(g_lMenuHelpMap,n+1)+"\n";
|
||||
}
|
||||
|
||||
integer iStop = llGetListLength(g_lRLVcmds);
|
||||
for (n = 0; n < iStop; n+=g_lRLVcmds_stride) {
|
||||
if (llList2String(g_lRLVcmds,n)==sMenuName){
|
||||
//see if there's a setting for this in the settings list
|
||||
string sCmd = llList2String(g_lRLVcmds, n+1);
|
||||
string sPretty = llList2String(g_lRLVcmds, n+2);
|
||||
string desc = llList2String(g_lRLVcmds, n+3);
|
||||
integer iIndex = llListFindList(g_lSettings, [sCmd]);
|
||||
|
||||
if (iIndex == -1) {
|
||||
//if this cmd not set, then give button to enable
|
||||
lButtons += [TURNOFF + " " + sPretty];
|
||||
sPrompt += "\n" + sPretty + " = Enabled (" + desc + ")";
|
||||
} else {
|
||||
//else this cmd is set, then show in prompt, and make button do opposite
|
||||
//get value of setting
|
||||
string sValue = llList2String(g_lSettings, iIndex + 1);
|
||||
if (sValue == "y") {
|
||||
lButtons += [TURNOFF + " " + sPretty];
|
||||
sPrompt += "\n" + sPretty + " = Enabled (" + desc + ")";
|
||||
} else if (sValue == "n") {
|
||||
lButtons += [TURNON + " " + sPretty];
|
||||
sPrompt += "\n" + sPretty + " = Disabled (" + desc + ")";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//add immediate commands
|
||||
iStop = llGetListLength(g_lIdmtCmds);
|
||||
for (n = 0; n < iStop; n = n + g_lIdmtCmds_stride) {
|
||||
if (llList2String(g_lIdmtCmds, n)==sMenuName){
|
||||
lButtons += [llList2String(g_lIdmtCmds, n + 2)];
|
||||
sPrompt += "\n" + llList2String(g_lIdmtCmds, n + 2) + " = " + llList2String(g_lIdmtCmds, n + 3);
|
||||
}
|
||||
}
|
||||
|
||||
//give an Allow All button
|
||||
lButtons += [TURNON + " All"];
|
||||
lButtons += [TURNOFF + " All"];
|
||||
Dialog(kID, sPrompt, lButtons, [UPMENU], 0, iAuth, sMenuName);
|
||||
}
|
||||
|
||||
string GetSetting(string sCategory, string sParam) {
|
||||
integer iIndex = llListFindList(g_lSettings, [sCategory,sParam]);
|
||||
return llList2String(g_lSettings, iIndex + 2);
|
||||
}
|
||||
|
||||
SetSetting(string sCategory, string sOption, string sValue){
|
||||
integer iIndex=llListFindList(g_lSettings,[sCategory,sOption]);
|
||||
if (~iIndex) g_lSettings=llListReplaceList(g_lSettings, [sCategory, sOption, sValue], iIndex, iIndex+2); //there is already a setting, change it
|
||||
else g_lSettings+=[sCategory, sOption, sValue]; //no setting exists.. add one
|
||||
|
||||
if (! ~llListFindList(g_lChangedCategories,[sCategory])) g_lChangedCategories+=sCategory; //if there are no previous changes for thi category, add the category to the list of changed ones
|
||||
}
|
||||
|
||||
UpdateSettings() { //build one big string from the settings list, and send to to the viewer to reset rlv settings
|
||||
//llOwnerSay("TP settings: " + llDumpList2String(lSettings, ","));
|
||||
integer iSettingsLength = llGetListLength(g_lSettings);
|
||||
//Debug("Applying "+(string)(iSettingsLength/3)+" settings");
|
||||
if (iSettingsLength > 0) {
|
||||
list lTempSettings;
|
||||
string sTempRLVSetting;
|
||||
string sTempRLVValue;
|
||||
integer n;
|
||||
list lNewList;
|
||||
for (n = 0; n < iSettingsLength; n = n + 3) {
|
||||
sTempRLVSetting=llList2String(g_lSettings, n+1);
|
||||
sTempRLVValue=llList2String(g_lSettings, n + 2);
|
||||
lNewList += [ sTempRLVSetting+ "=" + sTempRLVValue];
|
||||
if (sTempRLVValue!="y")lTempSettings+=[sTempRLVSetting,sTempRLVValue];
|
||||
if (sTempRLVSetting=="unsit" && sTempRLVValue=="n") { //permission to unsit revoked
|
||||
llSetTimerEvent(1.0); //do timer event now to store name of seat, and start monitoring sitting
|
||||
g_iRestoreCount = 20;
|
||||
g_iSitMode=TRUE;
|
||||
//Debug("Got deny unsit command, re-sit if necessary");
|
||||
}
|
||||
}
|
||||
//output that string to viewer
|
||||
llMessageLinked(LINK_SET, RLV_CMD, llDumpList2String(lNewList, ","), NULL_KEY);
|
||||
}
|
||||
}
|
||||
|
||||
SaveSettings() { //save to DB
|
||||
list lCategorySettings;
|
||||
while (llGetListLength(g_lChangedCategories)){
|
||||
lCategorySettings=[];
|
||||
integer numSettings=llGetListLength(g_lSettings);
|
||||
while (numSettings){ //go through the list of all settings, and pull out any belonging to this category, store in temp list.
|
||||
numSettings -= 3;
|
||||
string sCategory=llList2String(g_lSettings,numSettings);
|
||||
if (sCategory==llList2String(g_lChangedCategories,-1)){
|
||||
lCategorySettings+=[llList2String(g_lSettings,numSettings+1),llList2String(g_lSettings,numSettings+2)];
|
||||
}
|
||||
}
|
||||
if (llGetListLength(lCategorySettings)>0) llMessageLinked(LINK_SET, LM_SETTING_SAVE, llList2String(g_lChangedCategories,-1) + "List=" + llDumpList2String(lCategorySettings, ","), "");
|
||||
else llMessageLinked(LINK_SET, LM_SETTING_DELETE, llList2String(g_lChangedCategories,-1) + "List", "");
|
||||
|
||||
g_lChangedCategories=llDeleteSubList(g_lChangedCategories,-1,-1);
|
||||
}
|
||||
}
|
||||
|
||||
ClearSettings(string _category) { //clear local settings list, delte from settings db
|
||||
integer numSettings=llGetListLength(g_lSettings);
|
||||
while (numSettings){
|
||||
numSettings-=3;
|
||||
string sCategory=llList2String(g_lSettings,numSettings);
|
||||
if (sCategory==_category || _category==""){
|
||||
g_lSettings=llDeleteSubList(g_lSettings,numSettings,numSettings+2);
|
||||
if (! ~llListFindList(g_lChangedCategories,[sCategory])) g_lChangedCategories+=sCategory; //if there are no previous changes for thi category, add the category to the list of changed ones
|
||||
}
|
||||
}
|
||||
SaveSettings();
|
||||
//main RLV script will take care of sending @clear to viewer
|
||||
}
|
||||
|
||||
UserCommand(integer iNum, string sStr, key kID, string fromMenu) {
|
||||
if (iNum > COMMAND_WEARER) return; //nothing for lower than wearer here
|
||||
sStr=llStringTrim(sStr,STRING_TRIM);
|
||||
string sStrLower=llToLower(sStr);
|
||||
|
||||
if (sStrLower == "sitmenu" || sStrLower == "menu sit") Menu(kID, iNum, "rlvsit_");
|
||||
else if (sStrLower == "rlvtp" || sStrLower == "menu travel") Menu(kID, iNum, "rlvtp_");
|
||||
else if (sStrLower == "rlvtalk" || sStrLower == "menu talk") Menu(kID, iNum, "rlvtalk_");
|
||||
else if (sStrLower == "rlvtouch" || sStrLower == "menu touch") Menu(kID, iNum, "rlvtouch_");
|
||||
else if (sStrLower == "rlvmisc" || sStrLower == "menu misc") Menu(kID, iNum, "rlvmisc_");
|
||||
else if (sStrLower == "rlvview" || sStrLower == "menu view") Menu(kID, iNum, "rlvview_");
|
||||
else if (sStrLower == "sitnow") {
|
||||
if (!g_iRLVOn) {
|
||||
Notify(kID, "RLV features are now disabled in this " + CTYPE + ". You can enable those in RLV submenu. Opening it now.", FALSE);
|
||||
llMessageLinked(LINK_SET, iNum, "menu RLV", kID);
|
||||
} else {
|
||||
//give menu of nearby objects that have scripts in them
|
||||
//this assumes that all the objects you may want to force your sub to sit on
|
||||
//have scripts in them
|
||||
string sName="FindSeatMenu";
|
||||
key kMenuID = llGenerateKey();
|
||||
llMessageLinked(LINK_THIS, SENSORDIALOG, (string)kID + "|Pick the object on which you want the sub to sit. If it's not in the list, have the sub move closer and try again.\n|0|``"+(string)(SCRIPTED|PASSIVE)+"`"+(string)g_fScanRange+"`"+(string)PI + "|BACK|" + (string)iNum, kMenuID);
|
||||
|
||||
integer iIndex = llListFindList(g_lMenuIDs, [kID]);
|
||||
if (~iIndex) g_lMenuIDs = llListReplaceList(g_lMenuIDs, [kID, kMenuID, sName], iIndex, iIndex + g_iMenuStride - 1); //we've alread given a menu to this user. overwrite their entry
|
||||
else g_lMenuIDs += [kID, kMenuID, sName]; //we've not already given this user a menu. append to list
|
||||
}
|
||||
} else {
|
||||
//do simple pass through for chat commands
|
||||
//since more than one RLV command can come on the same line, loop through them
|
||||
list lItems = llParseString2List(sStr, [","], []);
|
||||
integer n;
|
||||
integer iStop = llGetListLength(lItems);
|
||||
list lChange; //list containing the categories with changed settings
|
||||
for (n = 0; n < iStop; n++) {
|
||||
//split off the parameters (anything after a : or =)
|
||||
//and see if the thing being set concerns us
|
||||
string sThisItem = llList2String(lItems, n);
|
||||
string sBehavior = llList2String(llParseString2List(sThisItem, ["="], []), 0);
|
||||
integer iBehaviourIndex=llListFindList(g_lRLVcmds, [sBehavior]);
|
||||
|
||||
if (sStr == "standnow") {
|
||||
if (iNum == COMMAND_WEARER) llOwnerSay("Sorry, but RLV commands may only be given by owner, secowner, or group (if set).");
|
||||
else {
|
||||
sStr = "unsit=force";
|
||||
if (GetSetting("rlvsit_","unsit")=="n") sStr = "unsit=y,unsit=force,unsit=n";
|
||||
g_sSitTarget="";
|
||||
//Debug("Removing tracked sit target");
|
||||
llMessageLinked(LINK_SET, RLV_CMD, sStr, NULL_KEY);
|
||||
}
|
||||
}
|
||||
else if (~iBehaviourIndex) {
|
||||
string sCategory=llList2String(g_lRLVcmds,iBehaviourIndex-1);
|
||||
if (llGetSubString(sCategory,-1,-1)=="_"){ //
|
||||
//Debug(sBehavior+" is a behavior that we handle, from the "+sCategory+" category.");
|
||||
//filter commands from wearer, if wearer is not owner
|
||||
if (iNum == COMMAND_WEARER) llOwnerSay("Sorry, but RLV commands may only be given by owner, secowner, or group (if set).");
|
||||
else {
|
||||
string sOption = llList2String(llParseString2List(sThisItem, ["="], []), 0);
|
||||
string sValue = llList2String(llParseString2List(sThisItem, ["="], []), 1);
|
||||
integer iIndex = llListFindList(g_lSettings, [sCategory,sOption]);
|
||||
SetSetting(sCategory, sOption, sValue);
|
||||
}
|
||||
}
|
||||
} else if (~llListFindList(g_lIdmtCmds,[llList2String(llParseString2List(sThisItem,[":","="],[]),0)])) {
|
||||
//Debug(sBehavior+" is an immediate command that we handle");
|
||||
//filter commands from wearer, if wearer is not owner
|
||||
if (iNum == COMMAND_WEARER) llOwnerSay("Sorry, but RLV commands may only be given by owner, secowner, or group (if set).");
|
||||
else llMessageLinked(LINK_SET, RLV_CMD, sStr, NULL_KEY);
|
||||
}
|
||||
else if (sBehavior == "clear" && iNum == COMMAND_OWNER) ClearSettings("");
|
||||
//else Debug("We don't handle "+sBehavior);
|
||||
}
|
||||
|
||||
if (llGetListLength(g_lChangedCategories)) {
|
||||
UpdateSettings();
|
||||
SaveSettings();
|
||||
}
|
||||
if (fromMenu!="") Menu(kID, iNum, fromMenu);
|
||||
}
|
||||
}
|
||||
|
||||
default {
|
||||
on_rez(integer iParam) {
|
||||
llSetTimerEvent(0.0); //timer will be called by recieved settings as necessary
|
||||
}
|
||||
|
||||
state_entry() {
|
||||
//llSetMemoryLimit(65536); //this script needs to be profiled, and its memory limited
|
||||
g_kWearer = llGetOwner();
|
||||
//llSetTimerEvent(1.0); //timer will be called by recieved settings as necessary
|
||||
//Debug("Starting");
|
||||
}
|
||||
|
||||
timer() {
|
||||
if (!g_iRLVOn) return; // Nothing to do if RLV isn't enabled
|
||||
if (GetSetting("rlvsit_","unsit")!="n") { //we are allowed to stand, so switch off timer and return
|
||||
llSetTimerEvent(0.0);
|
||||
g_sSitTarget = "";
|
||||
//Debug("we are allowed to stand, so switch off timer, remove tracked sit target");
|
||||
} else { //banned from standing up
|
||||
|
||||
key kSitKey = llList2Key(llGetObjectDetails(g_kWearer, [OBJECT_ROOT]), 0);
|
||||
|
||||
if (g_iSitMode) { // Restore mode. Find the seat and sit in it
|
||||
llSetTimerEvent(g_fRestoreDelay);
|
||||
if (g_sSitTarget == "") { //If we have no seat, go back to monitoring
|
||||
g_iSitMode = 0;
|
||||
//Debug("You weren't sitting on anything");
|
||||
} else if ((string)kSitKey == g_sSitTarget) { //sat in the right seat, go back to monitoring
|
||||
g_iSitMode = 0;
|
||||
//Debug("You're in the right seat, go back to monitoring");
|
||||
} else if (g_iRestoreCount > 0) { // Count down retries...
|
||||
llOwnerSay("You should be sitting on " + llKey2Name((key)g_sSitTarget));
|
||||
g_iRestoreCount--;
|
||||
string sSittpValue = GetSetting("rlvsit_","sittp"); // Save the value of sittp as we need to temporarily enable it for forcesit
|
||||
llMessageLinked(LINK_THIS, RLV_CMD, "sittp=y,sit:" + g_sSitTarget + "=force,sittp=" + sSittpValue, NULL_KEY);
|
||||
} else {
|
||||
llOwnerSay("Couldn't re-seat you on " + llKey2Name((key)g_sSitTarget));
|
||||
//Debug("Removing tracked sit target");
|
||||
g_iSitMode = 0;
|
||||
g_sSitTarget = "";
|
||||
}
|
||||
} else { //monitoring the sub's sitting activity
|
||||
llSetTimerEvent(g_fPollDelay);
|
||||
if (kSitKey == g_kWearer) { //store "not sitting down"
|
||||
g_sSitTarget = "";
|
||||
//Debug("Not sitting down");
|
||||
} else {
|
||||
g_sSitTarget = (string)kSitKey; //store ID of your seat.
|
||||
//Debug("Sitting on " + llKey2Name((key)g_sSitTarget));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID) {
|
||||
if (iNum == MENUNAME_REQUEST && sStr == g_sParentMenu) {
|
||||
llMessageLinked(LINK_SET, MENUNAME_RESPONSE, g_sParentMenu + "|Sit", "");
|
||||
llMessageLinked(LINK_SET, MENUNAME_RESPONSE, g_sParentMenu + "|Travel", "");
|
||||
llMessageLinked(LINK_SET, MENUNAME_RESPONSE, g_sParentMenu + "|Talk", "");
|
||||
llMessageLinked(LINK_SET, MENUNAME_RESPONSE, g_sParentMenu + "|Touch", "");
|
||||
llMessageLinked(LINK_SET, MENUNAME_RESPONSE, g_sParentMenu + "|Misc", "");
|
||||
llMessageLinked(LINK_SET, MENUNAME_RESPONSE, g_sParentMenu + "|View", "");
|
||||
}
|
||||
else if (iNum >= COMMAND_OWNER && iNum <= COMMAND_EVERYONE) UserCommand(iNum, sStr, kID, "");
|
||||
else if (iNum == LM_SETTING_RESPONSE) {
|
||||
//this is tricky since our db value contains equals signs
|
||||
//split string on both comma and equals sign
|
||||
//first see if this is the token we care about
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
integer iChange = FALSE;
|
||||
|
||||
string category=llList2String(llParseString2List(sToken,["_"],[]),0)+"_";
|
||||
if (~llListFindList(g_lMenuHelpMap,[category])){
|
||||
//Debug("got settings token: "+category);
|
||||
sToken=llList2String(llParseString2List(sToken,["_"],[]),1);
|
||||
if (sToken == "List") {
|
||||
//throw away first element
|
||||
//everything else is real settings (should be even number)
|
||||
ClearSettings(category);
|
||||
list lNewSettings = llParseString2List(sValue, [","], []);
|
||||
while (llGetListLength(lNewSettings)){
|
||||
list lTempSettings=[category,llList2String(lNewSettings,-2),llList2String(lNewSettings,-1)];
|
||||
//Debug(llDumpList2String(lTempSettings," - "));
|
||||
g_lSettings+=lTempSettings;
|
||||
lNewSettings=llDeleteSubList(lNewSettings,-2,-1);
|
||||
}
|
||||
UpdateSettings();
|
||||
}
|
||||
}
|
||||
else if (sToken == "Global_CType") CTYPE = sValue;
|
||||
//else Debug("not my token: "+category);
|
||||
} else if (iNum == RLV_REFRESH) { //rlvmain just started up. Tell it about our current restrictions
|
||||
g_iRLVOn = TRUE;
|
||||
UpdateSettings();
|
||||
}
|
||||
else if (iNum == RLV_CLEAR) ClearSettings(""); //clear db and local settings list
|
||||
else if (iNum == RLV_OFF) g_iRLVOn=FALSE; // rlvoff -> we have to turn the menu off too
|
||||
else if (iNum == RLV_ON) g_iRLVOn=TRUE; // rlvon -> we have to turn the menu on again
|
||||
else if (iNum == DIALOG_RESPONSE) {
|
||||
integer iMenuIndex = llListFindList(g_lMenuIDs, [kID]);
|
||||
if (~iMenuIndex) { //it's one of our menus
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
|
||||
//remove stride from g_lMenuIDs
|
||||
//we have to subtract from the index because the dialog id comes in the middle of the stride
|
||||
string sMenu=llList2String(g_lMenuIDs, iMenuIndex + 1);
|
||||
g_lMenuIDs = llDeleteSubList(g_lMenuIDs, iMenuIndex - 1, iMenuIndex - 2 + g_iMenuStride);
|
||||
|
||||
if (sMenu == "FindSeatMenu") {
|
||||
if (sMessage==UPMENU) Menu(kAv, iAuth, "rlvsit_");
|
||||
else if ((key) sMessage) {
|
||||
//Debug("Sending \""+"sit:" + sMessage + "=force\" to "+(string)kAv+" with auth "+(string)iAuth);
|
||||
UserCommand(iAuth, "sit:" + sMessage + "=force", kAv, "rlvsit_");
|
||||
}
|
||||
} else {
|
||||
if (sMessage == UPMENU) llMessageLinked(LINK_SET, iAuth, "menu " + g_sParentMenu, kAv);
|
||||
else if (sMessage == "SitNow") UserCommand(iAuth, "sitnow", kAv, "rlvsit_");
|
||||
else if (sMessage == "StandNow") UserCommand(iAuth, "standnow", kAv, "rlvsit_");
|
||||
else {
|
||||
//we got a command to enable or disable something, like "Enable LM"
|
||||
//get the actual command name by looking up the pretty name from the message
|
||||
|
||||
list lParams = llParseString2List(sMessage, [" "], []);
|
||||
string sSwitch = llList2String(lParams, 0);
|
||||
string sCmd = llDumpList2String(llDeleteSubList(lParams,0,0)," ");
|
||||
integer iIndex = llListFindList(g_lRLVcmds, [sCmd]);
|
||||
if (sCmd == "All") {
|
||||
//handle the "Allow All" and "Forbid All" commands
|
||||
string ONOFF;
|
||||
//decide whether we need to switch to "y" or "n"
|
||||
if (sSwitch == TURNOFF) ONOFF = "n"; //enable all functions (ie, remove all restrictions
|
||||
else if (sSwitch == TURNON) ONOFF = "y";
|
||||
|
||||
//loop through rlvcmds to create list
|
||||
string sOut;
|
||||
integer n;
|
||||
integer iStop = llGetListLength(g_lRLVcmds);
|
||||
for (n = 0; n < iStop; n+=g_lRLVcmds_stride) {
|
||||
if (llList2String(g_lRLVcmds,n)==sMenu){
|
||||
if (sOut != "") sOut += ","; //prefix all but the first value with a comma, so we have a comma-separated list
|
||||
sOut += llList2String(g_lRLVcmds, n+1) + "=" + ONOFF;
|
||||
}
|
||||
}
|
||||
UserCommand(iAuth, sOut, kAv, sMenu);
|
||||
} else if ((~iIndex) && llList2String(g_lRLVcmds,iIndex-2)==sMenu) {
|
||||
string sOut = llList2String(g_lRLVcmds, iIndex-1);
|
||||
sOut += "=";
|
||||
if (sSwitch == TURNON) sOut += "y";
|
||||
else if (sSwitch == TURNOFF) sOut += "n";
|
||||
//send rlv command out through auth system as though it were a chat command, just to make sure person who said it has proper authority
|
||||
UserCommand(iAuth, sOut, kAv, sMenu);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (iNum == DIALOG_TIMEOUT) {
|
||||
integer iMenuIndex = llListFindList(g_lMenuIDs, [kID]);
|
||||
//remove stride from g_lMenuIDs
|
||||
//we have to subtract from the index because the dialog id comes in the middle of the stride
|
||||
g_lMenuIDs = llDeleteSubList(g_lMenuIDs, iMenuIndex - 1, iMenuIndex - 2 + g_iMenuStride);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
changed(integer iChange)
|
||||
{
|
||||
if (iChange & CHANGED_REGION) {
|
||||
if (g_iProfiled){
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
@@ -1,975 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - rlvundress //
|
||||
// version 3.988 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//gives menus for clothing and attachment, stripping and locking
|
||||
//Satomi Ahn, Medea Destiny
|
||||
|
||||
string g_sSubMenu = "Un/Dress";
|
||||
string g_sParentMenu = "RLV";
|
||||
|
||||
//list g_lChildren = ["Rem Clothing"]; //,"LockClothing","LockAttachment"];//,"LockClothing","UnlockClothing"];
|
||||
list g_lSubMenus= [];
|
||||
string SELECT_CURRENT = "*InFolder";
|
||||
string SELECT_RECURS= "*Recursively";
|
||||
list g_lRLVcmds = ["attach","detach","remoutfit", "addoutfit","remattach","addattach"];
|
||||
|
||||
|
||||
integer g_iSmartStrip=FALSE; //use @detachallthis isntead of remove
|
||||
string SMARTON="☐ SmartStrip";
|
||||
string SMARTOFF = "☒ SmartStrip";
|
||||
//string SMARTHELP = "Help";
|
||||
string g_sSmartHelpCard = "OpenCollar Guide";
|
||||
string g_sSmartToken="smartstrip";
|
||||
//key g_kSmartUser; //we store the last person to select if they are not wearer/owner, so that it can be switched on for current user without changing setting.
|
||||
|
||||
|
||||
list g_lSettings;//2-strided list in form of [option, param]
|
||||
string CTYPE = "collar";
|
||||
string WEARERNAME;
|
||||
|
||||
list LOCK_CLOTH_POINTS = [
|
||||
"Gloves",
|
||||
"Jacket",
|
||||
"Pants",
|
||||
"Shirt",
|
||||
"Shoes",
|
||||
"Skirt",
|
||||
"Socks",
|
||||
"Underpants",
|
||||
"Undershirt",
|
||||
"Skin",
|
||||
"Eyes",
|
||||
"Hair",
|
||||
"Shape",
|
||||
"Alpha",
|
||||
"Tattoo",
|
||||
"Physics"
|
||||
];
|
||||
|
||||
|
||||
list DETACH_CLOTH_POINTS = [
|
||||
"Gloves",
|
||||
"Jacket",
|
||||
"Pants",
|
||||
"Shirt",
|
||||
"Shoes",
|
||||
"Skirt",
|
||||
"Socks",
|
||||
"Underpants",
|
||||
"Undershirt",
|
||||
"xx", //"skin", those are not to be detached, so we ignore them later
|
||||
"xx", //"eyes", those are not to be detached, so we ignore them later
|
||||
"xx", //"hair", those are not to be detached, so we ignore them later
|
||||
"xx", //"shape", those are not to be detached, so we ignore them later
|
||||
"Alpha",
|
||||
"Tattoo",
|
||||
"Physics"
|
||||
];
|
||||
|
||||
list ATTACH_POINTS = [//these are ordered so that their indices in the list correspond to the numbers returned by llGetAttached
|
||||
"None",
|
||||
"Chest",
|
||||
"Skull",
|
||||
"Left Shoulder",
|
||||
"Right Shoulder",
|
||||
"Left Hand",
|
||||
"Right Hand",
|
||||
"Left Foot",
|
||||
"Right Foot",
|
||||
"Spine",
|
||||
"Pelvis",
|
||||
"Mouth",
|
||||
"Chin",
|
||||
"Left Ear",
|
||||
"Right Ear",
|
||||
"Left Eyeball",
|
||||
"Right Eyeball",
|
||||
"Nose",
|
||||
"R Upper Arm",
|
||||
"R Forearm",
|
||||
"L Upper Arm",
|
||||
"L Forearm",
|
||||
"Right Hip",
|
||||
"R Upper Leg",
|
||||
"R Lower Leg",
|
||||
"Left Hip",
|
||||
"L Upper Leg",
|
||||
"L Lower Leg",
|
||||
"Stomach",
|
||||
"Left Pec",
|
||||
"Right Pec",
|
||||
"Center 2",
|
||||
"Top Right",
|
||||
"Top",
|
||||
"Top Left",
|
||||
"Center",
|
||||
"Bottom Left",
|
||||
"Bottom",
|
||||
"Bottom Right",
|
||||
"Neck",
|
||||
"Avatar Center"
|
||||
];
|
||||
|
||||
//MESSAGE MAP
|
||||
//integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
|
||||
integer POPUP_HELP = 1001;
|
||||
|
||||
integer LM_SETTING_SAVE = 2000;//scripts send messages on this channel to have settings saved to httpdb
|
||||
//str must be in form of "token=value"
|
||||
integer LM_SETTING_REQUEST = 2001;//when startup, scripts send requests for settings on this channel
|
||||
integer LM_SETTING_RESPONSE = 2002;//the httpdb script will send responses on this channel
|
||||
integer LM_SETTING_DELETE = 2003;//delete token from DB
|
||||
integer LM_SETTING_EMPTY = 2004;//sent by httpdb script when a token has no value in the db
|
||||
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
integer MENUNAME_REMOVE = 3003;
|
||||
|
||||
integer RLV_CMD = 6000;
|
||||
integer RLV_REFRESH = 6001;//RLV plugins should reinstate their restrictions upon receiving this message.
|
||||
integer RLV_CLEAR = 6002;//RLV plugins should clear their restriction lists upon receiving this message.
|
||||
integer RLV_VERSION = 6003; //RLV Plugins can recieve the used rl viewer version upon receiving this message..
|
||||
|
||||
integer RLV_OFF = 6100; // send to inform plugins that RLV is disabled now, no message or key needed
|
||||
integer RLV_ON = 6101; // send to inform plugins that RLV is enabled now, no message or key needed
|
||||
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
|
||||
string UPMENU = "BACK";
|
||||
|
||||
string ALL = " ALL";
|
||||
string TICKED = "☒ ";
|
||||
string UNTICKED = "☐ ";
|
||||
|
||||
//variables for storing our various dialog ids
|
||||
key g_kMainID;
|
||||
key g_kClothID;
|
||||
key g_kAttachID;
|
||||
key g_kLockID;
|
||||
key g_kLockAttachID;
|
||||
|
||||
integer g_iRLVTimeOut = 60;
|
||||
|
||||
integer g_iClothRLV = 78465;
|
||||
integer g_iAttachRLV = 78466;
|
||||
integer g_iListener;
|
||||
key g_kMenuUser; // id of the avatar who will get the next menu after asynchronous response from RLV
|
||||
integer g_iMenuAuth; // auth level of that user
|
||||
|
||||
integer g_iRLVOn = FALSE;
|
||||
|
||||
list g_lLockedItems; // list of locked clothes
|
||||
list g_lLockedAttach; // list of locked attachmemts
|
||||
|
||||
key g_kWearer;
|
||||
string g_sScript;
|
||||
integer g_iAllLocked = 0; //1=all clothes are locked on
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
key Dialog(key kRCPT, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth)
|
||||
{
|
||||
key kID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kRCPT + "|" + sPrompt + "|" + (string)iPage + "|" + llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kID);
|
||||
//Debug("Made menu.");
|
||||
return kID;
|
||||
}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer)
|
||||
{
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else
|
||||
{
|
||||
if (llGetAgentSize(kID)!=ZERO_VECTOR) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
MainMenu(key kID, integer iAuth)
|
||||
{
|
||||
//string sPrompt = "\n\nNote: Keep in mind that mesh clothing is worn as attachments and in most cases together with alpha masks which are worn as clothing layers. It is recommended to explore the possibilities of #RLV Folders for a smooth un/dressing experience.\n";
|
||||
string sPrompt = "\nwww.opencollar.at/undress\n\nNOTE: Many clothes, and almost all mesh, mixes layers and attachments. With a properly set up #RLV folder";
|
||||
//sPrompt+=" (click "+SMARTHELP+" for info)";
|
||||
sPrompt+=", the SmartStrip option will allow these to be removed automatically. Otherwise, it is recommended to explore the #RLV Folders menu for a smoother un/dressing experience.";
|
||||
list lButtons;
|
||||
|
||||
if (g_iAllLocked) //are all clothing and attachments locked?
|
||||
{
|
||||
sPrompt += "\n all clothes and attachments are currently locked.";
|
||||
//skip the LockClothing and the LockAttachment buttons
|
||||
lButtons += ["☒ Lock All"];
|
||||
}
|
||||
else
|
||||
{
|
||||
lButtons += ["☐ Lock All"];
|
||||
lButtons += ["Rem Clothing"];
|
||||
lButtons += ["Lock Clothing"];
|
||||
|
||||
}
|
||||
if(g_iSmartStrip==TRUE)
|
||||
{
|
||||
//sPrompt += "\nSmartStrip is on.";
|
||||
lButtons += SMARTOFF;
|
||||
}
|
||||
else
|
||||
{
|
||||
lButtons += SMARTON;
|
||||
//sPrompt += "\nSmartStrip is off.";
|
||||
}
|
||||
lButtons += ["Rem Attachment","Lock Attachment"];
|
||||
//lButtons+=SMARTHELP;
|
||||
g_kMainID = Dialog(kID, sPrompt, lButtons+g_lSubMenus, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
QueryClothing(key kAv, integer iAuth)
|
||||
{ //open listener
|
||||
g_iListener = llListen(g_iClothRLV, "", g_kWearer, "");
|
||||
//start timer
|
||||
llSetTimerEvent(g_iRLVTimeOut);
|
||||
//send rlvcmd
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "getoutfit=" + (string)g_iClothRLV, NULL_KEY);
|
||||
g_kMenuUser = kAv;
|
||||
g_iMenuAuth = iAuth;
|
||||
}
|
||||
|
||||
ClothingMenu(key kID, string sStr, integer iAuth)
|
||||
{
|
||||
//str looks like 0110100001111
|
||||
//loop through CLOTH_POINTS, look at chaClothingr of str for each
|
||||
//for each 1, add capitalized button
|
||||
string sPrompt = "Select an article of clothing to remove.";
|
||||
list lButtons = [];
|
||||
integer iStop = llGetListLength(DETACH_CLOTH_POINTS);
|
||||
integer n;
|
||||
for (n = 0; n < iStop; n++)
|
||||
{
|
||||
integer iWorn = (integer)llGetSubString(sStr, n, n);
|
||||
list item = [llList2String(DETACH_CLOTH_POINTS, n)];
|
||||
if (iWorn && llListFindList(g_lLockedItems,item) == -1)
|
||||
{
|
||||
if (llList2String(item,0)!="xx")
|
||||
lButtons += item;
|
||||
}
|
||||
}
|
||||
g_kClothID = Dialog(kID, sPrompt, lButtons, ["Attachments", UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
LockMenu(key kID, integer iAuth)
|
||||
{
|
||||
string sPrompt = "Select an article of clothing to un/lock.";
|
||||
list lButtons;
|
||||
if (llListFindList(g_lLockedItems,[ALL]) == -1)
|
||||
lButtons += [UNTICKED+ALL];
|
||||
else lButtons += [TICKED+ALL];
|
||||
|
||||
integer iStop = llGetListLength(LOCK_CLOTH_POINTS);
|
||||
integer n;
|
||||
for (n = 0; n < iStop; n++)
|
||||
{
|
||||
string sCloth = llList2String(LOCK_CLOTH_POINTS, n);
|
||||
if (llListFindList(g_lLockedItems,[sCloth]) == -1)
|
||||
lButtons += [UNTICKED+sCloth];
|
||||
else lButtons += [TICKED+sCloth];
|
||||
}
|
||||
g_kLockID = Dialog(kID, sPrompt, lButtons, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
QueryAttachments(key kAv, integer iAuth)
|
||||
{ //open listener
|
||||
g_iListener = llListen(g_iAttachRLV, "", g_kWearer, "");
|
||||
//start timer
|
||||
llSetTimerEvent(g_iRLVTimeOut);
|
||||
//send rlvcmd
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "getattach=" + (string)g_iAttachRLV, NULL_KEY);
|
||||
g_kMenuUser = kAv;
|
||||
g_iMenuAuth = iAuth;
|
||||
}
|
||||
|
||||
LockAttachmentMenu(key kID, integer iAuth)
|
||||
{
|
||||
string sPrompt = "Select an attachment to un/lock.";
|
||||
list lButtons;
|
||||
|
||||
//put tick marks next to locked things
|
||||
integer iStop = llGetListLength(ATTACH_POINTS);
|
||||
integer n;
|
||||
for (n = 1; n < iStop; n++) //starting at 1 as "None" cannot be locked
|
||||
{
|
||||
string sAttach = llList2String(ATTACH_POINTS, n);
|
||||
if (llListFindList(g_lLockedAttach,[sAttach]) == -1)
|
||||
lButtons += [UNTICKED+sAttach];
|
||||
else lButtons += [TICKED+sAttach];
|
||||
}
|
||||
g_kLockAttachID = Dialog(kID, sPrompt, lButtons, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
DetachMenu(key kID, string sStr, integer iAuth)
|
||||
{
|
||||
|
||||
//remember not to add button for current object
|
||||
//str looks like 0110100001111
|
||||
//loop through CLOTH_POINTS, look at char of str for each
|
||||
//for each 1, add capitalized button
|
||||
string sPrompt = "Select an attachment to remove.";
|
||||
|
||||
//prevent detaching the collar itself
|
||||
integer myattachpoint = llGetAttached();
|
||||
|
||||
list lButtons;
|
||||
integer iStop = llGetListLength(ATTACH_POINTS);
|
||||
integer n;
|
||||
for (n = 0; n < iStop; n++)
|
||||
{
|
||||
if (n != myattachpoint)
|
||||
{
|
||||
integer iWorn = (integer)llGetSubString(sStr, n, n);
|
||||
if (iWorn)
|
||||
{
|
||||
lButtons += [llList2String(ATTACH_POINTS, n)];
|
||||
}
|
||||
}
|
||||
}
|
||||
g_kAttachID = Dialog(kID, sPrompt, lButtons, ["Clothing", UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
UpdateSettings()
|
||||
{ //build one big string from the settings list
|
||||
//llOwnerSay("TP settings: " + llDumpList2String(g_lSettings, ","));
|
||||
integer iSettingsLength = llGetListLength(g_lSettings);
|
||||
if (iSettingsLength > 0)
|
||||
{
|
||||
g_lLockedItems=[];
|
||||
g_lLockedAttach=[];
|
||||
integer n;
|
||||
list lNewList;
|
||||
for (n = 0; n < iSettingsLength; n = n + 2)
|
||||
{
|
||||
list sOption=llParseString2List(llList2String(g_lSettings, n),[":"],[]);
|
||||
string sValue=llList2String(g_lSettings, n + 1);
|
||||
//Debug(llList2String(g_lSettings, n) + "=" + sValue);
|
||||
lNewList += [llList2String(g_lSettings, n) + "=" + llList2String(g_lSettings, n + 1)];
|
||||
if (llGetListLength(sOption)==1 && llList2String(sOption,0)=="remoutfit")
|
||||
{
|
||||
if (!~llListFindList(g_lLockedItems, [ALL])) g_lLockedItems += [ALL];
|
||||
}
|
||||
else if (llGetListLength(sOption)==2 && ~llSubStringIndex(llList2String(sOption, 0), "outfit"))
|
||||
{
|
||||
if (!~llListFindList(g_lLockedItems, [llList2String(sOption, 1)]))
|
||||
g_lLockedItems += [llList2String(sOption,1)];
|
||||
}
|
||||
else if (llGetListLength(sOption)==2 && ~llSubStringIndex(llList2String(sOption, 0), "tach"))
|
||||
{
|
||||
if (!~llListFindList(g_lLockedAttach, [llList2String(sOption,1)]))
|
||||
g_lLockedAttach += [llList2String(sOption,1)];
|
||||
}
|
||||
}
|
||||
//output that string to viewer
|
||||
llMessageLinked(LINK_SET, RLV_CMD, llDumpList2String(lNewList, ","), NULL_KEY);
|
||||
//Debug("Loaded locks: Cloth- " + llList2CSV(g_lLockedItems) + ": Attach- " + llList2CSV(g_lLockedAttach));
|
||||
}
|
||||
}
|
||||
|
||||
ClearSettings()
|
||||
{ //clear settings list
|
||||
g_lSettings = [];
|
||||
//clear the list of locked items
|
||||
g_lLockedItems = [];
|
||||
g_lLockedAttach=[];
|
||||
SaveLockAllFlag(0);
|
||||
//remove tpsettings from DB
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, g_sScript + "List", "");
|
||||
//main RLV script will take care of sending @clear to viewer
|
||||
}
|
||||
|
||||
SaveLockAllFlag(integer iSetting)
|
||||
{
|
||||
if (g_iAllLocked == iSetting)
|
||||
{
|
||||
return;
|
||||
}
|
||||
g_iAllLocked = iSetting;
|
||||
if(iSetting > 0)
|
||||
{
|
||||
//save the flag to the database
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "LockAll=Y", "");
|
||||
}
|
||||
else
|
||||
{
|
||||
//delete the flag from the database
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, g_sScript + "LockAll", "");
|
||||
}
|
||||
}
|
||||
|
||||
DoLockAll(key kID)
|
||||
{
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "addattach=n,remattach=n,remoutfit=n,addoutfit=n", NULL_KEY);
|
||||
}
|
||||
|
||||
DoUnlockAll(key kID)
|
||||
{
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "addattach=y,remattach=y,remoutfit=y,addoutfit=y", NULL_KEY);
|
||||
}
|
||||
|
||||
// returns TRUE if eligible (AUTHED link message number)
|
||||
integer UserCommand(integer iNum, string sStr, key kID) // here iNum: auth value, sStr: user command, kID: avatar id
|
||||
{
|
||||
if (iNum == COMMAND_EVERYONE) return TRUE; // No command for people with no privilege in this plugin.
|
||||
else if (iNum > COMMAND_EVERYONE || iNum < COMMAND_OWNER) return FALSE; // sanity check
|
||||
list lParams = llParseString2List(sStr, [":", "=", " "], []);
|
||||
string sCommand = llList2String(lParams, 0);
|
||||
//Debug(sStr + " ## " + sCommand);
|
||||
if (sStr == "menu " + g_sSubMenu)
|
||||
{//give this plugin's menu to kID
|
||||
MainMenu(kID, iNum);
|
||||
}
|
||||
else if (sCommand == "smartstrip")
|
||||
{
|
||||
if(iNum==COMMAND_OWNER || iNum == COMMAND_WEARER)
|
||||
{
|
||||
|
||||
string sOpt=llList2String(lParams,1);
|
||||
if(sOpt == "on")
|
||||
{
|
||||
g_iSmartStrip=TRUE;
|
||||
llMessageLinked(LINK_SET,LM_SETTING_SAVE, g_sScript + g_sSmartToken +"=1","");
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
g_iSmartStrip=FALSE;
|
||||
llMessageLinked(LINK_SET,LM_SETTING_DELETE, g_sScript + g_sSmartToken,"");
|
||||
|
||||
}
|
||||
}
|
||||
else Notify(kID,"This requires a properly set-up outfit, only wearer or owner can turn it on.", FALSE);
|
||||
}
|
||||
else if (sCommand == "strip")
|
||||
{
|
||||
string sOpt=llList2String(lParams,1);
|
||||
if(sOpt=="all")
|
||||
{
|
||||
|
||||
if(g_iSmartStrip==TRUE)
|
||||
{
|
||||
integer x=14; //let's not strip tattoos and physics layers;
|
||||
while(x)
|
||||
{
|
||||
if(x==13) x=9; //skip hair,skin,shape,eyes
|
||||
--x;
|
||||
string sItem=llToLower(llList2String(DETACH_CLOTH_POINTS,x));
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "detachallthis:"+ sItem +"=force",NULL_KEY);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "remoutfit=force", NULL_KEY);
|
||||
return TRUE;
|
||||
}
|
||||
sOpt = llToLower(sOpt);
|
||||
string test=llToUpper(llGetSubString(sOpt,0,0))+llGetSubString(sOpt,1,-1);
|
||||
if(llListFindList(DETACH_CLOTH_POINTS,[test])==-1) return FALSE;
|
||||
//send the RLV command to remove it.
|
||||
if(g_iSmartStrip==TRUE) llMessageLinked(LINK_SET, RLV_CMD , "detachallthis:" + sOpt + "=force", NULL_KEY);
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "remoutfit:" + sOpt + "=force", NULL_KEY); //yes, this isn't an else. We do it in case the item isn't in #RLV.
|
||||
}
|
||||
|
||||
else if (llListFindList(g_lRLVcmds, [sCommand]) != -1)
|
||||
{ //we've received an RLV command that we control. only execute if not sub
|
||||
if (iNum == COMMAND_WEARER)
|
||||
{
|
||||
llOwnerSay("Sorry, but RLV commands may only be given by owner, secowner, or group (if set).");
|
||||
}
|
||||
else
|
||||
{
|
||||
llMessageLinked(LINK_SET, RLV_CMD, sStr, NULL_KEY);
|
||||
string sOption = llList2String(llParseString2List(sStr, ["="], []), 0);
|
||||
string sParam = llList2String(llParseString2List(sStr, ["="], []), 1);
|
||||
integer iIndex = llListFindList(g_lSettings, [sOption]);
|
||||
string opt1 = llList2String(llParseString2List(sOption, [":"], []), 0);
|
||||
string opt2 = llList2String(llParseString2List(sOption, [":"], []), 1);
|
||||
if (sParam == "n")
|
||||
{
|
||||
if (iIndex == -1)
|
||||
{ //we don't alread have this exact setting. add it
|
||||
g_lSettings += [sOption, sParam];
|
||||
}
|
||||
else
|
||||
{ //we already have a setting for this option. update it.
|
||||
g_lSettings = llListReplaceList(g_lSettings, [sOption, sParam], iIndex, iIndex + 1);
|
||||
}
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "List=" + llDumpList2String(g_lSettings, ","), "");
|
||||
}
|
||||
else if (sParam == "y")
|
||||
{
|
||||
if (iIndex != -1)
|
||||
{ //we already have a setting for this option. remove it.
|
||||
g_lSettings = llDeleteSubList(g_lSettings, iIndex, iIndex + 1);
|
||||
}
|
||||
if (llGetListLength(g_lSettings)>0)
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + "List=" + llDumpList2String(g_lSettings, ","), "");
|
||||
else
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, g_sScript + "List", "");
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (sStr == "lockclothingmenu")
|
||||
{
|
||||
if (!g_iRLVOn)
|
||||
{
|
||||
Notify(kID, "RLV features are now disabled in this " + CTYPE + ". You can enable those in RLV submenu. Opening it now.", FALSE);
|
||||
llMessageLinked(LINK_SET, iNum, "menu RLV", kID);
|
||||
return TRUE;
|
||||
}
|
||||
LockMenu(kID, iNum);
|
||||
}
|
||||
else if (sStr == "lockattachmentmenu")
|
||||
{
|
||||
if (!g_iRLVOn)
|
||||
{
|
||||
Notify(kID, "RLV features are now disabled in this " + CTYPE + ". You can enable those in RLV submenu. Opening it now.", FALSE);
|
||||
llMessageLinked(LINK_SET, iNum, "menu RLV", kID);
|
||||
return TRUE;
|
||||
}
|
||||
LockAttachmentMenu(kID, iNum);
|
||||
}
|
||||
else if (llGetSubString(sStr, 0, 11) == "lockclothing") {
|
||||
string sMessage = llGetSubString(sStr, 13, -1);
|
||||
if (iNum == COMMAND_WEARER)
|
||||
{
|
||||
Notify(kID, "Sorry you need owner privileges for locking clothes.", FALSE);
|
||||
}
|
||||
else if (sMessage==ALL||sStr== "lockclothing")
|
||||
{
|
||||
g_lLockedItems += [ALL];
|
||||
Notify(kID, WEARERNAME+"'s clothing has been locked.", TRUE);
|
||||
llMessageLinked(LINK_SET, iNum, "remoutfit=n", kID);
|
||||
llMessageLinked(LINK_SET, iNum, "addoutfit=n", kID);
|
||||
}
|
||||
else if (llListFindList(LOCK_CLOTH_POINTS,[sMessage])!=-1)
|
||||
{
|
||||
g_lLockedItems += sMessage;
|
||||
Notify(kID, WEARERNAME+"'s "+sMessage+" has been locked.", TRUE);
|
||||
llMessageLinked(LINK_SET, iNum, "remoutfit:" + sMessage + "=n", kID);
|
||||
llMessageLinked(LINK_SET, iNum, "addoutfit:" + sMessage + "=n", kID);
|
||||
}
|
||||
else Notify(kID, "Sorry you must either specify a cloth name or not use a parameter (which locks all the clothing layers).", FALSE);
|
||||
}
|
||||
else if (llGetSubString(sStr, 0, 13) == "unlockclothing")
|
||||
{
|
||||
if (iNum == COMMAND_WEARER)
|
||||
{
|
||||
Notify(kID, "Sorry you need owner privileges for unlocking clothes.", FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
string sMessage = llGetSubString(sStr, 15, -1);
|
||||
if (sMessage==ALL||sStr=="unlockclothing")
|
||||
{
|
||||
llMessageLinked(LINK_SET, iNum, "remoutfit=y", kID);
|
||||
llMessageLinked(LINK_SET, iNum, "addoutfit=y", kID);
|
||||
Notify(kID, WEARERNAME+"'s clothing has been unlocked.", TRUE);
|
||||
integer iIndex = llListFindList(g_lLockedItems,[ALL]);
|
||||
if (iIndex!=-1) g_lLockedItems = llDeleteSubList(g_lLockedItems,iIndex,iIndex);
|
||||
}
|
||||
else
|
||||
{
|
||||
llMessageLinked(LINK_SET, iNum, "remoutfit:" + sMessage + "=y", kID);
|
||||
llMessageLinked(LINK_SET, iNum, "addoutfit:" + sMessage + "=y", kID);
|
||||
Notify(kID, WEARERNAME+"'s "+sMessage+" has been unlocked.", TRUE);
|
||||
integer iIndex = llListFindList(g_lLockedItems,[sMessage]);
|
||||
if (iIndex!=-1) g_lLockedItems = llDeleteSubList(g_lLockedItems,iIndex,iIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (llGetSubString(sStr, 0, 13) == "lockattachment")
|
||||
{
|
||||
string sPoint = llGetSubString(sStr, 15, -1);
|
||||
|
||||
if (iNum == COMMAND_WEARER)
|
||||
{
|
||||
Notify(kID, "Sorry you need owner privileges for locking attachments.", FALSE);
|
||||
}
|
||||
else if (llListFindList(ATTACH_POINTS ,[sPoint])!=-1)
|
||||
{
|
||||
if (llListFindList(g_lLockedAttach, [sPoint]) == -1) g_lLockedAttach += [sPoint];
|
||||
Notify(kID, WEARERNAME+"'s "+sPoint+" attachment point is now locked.", TRUE);
|
||||
llMessageLinked(LINK_SET, iNum, "detach:" + sPoint + "=n", kID);
|
||||
}
|
||||
else
|
||||
{
|
||||
Notify(kID, "Sorry you must either specify a attachment name.", FALSE);
|
||||
}
|
||||
}
|
||||
else if (sStr == "lockall")
|
||||
{
|
||||
if (iNum == COMMAND_WEARER)
|
||||
{
|
||||
Notify(kID, "Sorry you need owner privileges for locking attachments.", FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
DoLockAll(kID); //lock all clothes and attachment points
|
||||
SaveLockAllFlag(1);
|
||||
Notify(kID, WEARERNAME+"'s clothing and attachments have been locked.", TRUE);
|
||||
}
|
||||
}
|
||||
else if (sStr == "unlockall")
|
||||
{
|
||||
if (iNum == COMMAND_WEARER)
|
||||
{
|
||||
Notify(kID, "Sorry you need owner privileges for unlocking attachments.", FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
DoUnlockAll(kID); //unlock all clothes and attachment points
|
||||
SaveLockAllFlag(0);
|
||||
Notify(kID, WEARERNAME+"'s clothing and attachments have been unlocked.", TRUE);
|
||||
}
|
||||
}
|
||||
else if (llGetSubString(sStr, 0, 15) == "unlockattachment")
|
||||
{
|
||||
if (iNum == COMMAND_WEARER)
|
||||
{
|
||||
Notify(kID, "Sorry you need owner privileges for unlocking attachments.", FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
string sMessage = llGetSubString(sStr, 17, -1);
|
||||
{
|
||||
llMessageLinked(LINK_SET, iNum, "detach:" + sMessage + "=y", kID);
|
||||
Notify(kID, WEARERNAME+"'s "+sMessage+" has been unlocked.", TRUE);
|
||||
integer iIndex = llListFindList(g_lLockedAttach,[sMessage]);
|
||||
if (iIndex!=-1) g_lLockedAttach = llDeleteSubList(g_lLockedAttach,iIndex,iIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
//else if (sStr == "refreshmenu")
|
||||
//{
|
||||
// g_lSubMenus = [];
|
||||
// llMessageLinked(LINK_SET, MENUNAME_REQUEST, g_sSubMenu, "");
|
||||
//}
|
||||
else if (sStr == "undress")
|
||||
{
|
||||
if (!g_iRLVOn)
|
||||
{
|
||||
Notify(kID, "RLV features are now disabled in this " + CTYPE + ". You can enable those in RLV submenu. Opening it now.", FALSE);
|
||||
llMessageLinked(LINK_SET, iNum, "menu RLV", kID);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
MainMenu(kID, iNum);
|
||||
}
|
||||
else if (sStr == "clothing")
|
||||
{
|
||||
if (!g_iRLVOn)
|
||||
{
|
||||
Notify(kID, "RLV features are now disabled in this " + CTYPE + ". You can enable those in RLV submenu. Opening it now.", FALSE);
|
||||
llMessageLinked(LINK_SET, iNum, "menu RLV", kID);
|
||||
return TRUE;
|
||||
}
|
||||
QueryClothing(kID, iNum);
|
||||
}
|
||||
else if (sStr == "attachment")
|
||||
{
|
||||
if (!g_iRLVOn)
|
||||
{
|
||||
Notify(kID, "RLV features are now disabled in this " + CTYPE + ". You can enable those in RLV submenu. Opening it now.", FALSE);
|
||||
llMessageLinked(LINK_SET, iNum, "menu RLV", kID);
|
||||
return TRUE;
|
||||
}
|
||||
QueryAttachments(kID, iNum);
|
||||
}
|
||||
// rlvoff -> we have to turn the menu off too
|
||||
else if (iNum>=COMMAND_OWNER && sStr=="rlvoff") g_iRLVOn=FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
default {
|
||||
on_rez(integer iParam) {
|
||||
llResetScript();
|
||||
}
|
||||
|
||||
state_entry() {
|
||||
//llSetMemoryLimit(65536); //this script needs to be profiled, and its memory limited
|
||||
g_sScript = "rlvundress_";
|
||||
g_kWearer = llGetOwner();
|
||||
WEARERNAME = llKey2Name(g_kWearer); //quick and dirty default, will get replaced by value from settings
|
||||
//Debug("Starting");
|
||||
}
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID)
|
||||
{
|
||||
//the command was given by either owner, secowner, group member, or wearer
|
||||
if (UserCommand(iNum, sStr, kID)) return;
|
||||
// rlvoff -> we have to turn the menu off too
|
||||
else if (iNum == RLV_OFF) g_iRLVOn=FALSE;
|
||||
// rlvon -> we have to turn the menu on again
|
||||
else if (iNum == RLV_ON) g_iRLVOn=TRUE;
|
||||
else if (iNum == MENUNAME_REQUEST && sStr == g_sParentMenu)
|
||||
{
|
||||
llMessageLinked(LINK_SET, MENUNAME_RESPONSE, g_sParentMenu + "|" + g_sSubMenu, "");
|
||||
g_lSubMenus = []; //flush submenu buttons
|
||||
llMessageLinked(LINK_SET, MENUNAME_REQUEST, g_sSubMenu, "");
|
||||
}
|
||||
else if (iNum == LM_SETTING_RESPONSE)
|
||||
{ //this is tricky since our db value contains equals signs
|
||||
//split string on both comma and equals sign
|
||||
//first see if this is the token we care about
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
integer i = llSubStringIndex(sToken, "_");
|
||||
if (llGetSubString(sToken, 0, i) == g_sScript)
|
||||
{
|
||||
sToken = llGetSubString(sToken, i + 1, -1);
|
||||
if (sToken == "LockAll")
|
||||
{
|
||||
g_iAllLocked = 1;
|
||||
DoLockAll(kID);
|
||||
}
|
||||
else if (sToken == "List")
|
||||
{
|
||||
g_lSettings = llParseString2List(sValue, [","], []);
|
||||
UpdateSettings();
|
||||
}
|
||||
else if (sToken == g_sSmartToken)
|
||||
{
|
||||
g_iSmartStrip=TRUE;
|
||||
}
|
||||
}
|
||||
else if (sToken == "Global_CType") CTYPE = sValue;
|
||||
else if (sToken=="Global_WearerName") WEARERNAME=sValue;
|
||||
}
|
||||
else if (iNum == RLV_REFRESH)
|
||||
{//rlvmain just started up. Tell it about our current restrictions
|
||||
g_iRLVOn = TRUE;
|
||||
if(g_iAllLocked > 0) //is everything locked?
|
||||
DoLockAll(kID); //lock everything on a RLV_REFRESH
|
||||
|
||||
UpdateSettings();
|
||||
}
|
||||
else if (iNum == RLV_CLEAR)
|
||||
{ //clear db and local settings list
|
||||
ClearSettings();
|
||||
}
|
||||
else if (iNum == MENUNAME_RESPONSE)
|
||||
{
|
||||
list lParams = llParseString2List(sStr, ["|"], []);
|
||||
if (llList2String(lParams, 0)==g_sSubMenu)
|
||||
{
|
||||
string child = llList2String(lParams, 1);
|
||||
//only add submenu if not already present
|
||||
if (llListFindList(g_lSubMenus, [child]) == -1)
|
||||
{
|
||||
g_lSubMenus += [child];
|
||||
g_lSubMenus = llListSort(g_lSubMenus, 1, TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (iNum == MENUNAME_REMOVE)
|
||||
{
|
||||
//sStr should be in form of parentmenu|childmenu
|
||||
list lParams = llParseString2List(sStr, ["|"], []);
|
||||
string child = llList2String(lParams, 1);
|
||||
if (llList2String(lParams, 0)==g_sSubMenu)
|
||||
{
|
||||
integer iIndex = llListFindList(g_lSubMenus, [child]);
|
||||
//only remove if it's there
|
||||
if (iIndex != -1)
|
||||
{
|
||||
g_lSubMenus = llDeleteSubList(g_lSubMenus, iIndex, iIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (iNum == DIALOG_RESPONSE)
|
||||
{
|
||||
if (llListFindList([g_kMainID, g_kClothID, g_kAttachID, g_kLockID, g_kLockAttachID], [kID]) != -1)
|
||||
{//it's one of our menus
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
if (kID == g_kMainID)
|
||||
{
|
||||
if (sMessage == UPMENU) llMessageLinked(LINK_SET, iAuth, "menu " + g_sParentMenu, kAv);
|
||||
else if (sMessage == "Rem Clothing") QueryClothing(kAv, iAuth);
|
||||
else if (sMessage == "Rem Attachment") QueryAttachments(kAv, iAuth);
|
||||
else if (sMessage == "Lock Clothing") LockMenu(kAv, iAuth);
|
||||
else if (sMessage == "Lock Attachment") LockAttachmentMenu(kAv, iAuth);
|
||||
else if (sMessage == "☐ Lock All") { UserCommand(iAuth, "lockall", kAv); MainMenu(kAv, iAuth); }
|
||||
else if (sMessage == "☒ Lock All") { UserCommand(iAuth, "unlockall", kAv); MainMenu(kAv, iAuth); }
|
||||
else if (sMessage == SMARTON) { UserCommand(iAuth, "smartstrip on",kAv); MainMenu(kAv, iAuth);}
|
||||
else if (sMessage == SMARTOFF) { UserCommand(iAuth, "smartstrip off",kAv); MainMenu(kAv, iAuth);}
|
||||
else if (sMessage == "Help") { llGiveInventory(kAv,g_sSmartHelpCard); MainMenu(kAv, iAuth);}
|
||||
else if (llListFindList(g_lSubMenus,[sMessage]) != -1)
|
||||
{
|
||||
llMessageLinked(LINK_SET, iAuth, "menu " + sMessage, kAv);
|
||||
}
|
||||
else
|
||||
{
|
||||
//something went horribly wrong. We got a command that we can't find in the list
|
||||
}
|
||||
}
|
||||
else if (kID == g_kClothID)
|
||||
{
|
||||
if (sMessage == UPMENU) MainMenu(kAv, iAuth);
|
||||
else if (sMessage == "Attachments") QueryAttachments(kAv, iAuth);
|
||||
else if (sMessage == ALL)
|
||||
// SA:Â we can count ourselves lucky that all people who can see the menu have sufficient privileges for remoutfit commands!
|
||||
// Note for people looking for the auth check: it would have been here, look no further!
|
||||
{ //send the RLV command to remove it.
|
||||
|
||||
UserCommand(iAuth,"strip all",kAv); //See stuff in UserCommand. If we use smartstrip for all, then we'd jump to that here to save duplication, but otherwise it's a single LM, better to do it here than hit UserCommand.
|
||||
|
||||
// llMessageLinked(LINK_SET, RLV_CMD, "remoutfit=force", NULL_KEY);
|
||||
//Return menu
|
||||
//sleep fof a sec to let things detach
|
||||
llSleep(0.5);
|
||||
QueryClothing(kAv, iAuth);
|
||||
}
|
||||
else
|
||||
{
|
||||
UserCommand(iAuth,"strip "+sMessage,kAv);
|
||||
llSleep(0.5);
|
||||
QueryClothing(kAv, iAuth);
|
||||
}
|
||||
|
||||
/* Moving this to UserCommand to allow "strip" chat command
|
||||
else
|
||||
{ //we got a cloth point.
|
||||
sMessage = llToLower(sMessage);
|
||||
//send the RLV command to remove it.
|
||||
if(kAv==g_kSmartUser || g_iSmartStrip==TRUE){
|
||||
llMessageLinked(LINK_SET, RLV_CMD , "detachallthis:" + sMessage + "=force", NULL_KEY);}
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "remoutfit:" + sMessage + "=force", NULL_KEY);
|
||||
//Return menu
|
||||
//sleep fof a sec to let things detach
|
||||
llSleep(0.5);
|
||||
QueryClothing(kAv, iAuth);
|
||||
}
|
||||
*/
|
||||
}
|
||||
else if (kID == g_kAttachID)
|
||||
{
|
||||
if (sMessage == UPMENU) llMessageLinked(LINK_SET, iAuth, "menu " + g_sSubMenu, kAv);
|
||||
else if (sMessage == "Clothing") QueryClothing(kAv, iAuth);
|
||||
else //SA: same remark here, people who are able to get the menu happen to be the ones who have the permission to detach
|
||||
{ //we got an attach point. send a message to detach
|
||||
sMessage = llToLower(sMessage);
|
||||
//send the RLV command to remove it.
|
||||
llMessageLinked(LINK_SET, RLV_CMD, "detach:" + sMessage + "=force", NULL_KEY);
|
||||
//sleep for a sec to let tihngs detach
|
||||
llSleep(0.5);
|
||||
//Return menu
|
||||
g_kMenuUser = kAv;
|
||||
QueryAttachments(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
else if (kID == g_kLockID)
|
||||
{
|
||||
if (sMessage == UPMENU) MainMenu(kAv, iAuth);
|
||||
else
|
||||
{ //we got a cloth point.
|
||||
string cstate = llGetSubString(sMessage,0,llStringLength(TICKED) - 1);
|
||||
sMessage=llGetSubString(sMessage,llStringLength(TICKED),-1);
|
||||
if (cstate==UNTICKED)
|
||||
{
|
||||
UserCommand(iAuth, "lockclothing "+sMessage, kAv);
|
||||
}
|
||||
else if (cstate==TICKED)
|
||||
{
|
||||
UserCommand(iAuth, "unlockclothing "+sMessage, kAv);
|
||||
}
|
||||
LockMenu(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
else if (kID == g_kLockAttachID)
|
||||
{
|
||||
if (sMessage == UPMENU) MainMenu(kAv, iAuth);
|
||||
else
|
||||
{ //we got a cloth point.
|
||||
string cstate = llGetSubString(sMessage,0,llStringLength(TICKED) - 1);
|
||||
sMessage=llGetSubString(sMessage,llStringLength(TICKED),-1);
|
||||
if (cstate==UNTICKED)
|
||||
{
|
||||
UserCommand(iAuth, "lockattachment "+sMessage, kAv);
|
||||
}
|
||||
else if (cstate==TICKED)
|
||||
{
|
||||
UserCommand(iAuth, "unlockattachment "+sMessage, kAv);
|
||||
}
|
||||
LockAttachmentMenu(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
listen(integer iChan, string sName, key kID, string sMessage)
|
||||
{
|
||||
llListenRemove(g_iListener);
|
||||
llSetTimerEvent(0.0);
|
||||
if (iChan == g_iClothRLV)
|
||||
{ // llOwnerSay(sMessage);
|
||||
ClothingMenu(g_kMenuUser, sMessage, g_iMenuAuth);
|
||||
}
|
||||
else if (iChan == g_iAttachRLV)
|
||||
{
|
||||
// llOwnerSay(sMessage);
|
||||
DetachMenu(g_kMenuUser, sMessage, g_iMenuAuth);
|
||||
}
|
||||
}
|
||||
|
||||
timer()
|
||||
{//stil needed for rlv listen timeouts, though not dialog timeouts anymore
|
||||
llListenRemove(g_iListener);
|
||||
llSetTimerEvent(0.0);
|
||||
}
|
||||
|
||||
/*
|
||||
changed(integer iChange) {
|
||||
if (iChange & CHANGED_REGION) {
|
||||
if (g_iProfiled) {
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
@@ -1,722 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - settings //
|
||||
// version 3.988 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// This script stores settings for other scripts in the collar. In bygone days
|
||||
// it was responsible for storing them to an online database too. It doesn't
|
||||
// do that anymore. But so long as plugin scripts are still using central
|
||||
// storage like this, it's always possible we could bring back an online DB or
|
||||
// someone could offer a third party one.
|
||||
//
|
||||
// Standardized format for settings - this will facilitate concordant AddOn integrations
|
||||
// ID_Group=Token~Value~Token~Value (etc) in notecard (hard storage)
|
||||
// Group_Token=Value (Setting storage & script usage)
|
||||
// where:
|
||||
// ID_ = collar description's 3rd entry (after the 2nd tilde)
|
||||
// or "User_" for user customizations
|
||||
// Group = what script/AddOn these settings are for
|
||||
// Token = Setting to affect
|
||||
// Value = set Token to this value
|
||||
// EX: oc_texture=Base~steel~Ring~stripes (notecard line)
|
||||
// texture_Base=steel,texture_Ring=stripes (in the scripts)
|
||||
|
||||
string PARENT_MENU = "Main";
|
||||
string SUBMENU = "Options";
|
||||
|
||||
string DUMPCACHE = "Dump Cache";
|
||||
string PREFUSER = "☐ Personal";
|
||||
string PREFDESI = "☒ Personal"; // yes, I hate cutoff buttons
|
||||
string STEALTH_OFF = "☐ Stealth"; // show the whole CTYPE
|
||||
string STEALTH_ON = "☒ Stealth"; // hide the whole CTYPE
|
||||
string LOADCARD="Load Defaults";
|
||||
string REFRESH_MENU = "Fix Menus";
|
||||
string UPMENU = "BACK";
|
||||
key g_kMenuID;
|
||||
key g_kWearer;
|
||||
string g_sScript;
|
||||
integer STEALTH;
|
||||
|
||||
string defaultscard = "defaultsettings";
|
||||
string split_line; // to parse lines that were split due to lsl constraints
|
||||
integer defaultsline = 0;
|
||||
key defaultslineid;
|
||||
key card_key;
|
||||
|
||||
// Message Map
|
||||
integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
|
||||
integer POPUP_HELP = 1001;
|
||||
|
||||
integer LM_SETTING_SAVE = 2000;//scripts send messages on this channel to have settings saved to settings store
|
||||
//str must be in form of "token=value"
|
||||
integer LM_SETTING_REQUEST = 2001;//when startup, scripts send requests for settings on this channel
|
||||
integer LM_SETTING_RESPONSE = 2002;//the settings script will send responses on this channel
|
||||
integer LM_SETTING_DELETE = 2003;//delete token from store
|
||||
integer LM_SETTING_EMPTY = 2004;//sent when a token has no value in the store
|
||||
integer LM_SETTING_REQUEST_NOCACHE = 2005;
|
||||
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
integer MENUNAME_REMOVE = 3003;
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
integer INTERFACE_CHANNEL;
|
||||
|
||||
//string WIKI_URL = "http://www.opencollar.at/user-guide.html";
|
||||
string DESIGN_ID;
|
||||
list DESIGN_SETTINGS;
|
||||
list USER_SETTINGS;
|
||||
integer USER_PREF = FALSE; // user switch
|
||||
|
||||
integer SAY_LIMIT = 1024; // lsl "say" string limit
|
||||
integer CARD_LIMIT = 255; // lsl card-line string limit
|
||||
string ESCAPE_CHAR = "\\"; // end of card line, more value left for token
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
key Dialog(key kRCPT, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth)
|
||||
{
|
||||
key kID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kRCPT + "|" + sPrompt + "|" + (string)iPage + "|" + llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kID);
|
||||
//Debug("Made menu.");
|
||||
return kID;
|
||||
}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer)
|
||||
{
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else
|
||||
{
|
||||
if (llGetAgentSize(kID)!=ZERO_VECTOR) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
DoMenu(key keyID, integer iAuth)
|
||||
{
|
||||
string sPrompt = "\n" + DUMPCACHE + " prints current settings to chat.";
|
||||
sPrompt += "\n" +LOADCARD+" restores the default settings.";
|
||||
list lButtons = [DUMPCACHE,LOADCARD,REFRESH_MENU];
|
||||
if (USER_PREF)
|
||||
{
|
||||
sPrompt += "\n\nUncheck " + PREFDESI + " to give designer settings priority.\n";
|
||||
lButtons += [PREFDESI];
|
||||
}
|
||||
else
|
||||
{
|
||||
sPrompt += "\n\nCheck " + PREFUSER + " to give your personal settings priority.\n";
|
||||
lButtons += [PREFUSER];
|
||||
}
|
||||
|
||||
if (STEALTH) lButtons += [STEALTH_ON];
|
||||
else lButtons += [STEALTH_OFF];
|
||||
|
||||
sPrompt +="\nwww.opencollar.at/options";
|
||||
g_kMenuID = Dialog(keyID, sPrompt, lButtons, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
// Get Group or Token, 0=Group, 1=Token
|
||||
string SplitToken(string in, integer slot)
|
||||
{
|
||||
integer i = llSubStringIndex(in, "_");
|
||||
if (!slot) return llGetSubString(in, 0, i - 1);
|
||||
return llGetSubString(in, i + 1, -1);
|
||||
}
|
||||
// To add new entries at the end of Groupings
|
||||
integer GroupIndex(list cache, string token)
|
||||
{
|
||||
string group = SplitToken(token, 0);
|
||||
integer i = llGetListLength(cache) - 1;
|
||||
// start from the end to find last instance, +2 to get behind the value
|
||||
for (; ~i ; i -= 2)
|
||||
{
|
||||
if (SplitToken(llList2String(cache, i - 1), 0) == group) return i + 1;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
integer SettingExists(string token)
|
||||
{
|
||||
if (~llListFindList(USER_SETTINGS, [token])) return TRUE;
|
||||
if (~llListFindList(DESIGN_SETTINGS, [token])) return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
list SetSetting(list cache, string token, string value)
|
||||
{
|
||||
integer idx = llListFindList(cache, [token]);
|
||||
if (~idx) return llListReplaceList(cache, [value], idx + 1, idx + 1);
|
||||
idx = GroupIndex(cache, token);
|
||||
if (~idx) return llListInsertList(cache, [token, value], idx);
|
||||
return cache + [token, value];
|
||||
}
|
||||
|
||||
// like SetSetting, but only sets the value if there's not one already there.
|
||||
list AddSetting(list cache, string token, string value)
|
||||
{
|
||||
integer i = llListFindList(cache, [token]);
|
||||
if (~i) return cache;
|
||||
i = GroupIndex(cache, token);
|
||||
if (~i) return llListInsertList(cache, [token, value], i);
|
||||
return cache + [token, value];
|
||||
}
|
||||
|
||||
string GetSetting(string token)
|
||||
{
|
||||
integer i = llListFindList(USER_SETTINGS, [token]);
|
||||
if (USER_PREF && ~i) return llList2String(USER_SETTINGS, i + 1);
|
||||
integer d = llListFindList(DESIGN_SETTINGS, [token]);
|
||||
if (~d) return llList2String(DESIGN_SETTINGS, d + 1);
|
||||
return llList2String(USER_SETTINGS, i + 1);
|
||||
}
|
||||
// per = number of entries to put in each bracket
|
||||
list ListCombineEntries(list in, string add, integer per)
|
||||
{
|
||||
list out;
|
||||
while (llGetListLength(in))
|
||||
{
|
||||
list item;
|
||||
integer i;
|
||||
for (; i < per; i++) item += llList2List(in, i, i);
|
||||
out += [llDumpList2String(item, add)];
|
||||
in = llDeleteSubList(in, 0, per - 1);
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
DumpGroupSettings(string group, key id)
|
||||
{
|
||||
list sets;
|
||||
list out;
|
||||
string tok;
|
||||
string val;
|
||||
integer i;
|
||||
integer x;
|
||||
if (!USER_PREF) jump user;
|
||||
@designer;
|
||||
for (i = 0; i < llGetListLength(DESIGN_SETTINGS); i += 2)
|
||||
{
|
||||
tok = llList2String(DESIGN_SETTINGS, i);
|
||||
if (SplitToken(tok, 0) == group)
|
||||
{
|
||||
tok = SplitToken(tok, 1);
|
||||
val = llList2String(DESIGN_SETTINGS, i + 1);
|
||||
x=llListFindList(out, [tok]);
|
||||
if (~x) out = llListReplaceList(out, [val], x + 1, x + 1);
|
||||
else out += [tok, val];
|
||||
}
|
||||
}
|
||||
if (!USER_PREF) jump done;
|
||||
@user;
|
||||
for (i = 0; i < llGetListLength(USER_SETTINGS); i += 2)
|
||||
{
|
||||
tok = llList2String(USER_SETTINGS, i);
|
||||
if (SplitToken(tok, 0) == group)
|
||||
{
|
||||
tok = SplitToken(tok, 1);
|
||||
val = llList2String(USER_SETTINGS, i + 1);
|
||||
x=llListFindList(out, [tok]);
|
||||
if (~x) out = llListReplaceList(out, [val], x + 1, x + 1);
|
||||
else out += [tok, val];
|
||||
}
|
||||
}
|
||||
if (!USER_PREF) jump designer;
|
||||
@done;
|
||||
out = ListCombineEntries(out, "=", 2);
|
||||
tok = (string)id + "\\" + group+ " settings\\";
|
||||
while (llGetListLength(out))
|
||||
{
|
||||
val = llList2String(out, 0);
|
||||
if (llStringLength(tok + val) + 2 > SAY_LIMIT)
|
||||
{
|
||||
llRegionSayTo(id, 0, tok);
|
||||
tok = (string)id + "\\" + group + " settings\\" + val;
|
||||
}
|
||||
else tok += ";" + val;
|
||||
out = llDeleteSubList(out, 0, 0);
|
||||
}
|
||||
llRegionSayTo(id, INTERFACE_CHANNEL, tok);
|
||||
}
|
||||
|
||||
DelSetting(string token) // we'll only ever delete user settings
|
||||
{
|
||||
integer i = llGetListLength(USER_SETTINGS) - 1;
|
||||
if (SplitToken(token, 1) == "all")
|
||||
{
|
||||
token = SplitToken(token, 0);
|
||||
string var;
|
||||
for (; ~i; i -= 2)
|
||||
{
|
||||
if (SplitToken(llList2String(USER_SETTINGS, i - 1), 0) == token)
|
||||
USER_SETTINGS = llDeleteSubList(USER_SETTINGS, i - 1, i);
|
||||
}
|
||||
return;
|
||||
}
|
||||
i = llListFindList(USER_SETTINGS, [token]);
|
||||
if (~i) USER_SETTINGS = llDeleteSubList(USER_SETTINGS, i, i + 1);
|
||||
}
|
||||
|
||||
// run delimiters & add escape-characters for DumpCache
|
||||
list Add2OutList(list in)
|
||||
{
|
||||
if (!llGetListLength(in)) return [];
|
||||
string set = DESIGN_ID;
|
||||
list out = ["#---Designer Defaults---#"];
|
||||
if (in == USER_SETTINGS)
|
||||
{
|
||||
set = "User_";
|
||||
out = ["#---My Settings---#"];
|
||||
}
|
||||
string buffer;
|
||||
string temp;
|
||||
string sid;
|
||||
string pre;
|
||||
string group;
|
||||
string tok;
|
||||
string val;
|
||||
integer i;
|
||||
|
||||
for (i=0 ; i < llGetListLength(in); i += 2)
|
||||
{
|
||||
tok = llList2String(in, i);
|
||||
val = llList2String(in, i + 1);
|
||||
group = SplitToken(tok, 0);
|
||||
tok = SplitToken(tok, 1);
|
||||
integer bIsSplit = FALSE ;
|
||||
integer iAddedLength = llStringLength(buffer) + llStringLength(val)
|
||||
+ llStringLength(sid) +llStringLength(set) + 2;
|
||||
if (group != sid || llStringLength(buffer) == 0 || iAddedLength >= CARD_LIMIT ) // new group
|
||||
{
|
||||
// Starting a new group.. flush the buffer to the output.
|
||||
if ( llStringLength(buffer) ) out += [buffer] ;
|
||||
sid = group;
|
||||
pre = "\n" + set + sid + "=";
|
||||
}
|
||||
else pre = buffer + "~";
|
||||
temp = pre + tok + "~" + val;
|
||||
while (llStringLength(temp))
|
||||
{
|
||||
buffer = temp;
|
||||
if (llStringLength(temp) > CARD_LIMIT)
|
||||
{
|
||||
bIsSplit = TRUE ;
|
||||
buffer = llGetSubString(temp, 0, CARD_LIMIT - 2) + ESCAPE_CHAR;
|
||||
temp = "\n" + llDeleteSubString(temp, 0, CARD_LIMIT - 2);
|
||||
}
|
||||
else temp = "";
|
||||
if ( bIsSplit )
|
||||
{
|
||||
// if this is either a split buffer or one of it's continuation
|
||||
// line outputs,
|
||||
out += [buffer];
|
||||
buffer = "" ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// If there's anything left in the buffer, flush it to output.
|
||||
if ( llStringLength(buffer) ) out += [buffer] ;
|
||||
|
||||
// Possibly this line was supposed to reallocate the list to keep it from taking too
|
||||
// much space. Logically, this is a 'do nothing' line - replacing the last item in
|
||||
// the 'out' list with the last item in the out list, with no changes.
|
||||
////// out = llListReplaceList(out, [llList2String(out, -1)], -1, -1);
|
||||
|
||||
return out;
|
||||
}
|
||||
|
||||
DumpCache(key id)
|
||||
{
|
||||
// compile everything into one list, so we can tell the user everything seamlessly
|
||||
list out;
|
||||
list say = ["Settings (Designer defaults, followed by User Entries)\n"];
|
||||
say += ["The below can be copied and pasted to \"defaultsettings\" notecard\n"];
|
||||
say += ["Replacing old entries, but must include Designer defaults (if present):\n"];
|
||||
say += Add2OutList(DESIGN_SETTINGS) + ["\n"];
|
||||
say += Add2OutList(USER_SETTINGS);
|
||||
string old;
|
||||
string new;
|
||||
integer c;
|
||||
while (llGetListLength(say))
|
||||
{
|
||||
new = llList2String(say, 0);
|
||||
c = llStringLength(old + new) + 2;
|
||||
if (c > SAY_LIMIT)
|
||||
{
|
||||
out += [old];
|
||||
old = "";
|
||||
}
|
||||
old += new;
|
||||
say = llDeleteSubList(say, 0, 0);
|
||||
}
|
||||
out += [old];
|
||||
while (llGetListLength(out))
|
||||
{
|
||||
Notify(id, llList2String(out, 0), TRUE);
|
||||
out = llDeleteSubList(out, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
SendValues()
|
||||
{
|
||||
//Debug("Sending all settings");
|
||||
//loop through and send all the settings
|
||||
integer n = 0;
|
||||
string tok;
|
||||
list out;
|
||||
if (USER_PREF) jump DesignSet;
|
||||
@UserSet;
|
||||
for (; n < llGetListLength(USER_SETTINGS); n += 2)
|
||||
{
|
||||
tok = llList2String(USER_SETTINGS, n) + "=";
|
||||
tok += llList2String(USER_SETTINGS, n + 1);
|
||||
if (llListFindList(out, [tok]) == -1) out += [tok];
|
||||
}
|
||||
n = 0;
|
||||
if (USER_PREF) jump done;
|
||||
@DesignSet;
|
||||
for (; n < llGetListLength(DESIGN_SETTINGS); n += 2)
|
||||
{
|
||||
tok = llList2String(DESIGN_SETTINGS, n) + "=";
|
||||
tok += llList2String(DESIGN_SETTINGS, n + 1);
|
||||
if (llListFindList(out, [tok]) == -1) out += [tok];
|
||||
}
|
||||
n = 0;
|
||||
if (USER_PREF) jump UserSet;
|
||||
@done;
|
||||
for (; n < llGetListLength(out); n++)
|
||||
{
|
||||
llMessageLinked(LINK_SET, LM_SETTING_RESPONSE, llList2String(out, n), "");
|
||||
}
|
||||
llMessageLinked(LINK_SET, LM_SETTING_RESPONSE, "settings=sent", "");//tells scripts everything has be sentout
|
||||
}
|
||||
|
||||
integer UserCommand(integer iAuth, string sStr, key kID)
|
||||
{
|
||||
if (iAuth != COMMAND_OWNER && iAuth != COMMAND_WEARER) return FALSE;
|
||||
if (sStr == "menu " + SUBMENU || llToLower(sStr) == llToLower(SUBMENU))
|
||||
{
|
||||
DoMenu(kID, iAuth);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (llToLower(llGetSubString(sStr, 0, 4)) == "dump_")
|
||||
{
|
||||
sStr = llToLower(llGetSubString(sStr, 5, -1));
|
||||
if (sStr == "cache") DumpCache(kID);
|
||||
else DumpGroupSettings(sStr, kID);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
integer i = llSubStringIndex(sStr, " ");
|
||||
string sid = llToLower(llGetSubString(sStr, 0, i - 1)) + "_";
|
||||
if (sid != llToLower(g_sScript)) return TRUE;
|
||||
string C = llToLower(llGetSubString(sStr, i + 1, -1));
|
||||
if (C == llToLower(PREFUSER))
|
||||
{
|
||||
USER_SETTINGS = SetSetting(USER_SETTINGS, g_sScript + "Pref", "User");
|
||||
USER_PREF = TRUE;
|
||||
}
|
||||
else if (C == llToLower(PREFDESI))
|
||||
{
|
||||
USER_SETTINGS = SetSetting(USER_SETTINGS, g_sScript + "Pref", "Designer");
|
||||
USER_PREF = FALSE;
|
||||
}
|
||||
else if (C == llToLower(DUMPCACHE))
|
||||
{
|
||||
DumpCache(kID);
|
||||
}
|
||||
else if (C == llToLower(LOADCARD))
|
||||
{
|
||||
defaultsline = 0;
|
||||
if (llGetInventoryKey(defaultscard)!=NULL_KEY) {
|
||||
defaultslineid = llGetNotecardLine(defaultscard, defaultsline);
|
||||
}
|
||||
}
|
||||
else if (C == llToLower(REFRESH_MENU))
|
||||
{
|
||||
llMessageLinked(LINK_THIS, iAuth,"fixmenus",kID);
|
||||
}
|
||||
else if (C == llToLower(STEALTH_OFF))
|
||||
{
|
||||
STEALTH = TRUE;
|
||||
llMessageLinked(LINK_THIS, iAuth,"hide",kID);
|
||||
}
|
||||
else if (C == llToLower(STEALTH_ON))
|
||||
{
|
||||
STEALTH = FALSE;
|
||||
llMessageLinked(LINK_THIS, iAuth,"show",kID);
|
||||
}
|
||||
else return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
default {
|
||||
on_rez(integer iParam) {
|
||||
// reset the whole lot.
|
||||
if (g_kWearer == llGetOwner()) { //if owner hasn't changed, resend settings to plugins
|
||||
llSleep(0.5); // brief wait for others to reset
|
||||
SendValues();
|
||||
} else llResetScript(); // else reset completely
|
||||
|
||||
// check alpha
|
||||
if (llGetAlpha(ALL_SIDES) > 0) STEALTH = FALSE;
|
||||
else STEALTH = TRUE;
|
||||
}
|
||||
|
||||
state_entry() {
|
||||
//llSetMemoryLimit(65536); //this script needs to be profiled, and its memory limited
|
||||
g_sScript = "settings_";
|
||||
// Ensure that settings resets AFTER every other script, so that they don't reset after they get settings
|
||||
llSleep(0.5);
|
||||
g_kWearer = llGetOwner();
|
||||
INTERFACE_CHANNEL = (integer)("0x"+llGetSubString((string)g_kWearer,2,7)) + 1111;
|
||||
if (INTERFACE_CHANNEL > 0) INTERFACE_CHANNEL *= -1;
|
||||
if (INTERFACE_CHANNEL > -10000) INTERFACE_CHANNEL -= 30000;
|
||||
defaultsline = 0;
|
||||
if (llGetInventoryKey(defaultscard)!=NULL_KEY) {
|
||||
defaultslineid = llGetNotecardLine(defaultscard, defaultsline);
|
||||
card_key = llGetInventoryKey(defaultscard);
|
||||
}
|
||||
DESIGN_ID = llGetObjectDesc();
|
||||
integer i = llSubStringIndex(DESIGN_ID, "~");
|
||||
DESIGN_ID = llGetSubString(DESIGN_ID, i + 1, -1);
|
||||
i = llSubStringIndex(DESIGN_ID, "~");
|
||||
DESIGN_ID = llGetSubString(DESIGN_ID, i + 1, -1);
|
||||
//Debug("Starting");
|
||||
}
|
||||
|
||||
dataserver(key id, string data)
|
||||
{
|
||||
if (id == defaultslineid)
|
||||
{
|
||||
string sid;
|
||||
string tok;
|
||||
string val;
|
||||
integer i;
|
||||
if (data == EOF && split_line != "" )
|
||||
{
|
||||
data = split_line ;
|
||||
split_line = "" ;
|
||||
}
|
||||
if (data != EOF)
|
||||
{
|
||||
// first we can filter out & skip blank lines & remarks
|
||||
data = llStringTrim(data, STRING_TRIM_HEAD);
|
||||
if (data == "" || llGetSubString(data, 0, 0) == "#") jump nextline;
|
||||
|
||||
// check for "continued" line pieces
|
||||
if ( llStringLength(split_line) )
|
||||
{
|
||||
data = split_line + data ;
|
||||
split_line = "" ;
|
||||
}
|
||||
if ( llGetSubString( data, -1, -1) == ESCAPE_CHAR )
|
||||
{
|
||||
split_line = llDeleteSubString( data, -1, -1) ;
|
||||
jump nextline ;
|
||||
}
|
||||
|
||||
// Next we wish to peel the special settings for this collar
|
||||
// unique collar id is followed by Script (that settings are for) + "=tok~val~tok~val"
|
||||
i = llSubStringIndex(data, "_");
|
||||
id = llGetSubString(data, 0, i);
|
||||
if (id != DESIGN_ID && id != "User_") jump nextline;
|
||||
data = llGetSubString(data, i + 1, -1); // shave id off
|
||||
i = llSubStringIndex(data, "=");
|
||||
sid = (llGetSubString(data, 0, i - 1)) + "_";
|
||||
data = llGetSubString(data, i + 1, -1);
|
||||
list lData = llParseString2List(data, ["~"], []);
|
||||
for (i = 0; i < llGetListLength(lData); i += 2)
|
||||
{
|
||||
tok = llList2String(lData, i);
|
||||
val = llList2String(lData, i + 1);
|
||||
if (sid == g_sScript) // a setting for this script
|
||||
{
|
||||
if (tok == "Pref" && val == "User") USER_PREF = TRUE;
|
||||
}
|
||||
if (id == DESIGN_ID) DESIGN_SETTINGS = SetSetting(DESIGN_SETTINGS, sid + tok, val);
|
||||
else USER_SETTINGS = SetSetting(USER_SETTINGS, sid + tok, val);
|
||||
}
|
||||
@nextline;
|
||||
defaultsline++;
|
||||
defaultslineid = llGetNotecardLine(defaultscard, defaultsline);
|
||||
}
|
||||
else
|
||||
{
|
||||
// wait a sec before sending settings, in case other scripts are
|
||||
// still resetting.
|
||||
llSleep(2.0);
|
||||
SendValues();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
link_message(integer sender, integer iNum, string sStr, key id)
|
||||
{
|
||||
if (UserCommand(iNum, sStr, id)) return;
|
||||
if (iNum == LM_SETTING_SAVE)
|
||||
{
|
||||
//save the token, value
|
||||
list params = llParseString2List(sStr, ["="], []);
|
||||
string token = llList2String(params, 0);
|
||||
string value = llList2String(params, 1);
|
||||
// if it's a revert to a designer setting, wipe it from user list
|
||||
// otherwise, set it to user list
|
||||
if (~llListFindList(DESIGN_SETTINGS, [token, value])) DelSetting(token);
|
||||
else USER_SETTINGS = SetSetting(USER_SETTINGS, token, value);
|
||||
}
|
||||
else if (iNum == LM_SETTING_REQUEST)
|
||||
{
|
||||
//check the cache for the token
|
||||
if (SettingExists(sStr))
|
||||
{
|
||||
llMessageLinked(LINK_SET, LM_SETTING_RESPONSE, sStr + "=" + GetSetting(sStr), "");
|
||||
}
|
||||
else
|
||||
{
|
||||
llMessageLinked(LINK_SET, LM_SETTING_EMPTY, sStr, "");
|
||||
}
|
||||
}
|
||||
else if (iNum == LM_SETTING_DELETE)
|
||||
{
|
||||
DelSetting(sStr);
|
||||
}
|
||||
else if (iNum == DIALOG_RESPONSE)
|
||||
{
|
||||
if (id == g_kMenuID)
|
||||
{
|
||||
list lMenuParams = llParseStringKeepNulls(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0); // avatar using the menu
|
||||
string sMessage = llList2String(lMenuParams, 1); // button label
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2); // menu page
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3); // auth level of avatar
|
||||
// request to switch to parent menu
|
||||
if (sMessage == UPMENU)
|
||||
{
|
||||
llMessageLinked(LINK_ROOT, iAuth, "menu "+ PARENT_MENU, kAv);
|
||||
return;
|
||||
}
|
||||
if (iAuth < COMMAND_OWNER || iAuth > COMMAND_WEARER) return;
|
||||
|
||||
if(iAuth==COMMAND_OWNER||iAuth==COMMAND_WEARER)
|
||||
{ //moving everything to UserCommand to save doubling up on code.
|
||||
UserCommand(iAuth,llGetSubString(g_sScript,0,-2)+" "+sMessage,kAv);
|
||||
}
|
||||
else Notify(kAv,"Sorry, only Owners & Wearers may acces this feature.",FALSE);
|
||||
|
||||
//if (sMessage == PREFDESI)
|
||||
//{
|
||||
// USER_PREF = FALSE;
|
||||
// USER_SETTINGS = SetSetting(USER_SETTINGS, g_sScript + "Pref", "Designer");
|
||||
//}
|
||||
//else if (sMessage == PREFUSER)
|
||||
//{
|
||||
// USER_PREF = TRUE;
|
||||
// USER_SETTINGS = SetSetting(USER_SETTINGS, g_sScript + "Pref", "User");
|
||||
//}
|
||||
//else if (sMessage == DUMPCACHE)
|
||||
//{
|
||||
// if (iAuth == COMMAND_OWNER || iAuth == COMMAND_WEARER) DumpCache(kAv);
|
||||
// else Notify(kAv, "Only Owners & Wearer may access this feature.", FALSE);
|
||||
//}
|
||||
//else if (sMessage == LOADCARD)
|
||||
//{
|
||||
// if(kAv==g_kWearer)
|
||||
// {
|
||||
// defaultsline = 0;
|
||||
// defaultslineid = llGetNotecardLine(defaultscard, defaultsline);
|
||||
// }
|
||||
// else Notify(kAv,"Only the collar wearer may reload defaults.",FALSE);
|
||||
//}
|
||||
// else if (sMessage == REFRESH_MENU)
|
||||
//{
|
||||
// if(iAuth==COMMAND_OWNER||iAuth==COMMAND_WEARER)
|
||||
// {
|
||||
// llDialog(kAv, "\n\nRebuilding menu.\n\nThis may take several seconds.", [], -341321);
|
||||
// llResetOtherScript(g_sMenuScript);
|
||||
// }
|
||||
// else Notify(kAv,"Only the collar wearer and owners may refresh menus.",FALSE);
|
||||
//}
|
||||
|
||||
DoMenu(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
//else if (iNum == MENUNAME_REQUEST && sStr == PARENT_MENU)
|
||||
//{
|
||||
// llMessageLinked(LINK_SET, MENUNAME_RESPONSE, PARENT_MENU + "|" + SUBMENU, "");
|
||||
//}
|
||||
else if (iNum == DIALOG_TIMEOUT)
|
||||
{
|
||||
// timeout from menu system, you do not have to react on this, but you can
|
||||
if (id == g_kMenuID)
|
||||
{
|
||||
//Debug("The user was to slow or lazy, we got a timeout!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
changed(integer change)
|
||||
{
|
||||
if (change & CHANGED_COLOR)
|
||||
{
|
||||
//llSleep(0.1); // not sure for need this sleep...
|
||||
{
|
||||
if (llGetAlpha(ALL_SIDES) > 0) STEALTH = FALSE;
|
||||
else STEALTH = TRUE;
|
||||
}
|
||||
}
|
||||
if (change & CHANGED_OWNER) llResetScript();
|
||||
if (change & CHANGED_INVENTORY)
|
||||
{
|
||||
if (llGetInventoryKey(defaultscard) != card_key)
|
||||
{
|
||||
// the defaultsettings card changed. Re-read it.
|
||||
defaultsline = 0;
|
||||
if (llGetInventoryKey(defaultscard)!=NULL_KEY) {
|
||||
defaultslineid = llGetNotecardLine(defaultscard, defaultsline);
|
||||
card_key = llGetInventoryKey(defaultscard);
|
||||
}
|
||||
}
|
||||
llSleep(1.0); //pause, then send values if inventory changes, in case script was edited and needs its settings again
|
||||
SendValues();
|
||||
}
|
||||
/*
|
||||
if (iChange & CHANGED_REGION) {
|
||||
if (g_iProfiled) {
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
@@ -1,429 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - shininess //
|
||||
// version 3.988 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//based on OpenCollar - texture
|
||||
|
||||
string g_sParentMenu = "Appearance";
|
||||
string g_sSubMenu = "Shininess";
|
||||
|
||||
string g_sIgnoreType = "noshine" ; // or "notexture" if you don't want use alternate prims descriptions;
|
||||
|
||||
//MESSAGE MAP
|
||||
integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
|
||||
//integer SEND_IM = 1000; deprecated. each script should send its own IMs now. This is to reduce even the tiny bt of lag caused by having IM slave scripts
|
||||
integer POPUP_HELP = 1001;
|
||||
|
||||
integer LM_SETTING_SAVE = 2000;
|
||||
integer LM_SETTING_REQUEST = 2001;
|
||||
integer LM_SETTING_RESPONSE = 2002;
|
||||
integer LM_SETTING_DELETE = 2003;
|
||||
integer LM_SETTING_EMPTY = 2004;
|
||||
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
integer TOUCH_REQUEST = -9500;
|
||||
integer TOUCH_CANCEL = -9501;
|
||||
integer TOUCH_RESPONSE = -9502;
|
||||
integer TOUCH_EXPIRE = -9503;
|
||||
|
||||
string CTYPE = "collar";
|
||||
|
||||
string UPMENU = "BACK";
|
||||
|
||||
list g_lShiny = ["none","low","medium","high"];
|
||||
string ALL = "All" ;
|
||||
|
||||
list g_lElements;
|
||||
list g_lShinySettings;
|
||||
|
||||
list g_lButtons;
|
||||
|
||||
list g_lMenuIDs;
|
||||
key g_kTouchID;
|
||||
|
||||
integer g_iAppLock = FALSE;
|
||||
string g_sAppLockToken = "Appearance_Lock";
|
||||
|
||||
string g_sCurrentElement = "";
|
||||
|
||||
key g_kWearer;
|
||||
|
||||
string g_sScript ;
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
key Dialog(key kRCPT, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth)
|
||||
{
|
||||
key kID = llGenerateKey();
|
||||
llMessageLinked(LINK_THIS, DIALOG, (string)kRCPT + "|" + sPrompt + "|" + (string)iPage + "|" + llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kID);
|
||||
//Debug("Made menu.");
|
||||
return kID;
|
||||
}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer)
|
||||
{
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else
|
||||
{
|
||||
if (llGetAgentSize(kID)) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
string GetScriptID()
|
||||
{
|
||||
// strip away "OpenCollar - " leaving the script's individual name
|
||||
list parts = llParseString2List(llGetScriptName(), ["-"], []);
|
||||
return llStringTrim(llList2String(parts, 1), STRING_TRIM) + "_";
|
||||
}
|
||||
|
||||
key TouchRequest(key kRCPT, integer iTouchStart, integer iTouchEnd, integer iAuth)
|
||||
{
|
||||
key kID = llGenerateKey();
|
||||
integer iFlags = 0;
|
||||
if (iTouchStart) iFlags = iFlags | 0x01;
|
||||
if (iTouchEnd) iFlags = iFlags | 0x02;
|
||||
llMessageLinked(LINK_THIS, TOUCH_REQUEST, (string)kRCPT + "|" + (string)iFlags + "|" + (string)iAuth, kID);
|
||||
return kID;
|
||||
}
|
||||
|
||||
ShinyMenu(key kAv, integer iAuth)
|
||||
{
|
||||
string sPrompt = "Pick a Shiny.";
|
||||
g_lMenuIDs+=[Dialog(kAv, sPrompt, g_lShiny, [UPMENU],0, iAuth)];
|
||||
}
|
||||
|
||||
ElementMenu(key kAv, integer iAuth)
|
||||
{
|
||||
string sPrompt = "Pick which part of the "+CTYPE+" you would like to change shiny.\n\nChoose *Touch* if you want to select the part by directly clicking on the "+CTYPE+".";
|
||||
g_lButtons = llListSort(g_lElements, 1, TRUE) + [ALL] ;
|
||||
g_lMenuIDs+=[Dialog(kAv, sPrompt, g_lButtons, ["*Touch*", UPMENU],0, iAuth)];
|
||||
}
|
||||
|
||||
string ElementType(integer iLinkNumber)
|
||||
{
|
||||
//string sDesc = (string)llGetObjectDetails(llGetLinkKey(iLinkNumber), [OBJECT_DESC]);
|
||||
string sDesc = llList2String(llGetLinkPrimitiveParams(iLinkNumber, [PRIM_DESC]), 0);
|
||||
//each prim should have <elementname> in its description, plus "noshiny, if you want the prim to
|
||||
//not appear in the shiny menu
|
||||
list lParams = llParseString2List(sDesc, ["~"], []);
|
||||
if ((~(integer)llListFindList(lParams, [g_sIgnoreType])) || sDesc == "" || sDesc == " " || sDesc == "(No Description)")
|
||||
{
|
||||
return g_sIgnoreType;
|
||||
}
|
||||
else
|
||||
{
|
||||
return llList2String(lParams, 0);
|
||||
}
|
||||
}
|
||||
|
||||
BuildElementList()
|
||||
{
|
||||
integer n;
|
||||
integer iLinkCount = llGetNumberOfPrims();
|
||||
|
||||
//root prim is 1, so start at 2
|
||||
for (n = 2; n <= iLinkCount; n++)
|
||||
{
|
||||
string sElement = ElementType(n);
|
||||
if (!(~llListFindList(g_lElements, [sElement])) && sElement != g_sIgnoreType)
|
||||
{
|
||||
g_lElements += [sElement];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SetAllShiny(integer iShiny)
|
||||
{
|
||||
integer elements = llGetListLength(g_lElements) ;
|
||||
integer index = 0 ;
|
||||
do
|
||||
{
|
||||
string sElement = llList2String(g_lElements, index);
|
||||
SetElementShiny(sElement, iShiny);
|
||||
index++ ;
|
||||
}while (index < elements ) ;
|
||||
}
|
||||
|
||||
SetElementShiny(string sElement, integer iShiny)
|
||||
{
|
||||
SetElement(sElement, iShiny);
|
||||
AddShinySettings(sElement, iShiny);
|
||||
//save to settings DB
|
||||
llMessageLinked(LINK_THIS, LM_SETTING_SAVE, g_sScript + sElement + "=" + (string)iShiny, "");
|
||||
}
|
||||
|
||||
SetElement(string sElement, integer iShiny)
|
||||
{
|
||||
integer n;
|
||||
integer iLinkCount = llGetNumberOfPrims();
|
||||
for (n = 2; n <= iLinkCount; n++)
|
||||
{
|
||||
if (ElementType(n) == sElement)
|
||||
{
|
||||
llSetLinkPrimitiveParamsFast(n,[PRIM_BUMP_SHINY,ALL_SIDES,iShiny,0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
AddShinySettings(string sElement, integer iShiny)
|
||||
{
|
||||
integer i = llListFindList(g_lShinySettings, [sElement]);
|
||||
if (i == -1)
|
||||
{
|
||||
g_lShinySettings += [sElement, iShiny];
|
||||
}
|
||||
else
|
||||
{
|
||||
g_lShinySettings = llListReplaceList(g_lShinySettings, [iShiny], i+1, i+1);
|
||||
}
|
||||
}
|
||||
|
||||
UpdateElements()
|
||||
{
|
||||
integer elements = llGetListLength(g_lShinySettings) ;
|
||||
integer i = 0 ;
|
||||
do
|
||||
{
|
||||
string sElement = llList2String(g_lShinySettings, i);
|
||||
integer iShiny = llList2Integer(g_lShinySettings, i+1);
|
||||
SetElement(sElement, iShiny);
|
||||
i+=2 ;
|
||||
}while (i < elements ) ;
|
||||
}
|
||||
|
||||
|
||||
// returns TRUE if eligible (AUTHED link message number)
|
||||
integer UserCommand(integer iNum, string sStr, key kID) // here iNum: auth value, sStr: user command, kID: avatar id
|
||||
{
|
||||
if (iNum > COMMAND_WEARER || iNum < COMMAND_OWNER) return FALSE; // sanity check
|
||||
|
||||
list lParams = llParseString2List(sStr, [" "], []);
|
||||
string sCommand = llList2String(lParams, 0);
|
||||
|
||||
if (sStr == "menu "+ g_sSubMenu || sStr == "shiny")
|
||||
{
|
||||
if (kID!=g_kWearer && iNum!=COMMAND_OWNER)
|
||||
{
|
||||
Notify(kID,"You are not allowed to change the shiny.", FALSE);
|
||||
llMessageLinked(LINK_THIS, iNum, "menu "+g_sParentMenu, kID);
|
||||
}
|
||||
else if (g_iAppLock)
|
||||
{
|
||||
Notify(kID,"The appearance of the "+CTYPE+" is locked. You cannot access this menu now!", FALSE);
|
||||
llMessageLinked(LINK_THIS, iNum, "menu "+g_sParentMenu, kID);
|
||||
}
|
||||
else
|
||||
{
|
||||
g_sCurrentElement = "";
|
||||
ElementMenu(kID, iNum);
|
||||
}
|
||||
}
|
||||
if (sCommand == "setshiny")
|
||||
{
|
||||
if (kID!=g_kWearer && iNum!=COMMAND_OWNER)
|
||||
{
|
||||
Notify(kID,"You are not allowed to change the shiny.", FALSE);
|
||||
}
|
||||
else if (g_iAppLock)
|
||||
{
|
||||
Notify(kID,"The appearance of the "+CTYPE+" is locked. You cannot access this menu now!", FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
string sElement = llList2String(lParams, 1);
|
||||
integer iShiny = (integer)(llList2String(lParams, 2));
|
||||
if (sElement == ALL || sElement == "all") SetAllShiny(iShiny);
|
||||
else SetElementShiny(sElement, iShiny);
|
||||
}
|
||||
}
|
||||
else if (sCommand == "lockappearance")
|
||||
{
|
||||
if (iNum == COMMAND_OWNER) g_iAppLock = llList2Integer(lParams, 1);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// Get from Group_Token=Value , 0=Group, 1=Token, 2=Value
|
||||
string SplitTokenValue(string in, integer slot)
|
||||
{
|
||||
string out ;
|
||||
if (slot==0) out = llGetSubString(in, 0, llSubStringIndex(in, "_") );
|
||||
else if (slot==1) out = llGetSubString(in, llSubStringIndex(in, "_")+1, llSubStringIndex(in, "=")-1);
|
||||
else if (slot==2) out = llGetSubString(in, llSubStringIndex(in, "=")+1, -1);
|
||||
return out ;
|
||||
}
|
||||
|
||||
/*
|
||||
RequestSettings()
|
||||
{
|
||||
// restore settings from DB after reset script
|
||||
llMessageLinked(LINK_THIS, LM_SETTING_REQUEST, g_sAppLockToken, "");
|
||||
|
||||
// request settings for all Elements
|
||||
integer n;
|
||||
integer iStop = llGetListLength(g_lElements);
|
||||
for (n = 0; n < iStop; n++)
|
||||
{
|
||||
string sElement = llList2String(g_lElements, n);
|
||||
llMessageLinked(LINK_THIS, LM_SETTING_REQUEST, g_sScript + sElement, "");
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
default {
|
||||
on_rez(integer iParam) {
|
||||
llResetScript();
|
||||
}
|
||||
|
||||
state_entry() {
|
||||
//llSetMemoryLimit(65536); //this script needs to be profiled, and its memory limited
|
||||
g_kWearer = llGetOwner();
|
||||
g_sScript = GetScriptID();
|
||||
BuildElementList();
|
||||
//Debug("Starting");
|
||||
}
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID)
|
||||
{
|
||||
if (UserCommand(iNum, sStr, kID)) {return;}
|
||||
else if (iNum == LM_SETTING_RESPONSE)
|
||||
{
|
||||
string sGroup = SplitTokenValue(sStr, 0);
|
||||
string sToken = SplitTokenValue(sStr, 1);
|
||||
string sValue = SplitTokenValue(sStr, 2);
|
||||
if (sGroup == g_sScript) AddShinySettings(sToken, (integer)sValue);
|
||||
else if (sGroup+sToken == g_sAppLockToken) g_iAppLock = (integer)sValue;
|
||||
else if (sGroup+sToken == "Global_CType") CTYPE = sValue;
|
||||
else if (sStr == "settings=sent") UpdateElements();
|
||||
}
|
||||
else if (iNum == MENUNAME_REQUEST && sStr == g_sParentMenu)
|
||||
{
|
||||
llMessageLinked(LINK_THIS, MENUNAME_RESPONSE, g_sParentMenu + "|" + g_sSubMenu, "");
|
||||
}
|
||||
else if (iNum == DIALOG_RESPONSE)
|
||||
{
|
||||
integer iMenuIndex = llListFindList(g_lMenuIDs, [kID]);
|
||||
if (iMenuIndex != -1)
|
||||
{
|
||||
g_lMenuIDs=llDeleteSubList(g_lMenuIDs,iMenuIndex,iMenuIndex);
|
||||
//got a menu response meant for us. pull out values
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
if (sMessage == UPMENU)
|
||||
{
|
||||
if (g_sCurrentElement == "")
|
||||
{
|
||||
//main menu
|
||||
llMessageLinked(LINK_THIS, iAuth, "menu "+g_sParentMenu, kAv);
|
||||
}
|
||||
else
|
||||
{
|
||||
g_sCurrentElement = "" ;
|
||||
ElementMenu(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
else if (sMessage == "*Touch*")
|
||||
{
|
||||
Notify(kAv, "Please touch the part of the collar you want to shiny.", FALSE);
|
||||
g_kTouchID = TouchRequest(kAv, TRUE, FALSE, iAuth);
|
||||
}
|
||||
else if (g_sCurrentElement == "")
|
||||
{
|
||||
//we just got the element name
|
||||
g_sCurrentElement = sMessage;
|
||||
ShinyMenu(kAv, iAuth);
|
||||
}
|
||||
else if (~(integer)llListFindList(g_lShiny, [sMessage]))
|
||||
{
|
||||
integer iShiny = llListFindList(g_lShiny, [sMessage]);
|
||||
if(g_sCurrentElement == ALL) SetAllShiny(iShiny);
|
||||
else SetElementShiny(g_sCurrentElement, iShiny);
|
||||
ShinyMenu(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (iNum == DIALOG_TIMEOUT)
|
||||
{
|
||||
integer iMenuIndex = llListFindList(g_lMenuIDs, [kID]);
|
||||
if (iMenuIndex != -1)
|
||||
{
|
||||
g_lMenuIDs=llDeleteSubList(g_lMenuIDs,iMenuIndex,iMenuIndex);
|
||||
}
|
||||
}
|
||||
else if (iNum == TOUCH_RESPONSE)
|
||||
{
|
||||
if (kID == g_kTouchID)
|
||||
{
|
||||
list lParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lParams, 0);
|
||||
integer iAuth = (integer)llList2String(lParams, 1);
|
||||
integer iLinkNumber = (integer)llList2String(lParams, 3);
|
||||
|
||||
string sElement = ElementType(iLinkNumber);
|
||||
if (sElement != g_sIgnoreType)
|
||||
{
|
||||
g_sCurrentElement = sElement;
|
||||
ShinyMenu(kAv, iAuth);
|
||||
Notify(kAv, "You selected \""+sElement+"\".", FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
Notify(kAv, "You selected a prim which is not shiny. You can try again.", FALSE);
|
||||
ElementMenu(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
changed(integer iChange) {
|
||||
if (iChange & CHANGED_REGION) {
|
||||
if (g_iProfiled) {
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
@@ -1,420 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - styles //
|
||||
// version 3.995 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
string g_sSubMenu = "Styles";
|
||||
string g_sParentMenu = "Appearance";
|
||||
string CTYPE = "collar";
|
||||
key g_kWearer;
|
||||
string UPMENU = "BACK";
|
||||
string DUMP = "Dump Style";
|
||||
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
|
||||
integer LM_SETTING_SAVE = 2000;
|
||||
//integer LM_SETTING_REQUEST = 2001;
|
||||
integer LM_SETTING_RESPONSE = 2002;
|
||||
//integer LM_SETTING_DELETE = 2003;
|
||||
//integer LM_SETTING_EMPTY = 2004;
|
||||
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
//script specific variables
|
||||
list g_lMenuIDs;//3-strided list of avkey, dialogid, menuname
|
||||
integer g_iMenuStride = 3;
|
||||
|
||||
string g_sStyle;
|
||||
list g_lElementsSettings; // [element_name,"key_texture~vector_color~integer_shine"]
|
||||
|
||||
list g_lStyles; // list of style names
|
||||
list g_lStyleSettings; // list of style settings ["Stylename1", "elementname~keytexture~vectorcolor~integershine", "elementname~keytexture~vectorcolor~integershine", ... "Stylename2",....]
|
||||
|
||||
key g_iNotecardId;
|
||||
key g_kNotecardReadRequest;
|
||||
string g_sNotecardName=".styles";
|
||||
integer g_iNotecardLine=0;
|
||||
string g_sNotecardStyle ;
|
||||
|
||||
integer g_iAppLock = FALSE;
|
||||
string g_sAppLockToken = "Appearance_Lock";
|
||||
|
||||
integer g_iHasColorScript = FALSE;
|
||||
integer g_iHasTextureScript = FALSE;
|
||||
integer g_iHasShineScript = FALSE;
|
||||
|
||||
//standard OC functions
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
Dialog(key kRCPT, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth, string menuType) {
|
||||
key kID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kRCPT + "|" + sPrompt + "|" + (string)iPage + "|"
|
||||
+ llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kID);
|
||||
|
||||
integer iMenuIndex = llListFindList(g_lMenuIDs, [kRCPT]);
|
||||
list lAddMe = [kRCPT, kID, menuType];
|
||||
if (iMenuIndex == -1) g_lMenuIDs += lAddMe;
|
||||
else g_lMenuIDs = llListReplaceList(g_lMenuIDs, lAddMe, iMenuIndex, iMenuIndex + g_iMenuStride - 1);
|
||||
}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer) {
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else {
|
||||
if (llGetAgentSize(kID)!=ZERO_VECTOR) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
//menu generators
|
||||
StyleMenu(key kAv, integer iAuth)
|
||||
{
|
||||
Dialog(kAv, "\nCurrent Style: "+g_sStyle+"\n\nSelect an style from the list", g_lStyles, [DUMP, UPMENU],0, iAuth, "StyleMenu");
|
||||
}
|
||||
|
||||
SetStyle(string sStyle, integer iAuth, key kAv)
|
||||
{
|
||||
if (llListFindList(g_lStyles,[sStyle]) == -1) return; // unknown style
|
||||
|
||||
g_sStyle = sStyle;
|
||||
integer index = llListFindList(g_lStyleSettings,[sStyle]) ;
|
||||
if (index == -1) return; // no style settings
|
||||
|
||||
while (index++ >= 0)
|
||||
{
|
||||
string setting = llList2String(g_lStyleSettings,index);
|
||||
if ((~llListFindList(g_lStyles,[setting])) || setting == "") index = -1;
|
||||
else
|
||||
{
|
||||
list lParams = llParseString2List(setting,["~"],[]);
|
||||
string sElement = llStringTrim(llList2String(lParams,0),STRING_TRIM);
|
||||
if (sElement != "")
|
||||
{
|
||||
string sTexture = llStringTrim(llList2String(lParams,1),STRING_TRIM);
|
||||
if (sTexture != "")
|
||||
{
|
||||
llMessageLinked(LINK_SET, iAuth, "settexture " + sElement+" "+sTexture, kAv);
|
||||
if (!g_iHasTextureScript) SetTexture(sElement, sTexture);
|
||||
}
|
||||
|
||||
string sColor = llStringTrim(llList2String(lParams,2),STRING_TRIM);
|
||||
if (sColor != "")
|
||||
{
|
||||
llMessageLinked(LINK_SET, iAuth, "setcolor "+sElement+" "+sColor, kAv);
|
||||
if (!g_iHasColorScript) SetColor(sElement, (vector)sColor);
|
||||
}
|
||||
|
||||
string sShine = llStringTrim(llList2String(lParams,3),STRING_TRIM);
|
||||
if (sShine != "")
|
||||
{
|
||||
llMessageLinked(LINK_SET, iAuth, "setshiny " + sElement+" "+sShine, kAv);
|
||||
if (!g_iHasShineScript) SetShine(sElement, (integer)sShine);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SetTexture(string sElement, string sTex)
|
||||
{
|
||||
integer i;
|
||||
integer n = llGetNumberOfPrims();
|
||||
for (i = 2; i <= n; i++)
|
||||
{
|
||||
if (ElementType(i,"notexture") == sElement)
|
||||
{
|
||||
// llSetLinkPrimitiveParamsFast(iLink, [PRIM_TEXTURE,ALL_SIDES,sTex,<1.0,1.0,1.0>,<0.0,0.0,0.0>,0.0] );
|
||||
// update prim texture for each face with save texture repeats, offsets and rotations
|
||||
integer iSides = llGetLinkNumberOfSides(i);
|
||||
integer iFace ;
|
||||
for (iFace = 0; iFace < iSides; iFace++)
|
||||
{
|
||||
list lParams = llGetLinkPrimitiveParams(i, [PRIM_TEXTURE, iFace ]);
|
||||
lParams = llDeleteSubList(lParams,0,0); // get texture params
|
||||
llSetLinkPrimitiveParamsFast(i, [PRIM_TEXTURE, iFace, sTex]+lParams);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SetColor(string sElement, vector vColor)
|
||||
{
|
||||
integer i;
|
||||
integer n = llGetNumberOfPrims();
|
||||
for (i = 2; i <= n; i++)
|
||||
{
|
||||
if (ElementType(i,"nocolor") == sElement) llSetLinkColor(i, vColor, ALL_SIDES);
|
||||
}
|
||||
}
|
||||
|
||||
SetShine(string sElement, integer iShine)
|
||||
{
|
||||
integer i;
|
||||
integer n = llGetNumberOfPrims();
|
||||
for (i = 2; i <= n; i++)
|
||||
{
|
||||
if (ElementType(i,"notexture") == sElement) llSetLinkPrimitiveParamsFast(i,[PRIM_BUMP_SHINY,ALL_SIDES,iShine,0]);
|
||||
}
|
||||
}
|
||||
|
||||
string ElementType(integer iLinkNum, string sType)
|
||||
{
|
||||
string sDesc = llList2String(llGetLinkPrimitiveParams(iLinkNum, [PRIM_DESC]),0);
|
||||
list lParams = llParseString2List(llStringTrim(sDesc,STRING_TRIM), ["~"], []);
|
||||
if ((~llListFindList(lParams,[sType])) || sDesc == "" || sDesc == "(No Description)") return sType;
|
||||
else return llList2String(lParams, 0);
|
||||
}
|
||||
|
||||
AddElementSetting(string element, string value, integer n )
|
||||
{
|
||||
if (element =="") return ;
|
||||
string params;
|
||||
integer i = llListFindList(g_lElementsSettings, [element]);
|
||||
if (i==-1)
|
||||
{
|
||||
if(n==0) params = value+"~ ~ ";
|
||||
if(n==1) params = " ~"+value+"~ ";
|
||||
if(n==2) params = " ~ ~"+value;
|
||||
g_lElementsSettings += [element, params];
|
||||
}
|
||||
else
|
||||
{
|
||||
string sParams = llList2String(g_lElementsSettings,i+1);
|
||||
list lParams = llParseString2List(sParams,["~"],[]);
|
||||
lParams = llListReplaceList(lParams, [value], n, n);
|
||||
sParams = llDumpList2String(lParams,"~");
|
||||
g_lElementsSettings = llListReplaceList(g_lElementsSettings, [sParams], i+1, i+1);
|
||||
}
|
||||
}
|
||||
|
||||
integer UserCommand(integer iAuth, string sStr, key kAv, integer remenu)
|
||||
{
|
||||
if (iAuth > COMMAND_WEARER || iAuth < COMMAND_OWNER) return FALSE; // sanity check
|
||||
|
||||
list lParams = llParseString2List(sStr, [" "], []);
|
||||
string sCommand = llList2String(lParams, 0);
|
||||
//string sValue = llList2String(lParams, 1);
|
||||
if (sStr == "menu "+ g_sSubMenu || llToLower(sStr) == "styles")
|
||||
{
|
||||
if (kAv!=g_kWearer && iAuth!=COMMAND_OWNER)
|
||||
{
|
||||
Notify(kAv,"You are not allowed to change the "+CTYPE+"'s style.", FALSE);
|
||||
llMessageLinked(LINK_SET, iAuth, "menu " + g_sParentMenu, kAv);
|
||||
}
|
||||
else if (g_iAppLock)
|
||||
{
|
||||
Notify(kAv, "The appearance of the " + CTYPE + " is locked. You cannot access this menu now!", FALSE);
|
||||
llMessageLinked(LINK_SET, iAuth, "menu " + g_sParentMenu, kAv);
|
||||
}
|
||||
else StyleMenu(kAv, iAuth);
|
||||
}
|
||||
else if (sCommand == "lockappearance" && iAuth == COMMAND_OWNER)
|
||||
{
|
||||
string sValue = llStringTrim(llDeleteSubString(sStr,0,llStringLength(sCommand)),STRING_TRIM);
|
||||
if (sValue == "0") g_iAppLock = FALSE;
|
||||
if (sValue == "1") g_iAppLock = TRUE;
|
||||
}
|
||||
else if (sCommand == "style" && !g_iAppLock)
|
||||
{
|
||||
string sValue = llStringTrim(llDeleteSubString(sStr,0,llStringLength(sCommand)),STRING_TRIM);
|
||||
if (~llListFindList(g_lStyles,[sValue]))
|
||||
{
|
||||
SetStyle(sValue, iAuth, kAv);
|
||||
llMessageLinked(LINK_THIS, LM_SETTING_SAVE, "styles_style=" + sValue, "");
|
||||
}
|
||||
else Notify(kAv,"Unrecognised style: "+sValue+" not in '"+llDumpList2String(g_lStyles,",")+"'",FALSE);
|
||||
if (remenu) StyleMenu(kAv, iAuth);
|
||||
}
|
||||
else if (sStr == "dumpstyle")
|
||||
{
|
||||
DumpSettings(kAv,"~");
|
||||
if (remenu) StyleMenu(kAv, iAuth);
|
||||
}
|
||||
return TRUE ;
|
||||
}
|
||||
|
||||
DumpSettings(key kAv, string sep)
|
||||
{
|
||||
g_lElementsSettings = llListSort(g_lElementsSettings, 2, TRUE);
|
||||
|
||||
string out = "\n# Copy all below into '"+g_sNotecardName+"' notecard and change 'New Style' to own style name:\n\n[ New Style ]\n";
|
||||
integer i;
|
||||
for (i = 0; i < llGetListLength(g_lElementsSettings); i += 2)
|
||||
{
|
||||
out += llList2String(g_lElementsSettings, i)+sep+llList2String(g_lElementsSettings, i+1)+"\n";
|
||||
}
|
||||
Notify(kAv,out,FALSE);
|
||||
}
|
||||
|
||||
CheckScripts()
|
||||
{
|
||||
g_iHasTextureScript = g_iHasColorScript = g_iHasShineScript = FALSE;
|
||||
if (llGetInventoryType("OpenCollar - color") == INVENTORY_SCRIPT) g_iHasColorScript = TRUE;
|
||||
if (llGetInventoryType("OpenCollar - texture") == INVENTORY_SCRIPT) g_iHasTextureScript = TRUE;
|
||||
if (llGetInventoryType("OpenCollar - shininess") == INVENTORY_SCRIPT) g_iHasShineScript = TRUE;
|
||||
// this is for my own script:
|
||||
//if (llGetInventoryType("OpenCollar - customize") == INVENTORY_SCRIPT) g_iHasTextureScript = g_iHasColorScript = g_iHasShineScript = TRUE;
|
||||
}
|
||||
|
||||
default
|
||||
{
|
||||
on_rez(integer param)
|
||||
{
|
||||
//llResetScript();
|
||||
g_lElementsSettings = [] ;
|
||||
CheckScripts();
|
||||
}
|
||||
|
||||
state_entry()
|
||||
{
|
||||
CheckScripts();
|
||||
g_kWearer = llGetOwner();
|
||||
g_iNotecardId = llGetInventoryKey(g_sNotecardName);
|
||||
if(g_iNotecardId)
|
||||
{
|
||||
g_iNotecardLine=0;
|
||||
g_kNotecardReadRequest=llGetNotecardLine(g_sNotecardName,0);
|
||||
}
|
||||
//else llOwnerSay(g_sNotecardName+" notecard absent!");
|
||||
}
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID)
|
||||
{
|
||||
if (UserCommand(iNum, sStr, kID, FALSE)) return;
|
||||
else if (iNum == MENUNAME_REQUEST && sStr == g_sParentMenu)
|
||||
{
|
||||
llMessageLinked(LINK_THIS, MENUNAME_RESPONSE, g_sParentMenu + "|" + g_sSubMenu, "");
|
||||
}
|
||||
else if (iNum == LM_SETTING_RESPONSE)
|
||||
{
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sGroupToken = llList2String(lParams, 0);
|
||||
string sGroup = llList2String(llParseString2List(sGroupToken,["_"],[]),0);
|
||||
string sToken = llList2String(llParseString2List(sGroupToken,["_"],[]),1);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
if (sToken == "CType") CTYPE = sValue;
|
||||
else if (sGroup == "texture") AddElementSetting(sToken, sValue, 0);
|
||||
else if (sGroup == "color") AddElementSetting(sToken, sValue, 1);
|
||||
else if (sGroup == "shininess") AddElementSetting(sToken, sValue, 2);
|
||||
else if (sGroupToken == "styles_style") g_sStyle = sValue; // SetStyle(sValue,COMMAND_WEARER,g_kWearer);
|
||||
else if (sGroupToken == g_sAppLockToken) g_iAppLock = (integer)sValue;
|
||||
}
|
||||
else if (iNum == LM_SETTING_SAVE)
|
||||
{
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sGroupToken = llList2String(lParams, 0);
|
||||
string sGroup = llList2String(llParseString2List(sGroupToken,["_"],[]),0);
|
||||
string sToken = llList2String(llParseString2List(sGroupToken,["_"],[]),1);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
if (sToken == "CType") CTYPE = sValue;
|
||||
else if (sGroup == "texture") AddElementSetting(sToken, sValue, 0);
|
||||
else if (sGroup == "color") AddElementSetting(sToken, sValue, 1);
|
||||
else if (sGroup == "shininess") AddElementSetting(sToken, sValue, 2);
|
||||
else if (sGroupToken == g_sAppLockToken) g_iAppLock = (integer)sValue;
|
||||
}
|
||||
else if (iNum == DIALOG_RESPONSE)
|
||||
{
|
||||
integer iMenuIndex = llListFindList(g_lMenuIDs, [kID]);
|
||||
if (~iMenuIndex)
|
||||
{ //got a menu response meant for us. pull out values
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
string sMenuType = llList2String(g_lMenuIDs, iMenuIndex + 1);
|
||||
|
||||
//remove stride from g_lMenuIDs
|
||||
g_lMenuIDs = llDeleteSubList(g_lMenuIDs, iMenuIndex - 1, iMenuIndex - 2 + g_iMenuStride);
|
||||
|
||||
if (sMenuType == "StyleMenu")
|
||||
{ //lists all elements in the collar
|
||||
if (sMessage == UPMENU) llMessageLinked(LINK_SET, iAuth, "menu " + g_sParentMenu, kAv);
|
||||
else if (sMessage == DUMP) UserCommand(iAuth,"dumpstyle", kAv, TRUE);
|
||||
else UserCommand(iAuth,"style "+sMessage, kAv, TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (iNum == DIALOG_TIMEOUT)
|
||||
{
|
||||
integer iMenuIndex = llListFindList(g_lMenuIDs, [kID]);
|
||||
if (~iMenuIndex) { //remove stride from g_lMenuIDs
|
||||
g_lMenuIDs = llDeleteSubList(g_lMenuIDs, iMenuIndex - 1, iMenuIndex - 2 + g_iMenuStride);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dataserver(key id, string data){
|
||||
if (id == g_kNotecardReadRequest){
|
||||
if (data != EOF){
|
||||
data = llStringTrim(data,STRING_TRIM);
|
||||
if (data != "" && llGetSubString(data,0,0) != "#" )
|
||||
{
|
||||
if( llGetSubString(data,0,0) == "[" )
|
||||
{
|
||||
g_sNotecardStyle = llGetSubString(data,llSubStringIndex(data,"[")+1,llSubStringIndex(data,"]")-1);
|
||||
g_sNotecardStyle = llStringTrim(g_sNotecardStyle,STRING_TRIM);
|
||||
g_lStyles += [g_sNotecardStyle];
|
||||
g_lStyleSettings += [g_sNotecardStyle];
|
||||
}
|
||||
else g_lStyleSettings += [data];
|
||||
}
|
||||
g_kNotecardReadRequest=llGetNotecardLine(g_sNotecardName,++g_iNotecardLine);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
changed (integer change){
|
||||
if (change & CHANGED_INVENTORY){
|
||||
if (g_iNotecardId != llGetInventoryKey(g_sNotecardName)){
|
||||
//Debug("Reading styles card");
|
||||
g_iNotecardId = llGetInventoryKey(g_sNotecardName);
|
||||
if(g_iNotecardId){
|
||||
g_lStyles=[];
|
||||
g_lStyleSettings=[];
|
||||
g_iNotecardLine=0;
|
||||
g_kNotecardReadRequest=llGetNotecardLine(g_sNotecardName,0);
|
||||
}
|
||||
//else llOwnerSay(g_sNotecardName+" notecard absent!");
|
||||
}
|
||||
CheckScripts();
|
||||
}
|
||||
if (change & CHANGED_OWNER) llResetScript();
|
||||
/*
|
||||
if (iChange & CHANGED_REGION) {
|
||||
if (g_iProfiled) {
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
@@ -1,602 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - texture //
|
||||
// version 3.988 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//set textures by uuid, and save uuids instead of texture names to DB
|
||||
//on getting texture command, give menu to choose which element, followed by menu to pick texture
|
||||
|
||||
list g_lElements;
|
||||
string s_CurrentElement = "";
|
||||
list g_lTextures;
|
||||
list g_lTextureDefaults;
|
||||
string g_sParentMenu = "Appearance";
|
||||
string g_sSubMenu = "Textures";
|
||||
string CTYPE = "collar";
|
||||
integer iLength;
|
||||
list lButtons;
|
||||
list g_lNewButtons;//is this used? 2010/01/14 Starship
|
||||
|
||||
list g_lNotecardTextures;
|
||||
list g_lNotecardTextureKeys;
|
||||
integer g_iNotecardLine;
|
||||
key g_kTextureCardUUID;
|
||||
string g_sTextureCard="textures";
|
||||
string g_sDefTextureCard="textures";
|
||||
key g_kNotecardRead;
|
||||
|
||||
//dialog handles
|
||||
key g_kElementID;
|
||||
key g_ktextureID;
|
||||
//touch request handle
|
||||
key g_kTouchID;
|
||||
|
||||
integer g_iAppLock = FALSE;
|
||||
string g_sAppLockToken = "Appearance_Lock";
|
||||
|
||||
//MESSAGE MAP
|
||||
//integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
|
||||
//integer SEND_IM = 1000; deprecated. each script should send its own IMs now. This is to reduce even the tiny bt of lag caused by having IM slave scripts
|
||||
integer POPUP_HELP = 1001;
|
||||
|
||||
integer LM_SETTING_SAVE = 2000;//scripts send messages on this channel to have settings saved to httpdb
|
||||
//str must be in form of "token=value"
|
||||
integer LM_SETTING_REQUEST = 2001;//when startup, scripts send requests for settings on this channel
|
||||
integer LM_SETTING_RESPONSE = 2002;//the httpdb script will send responses on this channel
|
||||
integer LM_SETTING_DELETE = 2003;//delete token from DB
|
||||
integer LM_SETTING_EMPTY = 2004;//sent when a token has no value in the httpdb
|
||||
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
integer TOUCH_REQUEST = -9500;
|
||||
integer TOUCH_CANCEL = -9501;
|
||||
integer TOUCH_RESPONSE = -9502;
|
||||
integer TOUCH_EXPIRE = -9503;
|
||||
//5000 block is reserved for IM slaves
|
||||
|
||||
string UPMENU = "BACK";
|
||||
|
||||
key g_kWearer;
|
||||
string g_sScript;
|
||||
|
||||
// texture name element divider, put constant in so can be changed throughout the script with one change.
|
||||
string SEPARATOR = "~";
|
||||
// set FALSE to enable basic AND special texture names for all elements, TRUE for ONLY special textures per element.
|
||||
// TRUE will still use basic textures for a given element WHEN that element has no special textures named in the collar.
|
||||
integer EXCLUSIVE = TRUE;
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
key Dialog(key kRCPT, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth)
|
||||
{
|
||||
key kID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kRCPT + "|" + sPrompt + "|" + (string)iPage + "|" + llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kID);
|
||||
//Debug("Made menu.");
|
||||
return kID;
|
||||
}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer)
|
||||
{
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else
|
||||
{
|
||||
if (llGetAgentSize(kID)) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
loadNotecardTextures()
|
||||
{
|
||||
g_sTextureCard=g_sDefTextureCard+"_custom";
|
||||
if(llGetInventoryType(g_sTextureCard)!=INVENTORY_NOTECARD) g_sTextureCard=g_sDefTextureCard;
|
||||
if(llGetInventoryType(g_sTextureCard)!=INVENTORY_NOTECARD)
|
||||
{
|
||||
g_kTextureCardUUID=NULL_KEY;
|
||||
return;
|
||||
}
|
||||
g_lNotecardTextures=[];
|
||||
g_lNotecardTextureKeys=[];
|
||||
g_iNotecardLine=0;
|
||||
g_kTextureCardUUID=llGetInventoryKey(g_sTextureCard);
|
||||
g_kNotecardRead=llGetNotecardLine(g_sTextureCard,g_iNotecardLine);
|
||||
}
|
||||
|
||||
|
||||
string GetDefaultTexture(string ele)
|
||||
{
|
||||
integer i = llListFindList(g_lTextureDefaults, [ele]);
|
||||
if (~i) return llList2String(g_lTextureDefaults, i + 1);
|
||||
return NULL_KEY;
|
||||
}
|
||||
|
||||
integer GetIsLeashTex(string sInvName)
|
||||
{
|
||||
if (llGetSubString(sInvName, 0, 5) == "leash_") return TRUE;
|
||||
if (sInvName == "chain" || sInvName == "rope" || sInvName == "!totallytransparent") return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
string GetShortName(string sTex) // strip all prefixes from a texture name
|
||||
{
|
||||
return llList2String(llParseString2List(sTex, [SEPARATOR], []), -1);
|
||||
}
|
||||
|
||||
string GetLongName(string ele, string sTex) // find the full texture name given element + shortname
|
||||
{
|
||||
list work = BuildTextureNames(FALSE);
|
||||
string test;
|
||||
integer l = 0;
|
||||
for (; l < llGetListLength(work); l++)
|
||||
{
|
||||
test = llList2String(work, l);
|
||||
if (~llSubStringIndex(test, sTex))
|
||||
{
|
||||
//if (!GetElementHasTexs(ele) || ~llSubStringIndex(test, llToLower(ele) + SEPARATOR)) return test;
|
||||
if (!GetElementHasTexs(ele) || ~llSubStringIndex(test, ele + SEPARATOR)) return test; //KW
|
||||
}
|
||||
}
|
||||
return ""; // this should only happen if chat command is used with invalid texture
|
||||
}
|
||||
|
||||
list BuildTextureNames(integer short) // set short TRUE to lop off all prefixes in return list, FALSE to carry full texture name
|
||||
{
|
||||
list out = [];
|
||||
string name;
|
||||
integer l = 0;
|
||||
integer max=llGetInventoryNumber(INVENTORY_TEXTURE);
|
||||
for (; l < max; l++)
|
||||
{
|
||||
name = llGetInventoryName(INVENTORY_TEXTURE, l);
|
||||
if (!GetIsLeashTex(name)) // we want to ignore particle textures
|
||||
{
|
||||
if (short) name = GetShortName(name);
|
||||
out += [name];
|
||||
}
|
||||
}
|
||||
l=0;
|
||||
max=llGetListLength(g_lNotecardTextures);
|
||||
for (; l < max; l++)
|
||||
{
|
||||
name=llList2String(g_lNotecardTextures,l);
|
||||
if (short) name = GetShortName(name);
|
||||
out += [name];
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
integer GetElementHasTexs(string ele) // check if textures exist with labels for the specified element
|
||||
{
|
||||
//ele = llToLower(ele) + SEPARATOR;
|
||||
ele = ele + SEPARATOR; //KW
|
||||
integer l = 0;
|
||||
integer max=llGetInventoryNumber(INVENTORY_TEXTURE);
|
||||
for (; l < max; l++)
|
||||
{
|
||||
if (~llSubStringIndex(llGetInventoryName(INVENTORY_TEXTURE, l), ele)) return TRUE;
|
||||
}
|
||||
l=0;
|
||||
max=llGetListLength(g_lNotecardTextures);
|
||||
for (; l < max; l++)
|
||||
{
|
||||
if (~llSubStringIndex(llList2String(g_lNotecardTextures,l), ele)) return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
list BuildTexButtons()
|
||||
{
|
||||
list tex = BuildTextureNames(FALSE);
|
||||
list out = [];
|
||||
if (~llListFindList(g_lTextureDefaults, [s_CurrentElement])) out = ["Default"];
|
||||
//string ele = llToLower(s_CurrentElement) + SEPARATOR;
|
||||
string ele = s_CurrentElement + SEPARATOR;//KW
|
||||
string but;
|
||||
integer l = 0;
|
||||
for (; l < llGetListLength(tex); l++)
|
||||
{
|
||||
but = llList2String(tex, l);
|
||||
if (EXCLUSIVE && GetElementHasTexs(s_CurrentElement))
|
||||
{
|
||||
if (~llSubStringIndex(but, ele)) but = GetShortName(but);
|
||||
else but = "";
|
||||
}
|
||||
else if (~llSubStringIndex(but, SEPARATOR))
|
||||
{
|
||||
if (~llSubStringIndex(but, ele)) but = GetShortName(but);
|
||||
else but = "";
|
||||
}
|
||||
if (but != "") out += [but];
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
key TouchRequest(key kRCPT, integer iTouchStart, integer iTouchEnd, integer iAuth)
|
||||
{
|
||||
key kID = llGenerateKey();
|
||||
integer iFlags = 0;
|
||||
if (iTouchStart) iFlags = iFlags | 0x01;
|
||||
if (iTouchEnd) iFlags = iFlags | 0x02;
|
||||
llMessageLinked(LINK_SET, TOUCH_REQUEST, (string)kRCPT + "|" + (string)iFlags + "|" + (string)iAuth, kID);
|
||||
return kID;
|
||||
}
|
||||
|
||||
TextureMenu(key kID, integer iPage, integer iAuth)
|
||||
{
|
||||
string sPrompt = "\nChoose the texture to apply.";
|
||||
g_ktextureID = Dialog(kID, sPrompt, BuildTexButtons(), [UPMENU], iPage, iAuth);
|
||||
}
|
||||
|
||||
ElementMenu(key kAv, integer iAuth)
|
||||
{
|
||||
string sPrompt = "\nChoose the element of the " + CTYPE + " you would like to retexture.\n\nChoose *Touch* if you want to select the part by directly clicking on the " + CTYPE + ".";
|
||||
lButtons = llListSort(g_lElements, 1, TRUE);
|
||||
g_kElementID = Dialog(kAv, sPrompt, lButtons, ["*Touch*", UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
string ElementType(integer iLinkNum)
|
||||
{
|
||||
string sDesc = llList2String(llGetLinkPrimitiveParams(iLinkNum, [PRIM_DESC]),0);
|
||||
//prim desc will be elementtype~notexture(maybe)
|
||||
list lParams = llParseString2List(llStringTrim(sDesc,STRING_TRIM), ["~"], []);
|
||||
if (~llListFindList(lParams,["notexture"]) || sDesc == "" || sDesc == "(No Description)")
|
||||
{
|
||||
return "notexture";
|
||||
}
|
||||
else
|
||||
{
|
||||
return llList2String(lParams, 0);
|
||||
}
|
||||
}
|
||||
|
||||
SetElementTexture(string sElement, string sTex)
|
||||
{
|
||||
integer iLink;
|
||||
integer iLinkCount = llGetNumberOfPrims();
|
||||
integer i=llListFindList(g_lNotecardTextures,[sTex]);
|
||||
if(~i) sTex=llList2String(g_lNotecardTextureKeys,i);
|
||||
for (iLink = 2; iLink <= iLinkCount; iLink++)
|
||||
{
|
||||
if (ElementType(iLink) == sElement)
|
||||
{
|
||||
// llSetLinkPrimitiveParamsFast(iLink, [PRIM_TEXTURE,ALL_SIDES,sTex,<1.0,1.0,1.0>,<0.0,0.0,0.0>,0.0] );
|
||||
// update prim texture for each face with save texture repeats, offsets and rotations
|
||||
integer iSides = llGetLinkNumberOfSides(iLink);
|
||||
integer iFace ;
|
||||
for (iFace = 0; iFace < iSides; iFace++)
|
||||
{
|
||||
list lParams = llGetLinkPrimitiveParams(iLink, [PRIM_TEXTURE, iFace ]);
|
||||
lParams = llDeleteSubList(lParams,0,0); // get texture params
|
||||
llSetLinkPrimitiveParamsFast(iLink, [PRIM_TEXTURE, iFace, sTex]+lParams);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//change the textures list entry for the current element
|
||||
integer iIndex = llListFindList(g_lTextures, [sElement]);
|
||||
if (~iIndex) g_lTextures = llListReplaceList(g_lTextures, [sTex], iIndex + 1, iIndex + 1);
|
||||
else g_lTextures += [s_CurrentElement, sTex];
|
||||
//save to settings
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript + sElement + "=" + sTex, "");
|
||||
}
|
||||
|
||||
string DumpSettings(string sep)
|
||||
{
|
||||
string out;
|
||||
integer i = 0;
|
||||
for (; i < llGetListLength(g_lTextures); i += 2)
|
||||
{
|
||||
out += sep + "Texture" + llList2String(g_lTextures, i);
|
||||
out += "=" + llList2String(g_lTextures, i + 1);
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
integer UserCommand(integer iNum, string sStr, key kID)
|
||||
{
|
||||
if (iNum > COMMAND_WEARER || iNum < COMMAND_OWNER) return FALSE; // sanity check
|
||||
|
||||
if (sStr == "textures" || sStr == "menu "+g_sSubMenu)
|
||||
{
|
||||
if (kID!=g_kWearer && iNum!=COMMAND_OWNER)
|
||||
{
|
||||
Notify(kID, "You are not allowed to change the textures.", FALSE);
|
||||
if (!llSubStringIndex(sStr, "menu "))
|
||||
llMessageLinked(LINK_SET, iNum, "menu " + g_sParentMenu, kID);
|
||||
}
|
||||
else if (g_iAppLock)
|
||||
{
|
||||
Notify(kID, "The appearance of the " + CTYPE + " is locked. You cannot access this menu now!", FALSE);
|
||||
if (!llSubStringIndex(sStr, "menu "))
|
||||
llMessageLinked(LINK_SET, iNum, "menu " + g_sParentMenu, kID);
|
||||
}
|
||||
else
|
||||
{
|
||||
s_CurrentElement = "";
|
||||
ElementMenu(kID, iNum);
|
||||
}
|
||||
}
|
||||
else if (llGetSubString(sStr,0,13) == "lockappearance")
|
||||
{
|
||||
if (iNum == COMMAND_OWNER)
|
||||
{
|
||||
if(llGetSubString(sStr, -1, -1) == "0") g_iAppLock = FALSE;
|
||||
else g_iAppLock = TRUE;
|
||||
}
|
||||
}
|
||||
else if (sStr == "reset" && (iNum == COMMAND_OWNER || kID == g_kWearer))
|
||||
{
|
||||
//clear saved settings
|
||||
//llMessageLinked(LINK_SET, LM_SETTING_DELETE, g_sDBToken, "");
|
||||
llResetScript();
|
||||
}
|
||||
else if (kID != g_kWearer && iNum != COMMAND_OWNER) return TRUE;
|
||||
{
|
||||
if (sStr == "settings") Notify(kID, "Texture Settings: " + DumpSettings("\n"), FALSE);
|
||||
else
|
||||
{
|
||||
list lParams = llParseString2List(sStr, [" "], []);
|
||||
|
||||
if (llToLower(llList2String(lParams,0))=="settexture")
|
||||
{
|
||||
if (g_iAppLock)
|
||||
{
|
||||
Notify(kID, "The appearance of the " + CTYPE + " is locked. You cannot change textures now!", FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
string sElement = llList2String(lParams, 1);
|
||||
string sTex = llList2String(lParams, 2);
|
||||
integer ok;
|
||||
string test;
|
||||
|
||||
integer x=llGetListLength(g_lElements);
|
||||
while(x)
|
||||
{
|
||||
--x;
|
||||
test=llList2String(g_lElements,x);
|
||||
if(llToLower(sElement)==llToLower(test))
|
||||
{
|
||||
sElement=test;
|
||||
x=0;
|
||||
ok=TRUE;
|
||||
}
|
||||
}
|
||||
if(!ok) Notify(kID, "The element " + sElement + " wasn't recognized, please check your command and try again.",FALSE);
|
||||
else
|
||||
{
|
||||
ok=FALSE;
|
||||
if((key)sTex) ok=TRUE;
|
||||
else
|
||||
{
|
||||
x=llGetInventoryNumber(INVENTORY_TEXTURE);
|
||||
while(x)
|
||||
{
|
||||
--x;
|
||||
test=llGetInventoryName(INVENTORY_TEXTURE,x);
|
||||
if(llToLower(sTex)==llToLower(test))
|
||||
{
|
||||
ok=TRUE;
|
||||
sTex=test;
|
||||
x=0;
|
||||
}
|
||||
}
|
||||
if(!ok)
|
||||
{
|
||||
x=llGetListLength(g_lNotecardTextures);
|
||||
while(x)
|
||||
{
|
||||
--x;
|
||||
test=llList2String(g_lNotecardTextures,x);
|
||||
if(llToLower(sTex)==llToLower(test) || llToLower(GetShortName(test))==llToLower(sTex))
|
||||
{
|
||||
ok=TRUE;
|
||||
sTex=test;
|
||||
x=0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(ok) SetElementTexture(sElement, sTex);
|
||||
else Notify(kID, "The texture " + sTex + " wasn't found in "+CTYPE+" inventory or the textures notecard, please check your command and try again.",FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE ;
|
||||
}
|
||||
|
||||
default {
|
||||
state_entry() {
|
||||
//llSetMemoryLimit(65536); //this script needs to be profiled, and its memory limited
|
||||
g_kWearer = llGetOwner();
|
||||
g_sScript = llStringTrim(llList2String(llParseString2List(llGetScriptName(), ["-"], []), 1), STRING_TRIM) + "_";
|
||||
loadNotecardTextures();
|
||||
|
||||
//loop through non-root prims, build element list
|
||||
integer n;
|
||||
integer iLinkCount = llGetNumberOfPrims();
|
||||
//root prim is 1, so start at 2
|
||||
for (n = 2; n <= iLinkCount; n++) {
|
||||
string sElement = ElementType(n);
|
||||
if (!(~llListFindList(g_lElements, [sElement])) && sElement != "notexture") g_lElements += [sElement];
|
||||
}
|
||||
//Debug("Starting");
|
||||
}
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID)
|
||||
{
|
||||
if (UserCommand(iNum, sStr, kID)) return;
|
||||
//owner, secowner, group, and wearer may currently change colors
|
||||
if (iNum == MENUNAME_REQUEST && sStr == g_sParentMenu)
|
||||
{
|
||||
llMessageLinked(LINK_SET, MENUNAME_RESPONSE, g_sParentMenu + "|" + g_sSubMenu, "");
|
||||
}
|
||||
else if (iNum == LM_SETTING_RESPONSE)
|
||||
{
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
integer i = llSubStringIndex(sToken, "_");
|
||||
if (llGetSubString(sToken, 0, i) == g_sScript)
|
||||
{
|
||||
sToken = llGetSubString(sToken, i + 1, -1);
|
||||
i = llListFindList(g_lTextureDefaults, [sToken]);
|
||||
if (~i) g_lTextureDefaults = llListReplaceList(g_lTextureDefaults, [sValue], i + 1, i + 1);
|
||||
else g_lTextureDefaults += [sToken, sValue];
|
||||
}
|
||||
else if (sToken == g_sAppLockToken) g_iAppLock = (integer)sValue;
|
||||
else if (sToken == "Global_CType") CTYPE = sValue;
|
||||
}
|
||||
else if (iNum == DIALOG_RESPONSE)
|
||||
{
|
||||
if (llListFindList([g_kElementID, g_ktextureID], [kID]) != -1)
|
||||
{
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
|
||||
if (kID == g_kElementID)
|
||||
{//they just chose an element, now choose a texture
|
||||
if (sMessage == UPMENU)
|
||||
{
|
||||
//main menu
|
||||
llMessageLinked(LINK_SET, iAuth, "menu "+g_sParentMenu, kAv);
|
||||
}
|
||||
else if (sMessage == "*Touch*")
|
||||
{
|
||||
Notify(kAv, "Please touch the part of the " + CTYPE + " you want to retexture. You can press ctr+alt+T to see invisible parts.", FALSE);
|
||||
g_kTouchID = TouchRequest(kAv, TRUE, FALSE, iAuth);
|
||||
}
|
||||
else
|
||||
{
|
||||
//we just got the element name
|
||||
s_CurrentElement = sMessage;
|
||||
TextureMenu(kAv, iPage, iAuth);
|
||||
}
|
||||
}
|
||||
else if (kID == g_ktextureID)
|
||||
{
|
||||
if (sMessage == UPMENU)
|
||||
{
|
||||
s_CurrentElement = "";
|
||||
ElementMenu(kAv, iAuth);
|
||||
}
|
||||
else
|
||||
{
|
||||
//got a texture name
|
||||
string sTex = GetLongName(s_CurrentElement, sMessage);
|
||||
if (sMessage == "Default") sTex = GetDefaultTexture(s_CurrentElement);
|
||||
SetElementTexture(s_CurrentElement, sTex);
|
||||
TextureMenu(kAv, iPage, iAuth);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (iNum == TOUCH_RESPONSE)
|
||||
{
|
||||
if (kID == g_kTouchID)
|
||||
{
|
||||
list lParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lParams, 0);
|
||||
integer iAuth = (integer)llList2String(lParams, 1);
|
||||
integer iLinkNumber = (integer)llList2String(lParams, 3);
|
||||
|
||||
string sElement = ElementType(iLinkNumber);
|
||||
if (sElement != "notexture")
|
||||
{
|
||||
TextureMenu(kAv, 0, iAuth);
|
||||
Notify(kAv, "You selected \""+sElement+"\".", FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
Notify(kAv, "You selected a prim which is not texturable. You can try again.", FALSE);
|
||||
ElementMenu(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
dataserver(key kID, string sData)
|
||||
{
|
||||
if(kID==g_kNotecardRead)
|
||||
{
|
||||
if(sData!=EOF)
|
||||
{
|
||||
if(llStringTrim(sData,STRING_TRIM)!="" && llGetSubString(sData,0,1)!="//")
|
||||
{
|
||||
list lThisLine=llParseString2List(sData,[","],[]);
|
||||
key kTextureKey=(key)llStringTrim(llList2String(lThisLine,1),STRING_TRIM);
|
||||
string sTextureName=llStringTrim(llList2String(lThisLine,0),STRING_TRIM);
|
||||
if(kTextureKey)
|
||||
{
|
||||
if(llStringLength(GetShortName(sTextureName))>23)
|
||||
{
|
||||
llOwnerSay("Texture name "+sTextureName+" in textures notecard too long, dropping.");
|
||||
}
|
||||
else if(llGetInventoryType(sTextureName)!=INVENTORY_TEXTURE) // let's not add things that are in inventory.
|
||||
{
|
||||
g_lNotecardTextures+=sTextureName;
|
||||
g_lNotecardTextureKeys+=kTextureKey;
|
||||
}
|
||||
else llOwnerSay(sTextureName+" in notecard ignored as already found in inventory. If you remove this texture from inventory, edit the textures notecard (add and delete a blank line) then save the card again to re-read it.");
|
||||
}
|
||||
else llOwnerSay("Texture key for "+sTextureName+" in textures notecard not recognised, dropping.");
|
||||
}
|
||||
++g_iNotecardLine;
|
||||
g_kNotecardRead=llGetNotecardLine(g_sTextureCard,g_iNotecardLine);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
changed(integer change)
|
||||
{
|
||||
if(change&CHANGED_LINK) llResetScript();
|
||||
else if (change & CHANGED_INVENTORY)
|
||||
{
|
||||
if(llGetInventoryType(g_sTextureCard)==INVENTORY_NOTECARD && llGetInventoryKey(g_sTextureCard)!=g_kTextureCardUUID) loadNotecardTextures();
|
||||
}
|
||||
else if (change&CHANGED_OWNER) llResetScript();
|
||||
/*
|
||||
if (iChange & CHANGED_REGION) {
|
||||
if (g_iProfiled) {
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
@@ -1,847 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - timer //
|
||||
// version 3.993 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
list g_lTimes;
|
||||
integer g_iTimesLength;
|
||||
integer g_iCurrentTime;
|
||||
integer g_iOnTime;
|
||||
integer g_iLastTime;
|
||||
integer g_iFirstOnTime;
|
||||
integer g_iFirstRealTime;
|
||||
integer g_iLastRez;
|
||||
integer n;//for loops
|
||||
string g_sMessage;
|
||||
integer MAX_TIME=0x7FFFFFFF;
|
||||
|
||||
integer ATTACHMENT_COMMAND = 602;
|
||||
integer ATTACHMENT_FORWARD = 610;
|
||||
//these can change
|
||||
integer REAL_TIME=1;
|
||||
integer REAL_TIME_EXACT=5;
|
||||
integer ON_TIME=3;
|
||||
integer ON_TIME_EXACT=7;
|
||||
|
||||
string CTYPE = "collar";
|
||||
|
||||
integer g_iInterfaceChannel;
|
||||
// end time keeper
|
||||
|
||||
string g_sSubMenu = "Timer";
|
||||
string g_sParentMenu = "Apps";
|
||||
|
||||
key g_kMenuID;
|
||||
key g_kOnMenuID;
|
||||
key g_kRealMenuID;
|
||||
|
||||
key g_kWearer;
|
||||
|
||||
list g_lLocalButtons = ["RL","Online"];
|
||||
list g_lTimeButtons = ["RESET","+00:01","+00:05","+00:30","+03:00","+24:00","-00:01","-00:05","-00:30","-03:00","-24:00"];
|
||||
|
||||
integer g_iOnRunning;
|
||||
integer g_iOnSetTime;
|
||||
integer g_iOnTimeUpAt;
|
||||
integer g_iRealRunning;
|
||||
integer g_iRealSetTime;
|
||||
integer g_iRealTimeUpAt;
|
||||
|
||||
integer g_iCollarLocked;
|
||||
integer g_iUnlockCollar = 0;
|
||||
integer g_iClearRLVRestions = 0;
|
||||
integer g_iUnleash = 0;
|
||||
integer g_iBoth = 0;
|
||||
integer g_iWhoCanChangeTime = 504;
|
||||
integer g_iWhoCanChangeLeash = 504;
|
||||
|
||||
integer g_iTimeChange;
|
||||
|
||||
list lButtons;
|
||||
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
|
||||
integer COMMAND_WEARERLOCKEDOUT = 521;
|
||||
|
||||
integer LM_SETTING_SAVE = 2000;
|
||||
integer LM_SETTING_RESPONSE = 2002;
|
||||
integer LM_SETTING_DELETE = 2003;
|
||||
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
integer MENUNAME_REMOVE = 3003;
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
|
||||
// Added by WhiteFire
|
||||
integer TIMER_EVENT = -10000; // str = "start" or "end". For start, either "online" or "realtime".
|
||||
|
||||
integer WEARERLOCKOUT = 620;
|
||||
|
||||
string UPMENU = "BACK";
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
key Dialog(key kRCPT, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth)
|
||||
{
|
||||
key kID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kRCPT + "|" + sPrompt + "|" + (string)iPage + "|" + llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kID);
|
||||
//Debug("Made menu.");
|
||||
return kID;
|
||||
}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer)
|
||||
{
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else
|
||||
{
|
||||
if (llGetAgentSize(kID)) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
DoMenu(key keyID, integer iAuth)
|
||||
{
|
||||
if (keyID)
|
||||
{
|
||||
//fnord
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
//Debug("timeremaning:"+(string)(g_iOnTimeUpAt-g_iOnTime));
|
||||
|
||||
string sPrompt = "\n A frozen pizza takes ~12 min to bake.\n";
|
||||
list lMyButtons = g_lLocalButtons + lButtons;
|
||||
|
||||
sPrompt += "\n Online Timer: "+Int2Time(g_iOnSetTime);
|
||||
if (g_iOnRunning==1)
|
||||
{
|
||||
sPrompt += "\n Online Timer: "+Int2Time(g_iOnTimeUpAt-g_iOnTime)+" left\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
sPrompt += "\n Online Timer: not running\n";
|
||||
}
|
||||
sPrompt += "\n RL Timer: "+Int2Time(g_iRealSetTime);
|
||||
if (g_iRealRunning==1)
|
||||
{
|
||||
sPrompt += "\n RL Timer: "+Int2Time(g_iRealTimeUpAt-g_iCurrentTime)+" left";
|
||||
}
|
||||
else
|
||||
{
|
||||
sPrompt += "\n RL Timer: not running";
|
||||
}
|
||||
if (g_iBoth)
|
||||
{
|
||||
lMyButtons += ["☒ combined"];
|
||||
}
|
||||
else
|
||||
{
|
||||
lMyButtons += ["☐ combined"];
|
||||
}
|
||||
if (g_iUnlockCollar)
|
||||
{
|
||||
lMyButtons += ["☒ unlock"];
|
||||
}
|
||||
else
|
||||
{
|
||||
lMyButtons += ["☐ unlock"];
|
||||
}
|
||||
if (g_iUnleash)
|
||||
{
|
||||
lMyButtons += ["☒ unleash"];
|
||||
}
|
||||
else
|
||||
{
|
||||
lMyButtons += ["☐ unleash"];
|
||||
}
|
||||
if (g_iClearRLVRestions)
|
||||
{
|
||||
lMyButtons += ["☒ clear RLV"];
|
||||
}
|
||||
else
|
||||
{
|
||||
lMyButtons += ["☐ clear RLV"];
|
||||
}
|
||||
if (g_iRealRunning || g_iOnRunning)
|
||||
{
|
||||
lMyButtons += ["STOP"];
|
||||
lMyButtons += ["RESET"];
|
||||
}
|
||||
else if (g_iRealSetTime || g_iOnSetTime)
|
||||
{
|
||||
lMyButtons += ["START"];
|
||||
lMyButtons += ["RESET"];
|
||||
}
|
||||
sPrompt+="\n\nwww.opencollar.at/timer";
|
||||
|
||||
llListSort(g_lLocalButtons, 1, TRUE);
|
||||
|
||||
g_kMenuID = Dialog(keyID, sPrompt, lMyButtons, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
DoOnMenu(key keyID, integer iAuth)
|
||||
{
|
||||
if (keyID == NULL_KEY) return;
|
||||
|
||||
string sPrompt = "\n Online Time Settings\n";
|
||||
sPrompt += "\n Online Timer: "+Int2Time(g_iOnSetTime);
|
||||
if (g_iOnRunning)
|
||||
{
|
||||
sPrompt += "\n Online Timer: "+Int2Time(g_iOnTimeUpAt-g_iOnTime)+" left";
|
||||
}
|
||||
else
|
||||
{
|
||||
sPrompt += "\n Online Timer: not running";
|
||||
}
|
||||
g_kOnMenuID = Dialog(keyID, sPrompt, g_lTimeButtons, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
DoRealMenu(key keyID, integer iAuth)
|
||||
{
|
||||
if (keyID == NULL_KEY) return;
|
||||
|
||||
string sPrompt = "\n RL Time Settings\n";
|
||||
sPrompt += "\n RL timer: " + Int2Time(g_iRealSetTime);
|
||||
if (g_iRealRunning)
|
||||
{
|
||||
sPrompt += "\n RL Timer: "+Int2Time(g_iRealTimeUpAt-g_iCurrentTime)+" left";
|
||||
}
|
||||
else
|
||||
{
|
||||
sPrompt += "\n RL Timer: not running";
|
||||
}
|
||||
g_kRealMenuID = Dialog(keyID, sPrompt, g_lTimeButtons, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
string Int2Time(integer sTime)
|
||||
{
|
||||
if (sTime<0) sTime=0;
|
||||
integer iSecs=sTime%60;
|
||||
sTime = (sTime-iSecs)/60;
|
||||
integer iMins=sTime%60;
|
||||
sTime = (sTime-iMins)/60;
|
||||
integer iHours=sTime%24;
|
||||
integer iDays = (sTime-iHours)/24;
|
||||
|
||||
//this is the onley line that needs changing...
|
||||
return ( (string)iDays+" days "+
|
||||
llGetSubString("0"+(string)iHours,-2,-1) + ":"+
|
||||
llGetSubString("0"+(string)iMins,-2,-1) + ":"+
|
||||
llGetSubString("0"+(string)iSecs,-2,-1) );
|
||||
//return (string)iDays+":"+(string)iHours+":"+(string)iMins+":"+(string)iSecs;
|
||||
}
|
||||
|
||||
TimerFinish()
|
||||
{
|
||||
if(g_iBoth && (g_iOnRunning == 1 || g_iRealRunning == 1))
|
||||
{
|
||||
return;
|
||||
}
|
||||
llMessageLinked(LINK_THIS, WEARERLOCKOUT, "off", "");
|
||||
if(g_iUnlockCollar)
|
||||
{
|
||||
llMessageLinked(LINK_THIS, COMMAND_OWNER, "unlock", g_kWearer);
|
||||
}
|
||||
if(g_iClearRLVRestions)
|
||||
{
|
||||
llMessageLinked(LINK_THIS, COMMAND_OWNER, "clear", g_kWearer);
|
||||
if(!g_iUnlockCollar && g_iCollarLocked)
|
||||
{
|
||||
llSleep(2);
|
||||
llMessageLinked(LINK_THIS, COMMAND_OWNER, "lock", g_kWearer);
|
||||
}
|
||||
}
|
||||
if(g_iUnleash && g_iWhoCanChangeTime <= g_iWhoCanChangeLeash)
|
||||
{
|
||||
llMessageLinked(LINK_THIS, COMMAND_OWNER, "unleash", g_kWearer);
|
||||
}
|
||||
g_iUnlockCollar=g_iClearRLVRestions=g_iUnleash=0;
|
||||
g_iOnSetTime=g_iRealSetTime=0;
|
||||
g_iOnRunning=g_iRealRunning=0;
|
||||
g_iOnTimeUpAt=g_iRealTimeUpAt=0;
|
||||
g_iWhoCanChangeTime=504;
|
||||
llOwnerSay("Yay! Timer expired!");
|
||||
|
||||
llMessageLinked(LINK_THIS, TIMER_EVENT, "end", "");
|
||||
}
|
||||
|
||||
TimerStart(integer perm)
|
||||
{
|
||||
// do What has to be Done
|
||||
g_iWhoCanChangeTime = perm;
|
||||
if(g_iRealSetTime)
|
||||
{
|
||||
g_iRealTimeUpAt=g_iCurrentTime+g_iRealSetTime;
|
||||
llMessageLinked(LINK_THIS, WEARERLOCKOUT, "on", "");
|
||||
llMessageLinked(LINK_THIS, TIMER_EVENT, "START", "RL");
|
||||
g_iRealRunning=1;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_iRealRunning=3;
|
||||
}
|
||||
if(g_iOnSetTime)
|
||||
{
|
||||
g_iOnTimeUpAt=g_iOnTime+g_iOnSetTime;
|
||||
llMessageLinked(LINK_THIS, WEARERLOCKOUT, "on", "");
|
||||
llMessageLinked(LINK_THIS, TIMER_EVENT, "START", "Online");
|
||||
|
||||
g_iOnRunning=1;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_iOnRunning=3;
|
||||
}
|
||||
}
|
||||
|
||||
integer UserCommand(integer iNum, string sStr, key kID)
|
||||
{
|
||||
if (iNum == COMMAND_EVERYONE) return TRUE;
|
||||
else if (iNum > COMMAND_EVERYONE || iNum < COMMAND_OWNER) return FALSE;
|
||||
if (llToLower(sStr) == "timer" || sStr == "menu "+g_sSubMenu) DoMenu(kID, iNum);
|
||||
else if(llGetSubString(sStr, 0, 5) == "timer ")
|
||||
{
|
||||
//Debug(sStr);
|
||||
string sMsg=llGetSubString(sStr, 6, -1);
|
||||
//we got a response for something we handle locally
|
||||
if (sMsg == "RL") DoRealMenu(kID, iNum);
|
||||
else if (sMsg == "Online") DoOnMenu(kID, iNum);
|
||||
else if (sMsg == "START")
|
||||
{
|
||||
TimerStart(iNum);
|
||||
if(kID != g_kWearer) DoMenu(kID, iNum);
|
||||
}
|
||||
else if (sMsg == "STOP")
|
||||
{
|
||||
TimerFinish();
|
||||
DoMenu(kID, iNum);
|
||||
}
|
||||
else if (sMsg == "RESET")
|
||||
{
|
||||
g_iRealSetTime=g_iRealTimeUpAt=0;
|
||||
g_iOnSetTime=g_iOnTimeUpAt=0;
|
||||
if(g_iRealRunning == 1 || g_iOnRunning == 1){
|
||||
g_iRealRunning=0;
|
||||
g_iOnRunning=0;
|
||||
TimerFinish();
|
||||
}
|
||||
DoMenu(kID, iNum);
|
||||
}
|
||||
else if (sMsg =="☒ combined")
|
||||
{
|
||||
g_iBoth = FALSE;
|
||||
DoMenu(kID, iNum);
|
||||
}
|
||||
else if (sMsg == "☐ combined")
|
||||
{
|
||||
g_iBoth = TRUE;
|
||||
DoMenu(kID, iNum);
|
||||
}
|
||||
else if(sMsg=="☒ unlock")
|
||||
{
|
||||
if (iNum == COMMAND_OWNER) g_iUnlockCollar=0;
|
||||
else
|
||||
{
|
||||
Notify(kID,"Only the owner can change if the " + CTYPE + " unlocks when the timer runs out.",FALSE);
|
||||
}
|
||||
DoMenu(kID, iNum);
|
||||
}
|
||||
else if(sMsg=="☐ unlock")
|
||||
{
|
||||
if(iNum == COMMAND_OWNER) g_iUnlockCollar=1;
|
||||
else
|
||||
{
|
||||
Notify(kID,"Only the owner can change if the " + CTYPE + " unlocks when the timer runs out.",FALSE);
|
||||
}
|
||||
DoMenu(kID, iNum);
|
||||
}
|
||||
else if(sMsg=="☒ clear RLV")
|
||||
{
|
||||
if(iNum == COMMAND_WEARER)
|
||||
{
|
||||
Notify(kID,"You cannot change if the RLV settings are cleared",FALSE);
|
||||
}
|
||||
else g_iClearRLVRestions=0;
|
||||
DoMenu(kID, iNum);
|
||||
}
|
||||
else if(sMsg=="☐ clear RLV")
|
||||
{
|
||||
if(iNum == COMMAND_WEARER)
|
||||
{
|
||||
Notify(kID,"You cannot change if the RLV settings are cleared",FALSE);
|
||||
}
|
||||
else g_iClearRLVRestions=1;
|
||||
DoMenu(kID, iNum);
|
||||
}
|
||||
else if(sMsg=="☒ unleash")
|
||||
{
|
||||
if(iNum <= g_iWhoCanChangeLeash) g_iUnleash=0;
|
||||
else
|
||||
{
|
||||
Notify(kID,"Only the someone who can leash the sub can change if the " + CTYPE + " unleashes when the timer runs out.",FALSE);
|
||||
}
|
||||
DoMenu(kID, iNum);
|
||||
}
|
||||
else if(sMsg=="☐ unleash")
|
||||
{
|
||||
if(iNum <= g_iWhoCanChangeLeash) g_iUnleash=1;
|
||||
else
|
||||
{
|
||||
Notify(kID,"Only the someone who can leash the sub can change if the " + CTYPE + " unleashes when the timer runs out.",FALSE);
|
||||
}
|
||||
DoMenu(kID, iNum);
|
||||
}
|
||||
else if(llGetSubString(sMsg, 0, 5) == "Online")
|
||||
{
|
||||
sMsg="on" + llStringTrim(llGetSubString(sMsg, 6, -1), STRING_TRIM_HEAD);
|
||||
}
|
||||
if(llGetSubString(sMsg, 0, 1) == "on")
|
||||
{
|
||||
sMsg=llStringTrim(llGetSubString(sMsg, 2, -1), STRING_TRIM_HEAD);
|
||||
if (iNum <= g_iWhoCanChangeTime)
|
||||
{
|
||||
list lTimes = llParseString2List(llGetSubString(sMsg, 1, -1), [":"], []);
|
||||
if (sMsg == "RESET")
|
||||
{
|
||||
g_iOnSetTime=g_iOnTimeUpAt=0;
|
||||
if(g_iOnRunning == 1)
|
||||
{
|
||||
//unlock
|
||||
g_iOnRunning=0;
|
||||
TimerFinish();
|
||||
}
|
||||
}
|
||||
else if (llGetSubString(sMsg, 0, 0) == "+")
|
||||
{
|
||||
g_iTimeChange=llList2Integer(lTimes,0)*60*60+llList2Integer(lTimes,1)*60;
|
||||
g_iOnSetTime += g_iTimeChange;
|
||||
if (g_iOnRunning==1)
|
||||
{
|
||||
g_iOnTimeUpAt += g_iTimeChange;
|
||||
}
|
||||
else if(g_iOnRunning==3)
|
||||
{
|
||||
g_iOnTimeUpAt=g_iOnTime+g_iOnSetTime;
|
||||
g_iOnRunning=1;
|
||||
}
|
||||
}
|
||||
else if (llGetSubString(sMsg, 0, 0) == "-")
|
||||
{
|
||||
g_iTimeChange=-(llList2Integer(lTimes,0)*60*60+llList2Integer(lTimes,1)*60);
|
||||
g_iOnSetTime += g_iTimeChange;
|
||||
if (g_iOnSetTime<0)
|
||||
{
|
||||
g_iOnSetTime=0;
|
||||
}
|
||||
if (g_iOnRunning==1)
|
||||
{
|
||||
g_iOnTimeUpAt += g_iTimeChange;
|
||||
if (g_iOnTimeUpAt<=g_iOnTime)
|
||||
{
|
||||
//unlock
|
||||
g_iOnRunning=g_iOnSetTime=g_iOnTimeUpAt=0;
|
||||
TimerFinish();
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (llGetSubString(sMsg, 0, 0) == "=")
|
||||
{
|
||||
g_iTimeChange=llList2Integer(lTimes,0)*60*60+llList2Integer(lTimes,1)*60;
|
||||
if (g_iTimeChange <= 0) return TRUE; // use clear.
|
||||
|
||||
g_iOnSetTime = g_iTimeChange;
|
||||
if (g_iOnRunning==1)
|
||||
{
|
||||
g_iOnTimeUpAt = g_iOnTime + g_iTimeChange;
|
||||
}
|
||||
else if(g_iOnRunning==3)
|
||||
{
|
||||
g_iOnTimeUpAt=g_iOnTime + g_iTimeChange;
|
||||
g_iOnRunning=1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
DoOnMenu(kID, iNum);
|
||||
}
|
||||
else if(llGetSubString(sMsg, 0, 7) == "RL")
|
||||
{
|
||||
sMsg="real" + llStringTrim(llGetSubString(sMsg, 6, -1), STRING_TRIM_HEAD);
|
||||
}
|
||||
if(llGetSubString(sMsg, 0, 3) == "real")
|
||||
{
|
||||
sMsg=llStringTrim(llGetSubString(sMsg, 4, -1), STRING_TRIM_HEAD);
|
||||
list lTimes = llParseString2List(llGetSubString(sMsg, 1, -1), [":"], []);
|
||||
if (iNum <= g_iWhoCanChangeTime)
|
||||
{
|
||||
if (sMsg == "RESET")
|
||||
{
|
||||
g_iRealSetTime=g_iRealTimeUpAt=0;
|
||||
if(g_iRealRunning == 1)
|
||||
{
|
||||
//unlock
|
||||
g_iRealRunning=0;
|
||||
TimerFinish();
|
||||
}
|
||||
}
|
||||
else if (llGetSubString(sMsg, 0, 0) == "+")
|
||||
{
|
||||
g_iTimeChange=llList2Integer(lTimes,0)*60*60+llList2Integer(lTimes,1)*60;
|
||||
g_iRealSetTime += g_iTimeChange;
|
||||
if (g_iRealRunning==1) g_iRealTimeUpAt += g_iTimeChange;
|
||||
else if(g_iRealRunning==3)
|
||||
{
|
||||
g_iRealTimeUpAt=g_iCurrentTime+g_iRealSetTime;
|
||||
g_iRealRunning=1;
|
||||
}
|
||||
}
|
||||
else if (llGetSubString(sMsg, 0, 0) == "-")
|
||||
{
|
||||
g_iTimeChange=-(llList2Integer(lTimes,0)*60*60+llList2Integer(lTimes,1)*60);
|
||||
g_iRealSetTime += g_iTimeChange;
|
||||
if (g_iRealSetTime<0) g_iRealSetTime=0;
|
||||
if (g_iRealRunning==1)
|
||||
{
|
||||
g_iRealTimeUpAt += g_iTimeChange;
|
||||
if (g_iRealTimeUpAt<=g_iCurrentTime)
|
||||
{
|
||||
//unlock
|
||||
g_iRealRunning=g_iRealSetTime=g_iRealTimeUpAt=0;
|
||||
TimerFinish();
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (llGetSubString(sMsg, 0, 0) == "=")
|
||||
{
|
||||
g_iTimeChange=llList2Integer(lTimes,0)*60*60+llList2Integer(lTimes,1)*60;
|
||||
if (g_iTimeChange <= 0) return TRUE; // Not handled.
|
||||
g_iRealSetTime = g_iTimeChange;
|
||||
if (g_iRealRunning==1) g_iRealTimeUpAt = g_iCurrentTime+g_iRealSetTime;
|
||||
else if(g_iRealRunning==3)
|
||||
{
|
||||
g_iRealTimeUpAt=g_iCurrentTime+g_iRealSetTime;
|
||||
g_iRealRunning=1;
|
||||
}
|
||||
}
|
||||
else return TRUE;
|
||||
}
|
||||
DoRealMenu(kID, iNum);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
default {
|
||||
on_rez(integer iParam) {
|
||||
g_iLastTime=g_iLastRez=llGetUnixTime();
|
||||
llRegionSayTo(g_kWearer, g_iInterfaceChannel, "timer|sendtimers");
|
||||
if (g_iRealRunning == 1 || g_iOnRunning == 1) {
|
||||
llMessageLinked(LINK_THIS, WEARERLOCKOUT, "on", "");
|
||||
}
|
||||
}
|
||||
state_entry() {
|
||||
//llSetMemoryLimit(65536); //this script needs to be profiled, and its memory limited
|
||||
g_iLastTime=llGetUnixTime();
|
||||
llSetTimerEvent(1);
|
||||
g_kWearer = llGetOwner();
|
||||
g_iInterfaceChannel = (integer)("0x" + llGetSubString(g_kWearer,30,-1));
|
||||
if (g_iInterfaceChannel > 0) g_iInterfaceChannel = -g_iInterfaceChannel;
|
||||
g_iFirstOnTime=MAX_TIME;
|
||||
g_iFirstRealTime=MAX_TIME;
|
||||
llRegionSayTo(g_kWearer, g_iInterfaceChannel, "timer|sendtimers");
|
||||
//Debug("Starting");
|
||||
}
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID)
|
||||
{
|
||||
list info = llParseString2List (sStr, ["|"], []);
|
||||
if(iNum==ATTACHMENT_FORWARD && llList2String(info, 0)=="timer")//request for us
|
||||
{
|
||||
//Debug(sStr);
|
||||
string sCommand = llList2String(info, 1);
|
||||
integer type = llList2Integer(info, 2);
|
||||
if(sCommand=="settimer")
|
||||
{
|
||||
//should check values but I am not yet.
|
||||
if(type==REAL_TIME)
|
||||
{
|
||||
integer newtime = llList2Integer(info, 3) +g_iCurrentTime;
|
||||
g_lTimes=g_lTimes+[REAL_TIME,newtime];
|
||||
if(g_iFirstRealTime>newtime)
|
||||
{
|
||||
g_iFirstRealTime=newtime;
|
||||
}
|
||||
g_sMessage="timer|timeis|"+(string)REAL_TIME+"|"+(string)g_iCurrentTime;
|
||||
}
|
||||
else if(type==REAL_TIME_EXACT)
|
||||
{
|
||||
integer newtime = llList2Integer(info, 3);
|
||||
g_lTimes=g_lTimes+[REAL_TIME,newtime];
|
||||
if(g_iFirstRealTime>newtime)
|
||||
{
|
||||
g_iFirstRealTime=newtime;
|
||||
}
|
||||
}
|
||||
else if(type==ON_TIME)
|
||||
{
|
||||
integer newtime = llList2Integer(info, 3) +g_iOnTime;
|
||||
g_lTimes=g_lTimes+[ON_TIME,newtime];
|
||||
if(g_iFirstOnTime>newtime)
|
||||
{
|
||||
g_iFirstOnTime=newtime;
|
||||
}
|
||||
g_sMessage="timer|timeis|"+(string)ON_TIME+"|"+(string)g_iOnTime;
|
||||
}
|
||||
else if(type==ON_TIME_EXACT)
|
||||
{
|
||||
integer newtime = llList2Integer(info, 3) +g_iOnTime;
|
||||
g_lTimes=g_lTimes+[ON_TIME,newtime];
|
||||
if(g_iFirstOnTime>newtime)
|
||||
{
|
||||
g_iFirstOnTime=newtime;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(sCommand=="gettime")
|
||||
{
|
||||
if(type==REAL_TIME)
|
||||
{
|
||||
g_sMessage="timer|timeis|"+(string)REAL_TIME+"|"+(string)g_iCurrentTime;
|
||||
}
|
||||
else if(type==ON_TIME)
|
||||
{
|
||||
g_sMessage="timer|timeis|"+(string)ON_TIME+"|"+(string)g_iOnTime;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
//message got sent to us or something went wrong
|
||||
}
|
||||
if(iNum==ATTACHMENT_FORWARD)
|
||||
{
|
||||
llRegionSayTo(g_kWearer, g_iInterfaceChannel, g_sMessage);
|
||||
}
|
||||
}
|
||||
else if(iNum == COMMAND_WEARERLOCKEDOUT && sStr == "menu")
|
||||
{
|
||||
if (g_iOnRunning || g_iRealRunning)
|
||||
Notify(kID , "You are locked out of the " + CTYPE + " until the timer expires", FALSE);
|
||||
}
|
||||
else if (iNum == LM_SETTING_DELETE)
|
||||
{
|
||||
if (sStr == "leash_leashedto") g_iWhoCanChangeLeash=504;
|
||||
else if (sStr == "Global_locked") g_iCollarLocked=0;
|
||||
}
|
||||
else if (iNum == LM_SETTING_SAVE)
|
||||
{
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string token = llList2String(lParams, 0);
|
||||
string value = llList2String(lParams, 1);
|
||||
if (token == "Global_locked" && (integer)value == 1) g_iCollarLocked = 1;
|
||||
else if (token == "leash_leashedto")
|
||||
{
|
||||
integer auth = (integer)llList2String(llParseString2List(value, [","], []), 1);
|
||||
if (auth < g_iWhoCanChangeLeash)
|
||||
{
|
||||
g_iWhoCanChangeLeash = auth;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (iNum == LM_SETTING_RESPONSE)
|
||||
{
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
if (sToken == "Global_locked") g_iCollarLocked=(integer)sValue;
|
||||
}
|
||||
else if (iNum == MENUNAME_REQUEST && sStr == g_sParentMenu)
|
||||
{ // our parent menu requested to receive buttons, so send ours
|
||||
llMessageLinked(LINK_THIS, MENUNAME_RESPONSE, g_sParentMenu + "|" + g_sSubMenu, "");
|
||||
lButtons = [] ; // flush submenu buttons
|
||||
llMessageLinked(LINK_THIS, MENUNAME_REQUEST, g_sSubMenu, "");
|
||||
}
|
||||
else if (iNum == MENUNAME_RESPONSE) // a button is sned ot be added to a plugin
|
||||
{
|
||||
list lParts = llParseString2List(sStr, ["|"], []);
|
||||
if (llList2String(lParts, 0) == g_sSubMenu)
|
||||
{//someone wants to stick something in our menu
|
||||
string sButton = llList2String(lParts, 1);
|
||||
if (llListFindList(lButtons, [sButton]) == -1)
|
||||
// if the button isnt in our benu yet, than we add it
|
||||
{
|
||||
lButtons = llListSort(lButtons + [sButton], 1, TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (iNum == MENUNAME_REMOVE)
|
||||
{
|
||||
integer iIndex;
|
||||
list lParts = llParseString2List(sStr, ["|"], []);
|
||||
if (llList2String(lParts, 0) == g_sSubMenu)
|
||||
{
|
||||
string sButton = llList2String(lParts, 1);
|
||||
iIndex = llListFindList(lButtons, [sButton]);
|
||||
if (iIndex != -1)
|
||||
|
||||
{
|
||||
lButtons = llDeleteSubList(lButtons, iIndex, iIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (UserCommand(iNum, sStr, kID)) return;
|
||||
else if (iNum == DIALOG_RESPONSE)
|
||||
{
|
||||
if (llListFindList([g_kMenuID, g_kOnMenuID, g_kRealMenuID], [kID]) != -1)
|
||||
{//this is one of our menus
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMsg = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
if (kID == g_kMenuID)
|
||||
{
|
||||
|
||||
if (sMsg == UPMENU)
|
||||
{
|
||||
llMessageLinked(LINK_THIS, iAuth, "menu "+g_sParentMenu, kAv);
|
||||
}
|
||||
else if (llListFindList(lButtons, [sMsg]))
|
||||
{
|
||||
UserCommand(iAuth, "timer " + sMsg, kAv);
|
||||
}
|
||||
else if (~llListFindList(lButtons, [sMsg]))
|
||||
{
|
||||
|
||||
llMessageLinked(LINK_THIS, iAuth, "menu "+sMsg, kAv);
|
||||
}
|
||||
}
|
||||
else if (kID == g_kOnMenuID)
|
||||
{
|
||||
if (sMsg == UPMENU) DoMenu(kAv, iAuth);
|
||||
else UserCommand(iAuth, "timer on"+sMsg, kAv);
|
||||
}
|
||||
else if (kID == g_kRealMenuID)
|
||||
{
|
||||
if (sMsg == UPMENU) DoMenu(kAv, iAuth);
|
||||
else UserCommand(iAuth, "timer real"+sMsg, kAv);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
timer()
|
||||
{
|
||||
g_iCurrentTime=llGetUnixTime();
|
||||
if (g_iCurrentTime<(g_iLastRez+60))
|
||||
{
|
||||
return;
|
||||
}
|
||||
if ((g_iCurrentTime-g_iLastTime)<60)
|
||||
{
|
||||
g_iOnTime+=g_iCurrentTime-g_iLastTime;
|
||||
}
|
||||
if(g_iOnTime>=g_iFirstOnTime)
|
||||
{
|
||||
//could store which is need but if both are trigered it will have to send both anyway I prefer not to check for that.
|
||||
g_sMessage="timer|timeis|"+(string)ON_TIME+"|"+(string)g_iOnTime;
|
||||
llRegionSayTo(g_kWearer, g_iInterfaceChannel, g_sMessage);
|
||||
|
||||
g_iFirstOnTime=MAX_TIME;
|
||||
g_iTimesLength=llGetListLength(g_lTimes);
|
||||
for(n = 0; n < g_iTimesLength; n = n + 2)// send notice and find the next time.
|
||||
{
|
||||
if(llList2Integer(g_lTimes, n)==ON_TIME)
|
||||
{
|
||||
while(llList2Integer(g_lTimes, n+1)<=g_iOnTime&&llList2Integer(g_lTimes, n)==ON_TIME&&g_lTimes!=[])
|
||||
{
|
||||
g_lTimes=llDeleteSubList(g_lTimes, n, n+1);
|
||||
g_iTimesLength=llGetListLength(g_lTimes);
|
||||
}
|
||||
if(llList2Integer(g_lTimes, n)==ON_TIME&&llList2Integer(g_lTimes, n+1)<g_iFirstOnTime)
|
||||
{
|
||||
g_iFirstOnTime=llList2Integer(g_lTimes, n+1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(g_iCurrentTime>=g_iFirstRealTime)
|
||||
{
|
||||
//could store which is need but if both are trigered it will have to send both anyway I prefer not to check for that.
|
||||
g_sMessage="timer|timeis|"+(string)REAL_TIME+"|"+(string)g_iCurrentTime;
|
||||
llRegionSayTo(g_kWearer, g_iInterfaceChannel, g_sMessage);
|
||||
|
||||
g_iFirstRealTime=MAX_TIME;
|
||||
g_iTimesLength=llGetListLength(g_lTimes);
|
||||
for(n = 0; n < g_iTimesLength; n = n + 2)// send notice and find the next time.
|
||||
{
|
||||
if(llList2Integer(g_lTimes, n)==REAL_TIME)
|
||||
{
|
||||
while(llList2Integer(g_lTimes, n+1)<=g_iCurrentTime&&llList2Integer(g_lTimes, n)==REAL_TIME)
|
||||
{
|
||||
g_lTimes=llDeleteSubList(g_lTimes, n, n+1);
|
||||
g_iTimesLength=llGetListLength(g_lTimes);
|
||||
}
|
||||
if(llList2Integer(g_lTimes, n)==REAL_TIME&&llList2Integer(g_lTimes, n+1)<g_iFirstRealTime)
|
||||
{
|
||||
g_iFirstRealTime=llList2Integer(g_lTimes, n+1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(g_iOnRunning == 1 && g_iOnTimeUpAt<=g_iOnTime)
|
||||
{
|
||||
g_iOnRunning = 0;
|
||||
TimerFinish();
|
||||
}
|
||||
if(g_iRealRunning == 1 && g_iRealTimeUpAt<=g_iCurrentTime)
|
||||
{
|
||||
g_iRealRunning = 0;
|
||||
TimerFinish();
|
||||
}
|
||||
g_iLastTime=g_iCurrentTime;
|
||||
}
|
||||
|
||||
/*
|
||||
changed(integer iChange) {
|
||||
if (iChange & CHANGED_REGION) {
|
||||
if (g_iProfiled) {
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
@@ -1,311 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - titler //
|
||||
// version 3.988 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Nandana Singh, Satomi Ahn, Romka Swallowtail, littlemousy, Wendy Starfall
|
||||
|
||||
string g_sParentMenu = "Apps";
|
||||
string g_sFeatureName = "Titler";
|
||||
string g_sPrimDesc = "FloatText"; //description text of the hovertext prim. Needs to be separated from the menu name.
|
||||
|
||||
//MESSAGE MAP
|
||||
//integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
//integer SEND_IM = 1000; deprecated. each script should send its own IMs now. This is to reduce even the tiny bt of lag caused by having IM slave scripts
|
||||
integer POPUP_HELP = 1001;
|
||||
//integer UPDATE = 10001;
|
||||
|
||||
integer LM_SETTING_SAVE = 2000;
|
||||
integer LM_SETTING_REQUEST = 2001;
|
||||
integer LM_SETTING_RESPONSE = 2002;
|
||||
integer LM_SETTING_DELETE = 2003;
|
||||
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
integer MENUNAME_REMOVE = 3003;
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
//integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
|
||||
integer g_iLastRank = 504; //COMMAND_EVERYONE
|
||||
integer g_iOn = FALSE;
|
||||
string g_sText;
|
||||
vector g_vColor = <1.0,1.0,1.0>; // default white
|
||||
|
||||
integer g_iTextPrim;
|
||||
string g_sScript= "titler_";
|
||||
|
||||
key g_kWearer;
|
||||
|
||||
key g_kDialogID; //menu handle
|
||||
key g_kColourDialogID; //menu handle
|
||||
key g_kTBoxId; //text box handle
|
||||
|
||||
string SET = "Set Title" ;
|
||||
string UP = "↑ Up";
|
||||
string DN = "↓ Down";
|
||||
string ON = "☒ Show";
|
||||
string OFF = "☐ Show";
|
||||
string UPMENU = "BACK";
|
||||
float min_z = 0.25 ; // min height
|
||||
float max_z = 1.0 ; // max height
|
||||
vector g_vPrimScale = <0.02,0.02,0.5>; // prim size, initial value (z - text offset height)
|
||||
list g_lColours=[
|
||||
"Magenta",<1.00000, 0.00000, 0.50196>,
|
||||
"Pink",<1.00000, 0.14902, 0.50980>,
|
||||
"Hot Pink",<1.00000, 0.05490, 0.72157>,
|
||||
"Firefighter",<0.88627, 0.08627, 0.00392>,
|
||||
"Sun",<1.00000, 1.00000, 0.18039>,
|
||||
"Flame",<0.92941, 0.43529, 0.00000>,
|
||||
"Matrix",<0.07843, 1.00000, 0.07843>,
|
||||
"Electricity",<0.00000, 0.46667, 0.92941>,
|
||||
"Violet Wand",<0.63922, 0.00000, 0.78824>,
|
||||
"Black",<0.00000, 0.00000, 0.00000>,
|
||||
"White",<1.00000, 1.00000, 1.00000>
|
||||
];
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
key Dialog(key kRCPT, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth){
|
||||
key kID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kRCPT + "|" + sPrompt + "|" + (string)iPage + "|" + llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kID);
|
||||
//Debug("Made menu.");
|
||||
return kID;
|
||||
}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer){
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else {
|
||||
if (llGetAgentSize(kID)) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
ShowHideText(){
|
||||
//Debug("ShowHideText");
|
||||
//llSleep(1.0); // not sure that it should be
|
||||
if (g_iTextPrim >0){
|
||||
if (g_sText == "") g_iOn = FALSE;
|
||||
llSetLinkPrimitiveParamsFast(g_iTextPrim, [PRIM_TEXT,g_sText,g_vColor,(float)g_iOn, PRIM_SIZE,g_vPrimScale, PRIM_SLICE,<0.490,0.51,0.0>]);
|
||||
}
|
||||
}
|
||||
|
||||
integer UserCommand(integer iAuth, string sStr, key kAv){
|
||||
if (iAuth < COMMAND_OWNER || iAuth > COMMAND_WEARER) return FALSE;
|
||||
|
||||
list lParams = llParseString2List(sStr, [" "], []);
|
||||
string sCommand = llToLower(llList2String(lParams, 0));
|
||||
|
||||
if (llToLower(sStr) == "menu titler") {
|
||||
string ON_OFF ;
|
||||
string sPrompt;
|
||||
if (g_iTextPrim == -1) {
|
||||
sPrompt="\nThis design is missing a FloatText box. Titler disabled.";
|
||||
sPrompt+= "\n\nwww.opencollar.at/titler";
|
||||
g_kDialogID = Dialog(kAv, sPrompt, [], [UPMENU],0, iAuth);
|
||||
} else {
|
||||
sPrompt = "\nCurrent Title: " + g_sText ;
|
||||
sPrompt+= "\n\nwww.opencollar.at/titler";
|
||||
if(g_iOn == TRUE) ON_OFF = ON ;
|
||||
else ON_OFF = OFF ;
|
||||
g_kDialogID = Dialog(kAv, sPrompt, [SET,UP,DN,ON_OFF,"Color"], [UPMENU],0, iAuth);
|
||||
}
|
||||
} else if (sStr=="menu titlercolor" || sStr=="titlercolor") {
|
||||
list lColourNames;
|
||||
integer numColours=llGetListLength(g_lColours)/2;
|
||||
while (numColours--){
|
||||
lColourNames+=llList2String(g_lColours,numColours*2);
|
||||
}
|
||||
g_kColourDialogID = Dialog(kAv, "\n\nSelect a colour from the list", lColourNames, [UPMENU],0, iAuth);
|
||||
} else if (sCommand=="titlercolor") {
|
||||
string sColour= llDumpList2String(llDeleteSubList(lParams,0,0)," ");
|
||||
integer colourIndex=llListFindList(g_lColours,[sColour]);
|
||||
if (~colourIndex){
|
||||
g_vColor=(vector)llList2String(g_lColours,colourIndex+1);
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript+"color="+(string)g_vColor, "");
|
||||
}
|
||||
ShowHideText();
|
||||
|
||||
} else if (sStr == "runaway" && (iAuth == COMMAND_OWNER || iAuth == COMMAND_WEARER)) {
|
||||
g_sText = "";
|
||||
g_iOn = FALSE;
|
||||
ShowHideText();
|
||||
llResetScript();
|
||||
} else if (llSubStringIndex(sCommand,"title")==0) {
|
||||
if (g_iOn && iAuth > g_iLastRank) { //only change text if commander has smae or greater auth
|
||||
Notify(kAv,"You currently have not the right to change the Titler settings, someone with a higher rank set it!", FALSE);
|
||||
} else if (sCommand == "title") {
|
||||
string sNewText= llDumpList2String(llDeleteSubList(lParams, 0, 0), " ");//pop off the "text" command
|
||||
|
||||
g_sText = llDumpList2String(llParseStringKeepNulls(sNewText, ["\\n"], []), "\n");// make it possible to insert line breaks in hover text
|
||||
if (sNewText == "") {
|
||||
g_iOn = FALSE;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, g_sScript+"title", "");
|
||||
} else {
|
||||
g_iOn = TRUE;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript+"title="+g_sText, "");
|
||||
}
|
||||
g_iLastRank=iAuth;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript+"on="+(string)g_iOn, "");
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript+"auth="+(string)g_iLastRank, ""); // save lastrank to DB
|
||||
} else if (sCommand == "titleoff") {
|
||||
g_iLastRank = COMMAND_EVERYONE;
|
||||
g_iOn = FALSE;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, g_sScript+"on", "");
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, g_sScript+"auth", ""); // del lastrank from DB
|
||||
} else if (sCommand == "titleon") {
|
||||
g_iLastRank = iAuth;
|
||||
g_iOn = TRUE;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript+"on="+(string)g_iOn, "");
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript+"auth="+(string)g_iLastRank, ""); // save lastrank to DB
|
||||
} else if (sCommand == "titleup") {
|
||||
g_vPrimScale.z += 0.05 ;
|
||||
if(g_vPrimScale.z > max_z) g_vPrimScale.z = max_z ;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript+"height="+(string)g_vPrimScale.z, "");
|
||||
} else if (sCommand == "titledown") {
|
||||
g_vPrimScale.z -= 0.05 ;
|
||||
if(g_vPrimScale.z < min_z) g_vPrimScale.z = min_z ;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, g_sScript+"height="+(string)g_vPrimScale.z, "");
|
||||
} else if (sCommand == "titlebox") {
|
||||
g_kTBoxId = Dialog(kAv, "\n- Submit the new title in the field below.\n- Submit a blank field to go back to " + g_sFeatureName + ".", [], [], 0, iAuth);
|
||||
}
|
||||
ShowHideText();
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
default {
|
||||
on_rez(integer param) {
|
||||
llResetScript();
|
||||
}
|
||||
|
||||
state_entry() {
|
||||
//llSetMemoryLimit(65536); //this script needs to be profiled, and its memory limited
|
||||
g_iTextPrim = -1 ;
|
||||
// find the text prim
|
||||
integer linkNumber = llGetNumberOfPrims()+1;
|
||||
while (linkNumber-- >2){
|
||||
string desc = llList2String(llGetLinkPrimitiveParams(linkNumber, [PRIM_DESC]),0);
|
||||
if (llSubStringIndex(desc, g_sPrimDesc) == 0) {
|
||||
if (llList2Integer(llGetLinkPrimitiveParams(linkNumber,[PRIM_TYPE]),0)==PRIM_TYPE_BOX){
|
||||
g_iTextPrim = linkNumber;
|
||||
llSetLinkPrimitiveParamsFast(g_iTextPrim,[PRIM_DESC,g_sPrimDesc+"~notexture~nocolor~nohide"]);
|
||||
linkNumber = 0 ; // break while cycle
|
||||
} else {
|
||||
llSetLinkPrimitiveParamsFast(linkNumber,[PRIM_TEXT,"",<0,0,0>,0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
g_kWearer = llGetOwner();
|
||||
|
||||
if (g_iTextPrim < 0) {
|
||||
llMessageLinked(LINK_SET, MENUNAME_REMOVE, g_sParentMenu + "|" + g_sFeatureName, "");
|
||||
llRemoveInventory(llGetScriptName());
|
||||
}
|
||||
//Debug("Starting");
|
||||
}
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID){
|
||||
//Debug("Link Message Event");
|
||||
if (UserCommand(iNum, sStr, kID)) return;
|
||||
if (iNum == MENUNAME_REQUEST && sStr == g_sParentMenu) {
|
||||
llMessageLinked(LINK_ROOT, MENUNAME_RESPONSE, g_sParentMenu + "|" + g_sFeatureName, "");
|
||||
} else if (iNum == LM_SETTING_RESPONSE) {
|
||||
string sGroup = llGetSubString(sStr, 0, llSubStringIndex(sStr, "_") );
|
||||
string sToken = llGetSubString(sStr, llSubStringIndex(sStr, "_")+1, llSubStringIndex(sStr, "=")-1);
|
||||
string sValue = llGetSubString(sStr, llSubStringIndex(sStr, "=")+1, -1);
|
||||
if (sGroup == g_sScript) {
|
||||
if(sToken == "title") g_sText = sValue;
|
||||
if(sToken == "on") g_iOn = (integer)sValue;
|
||||
if(sToken == "color") g_vColor = (vector)sValue;
|
||||
if(sToken == "height") g_vPrimScale.z = (float)sValue;
|
||||
if(sToken == "auth") g_iLastRank = (integer)sValue; // restore lastrank from DB
|
||||
} else if( sStr == "settings=sent") ShowHideText();
|
||||
} else if (iNum == DIALOG_RESPONSE) {
|
||||
if (kID == g_kDialogID) { //response from our main menu
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
if (sMessage == SET) {
|
||||
UserCommand(iAuth, "titlebox", kAv);
|
||||
} else if (sMessage == "Color") {
|
||||
UserCommand(iAuth, "menu titlercolor", kAv);
|
||||
} else if (sMessage == UPMENU) {
|
||||
llMessageLinked(LINK_SET, iAuth, "menu " + g_sParentMenu, kAv);
|
||||
} else {
|
||||
if (sMessage == UP) UserCommand(iAuth, "titleup", kAv);
|
||||
else if (sMessage == DN) UserCommand(iAuth, "titledown", kAv);
|
||||
else if (sMessage == OFF) UserCommand(iAuth, "titleon", kAv);
|
||||
else if (sMessage == ON) UserCommand(iAuth, "titleoff", kAv);
|
||||
UserCommand(iAuth, "menu titler", kAv);
|
||||
}
|
||||
} else if (kID == g_kColourDialogID) { //response form the colours menu
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
|
||||
if (sMessage == UPMENU) {
|
||||
UserCommand(iAuth, "menu titler", kAv);
|
||||
} else {
|
||||
UserCommand(iAuth, "titlercolor "+sMessage, kAv);
|
||||
UserCommand(iAuth, "menu titlercolor", kAv);
|
||||
}
|
||||
|
||||
} else if (kID == g_kTBoxId) { //response from text box
|
||||
list lMenuParams = llParseStringKeepNulls(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
|
||||
if(sMessage != "") UserCommand(iAuth, "title " + sMessage, kAv);
|
||||
UserCommand(iAuth, "menu " + g_sFeatureName, kAv);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
changed(integer iChange){
|
||||
if (iChange & (CHANGED_OWNER|CHANGED_LINK)) llResetScript();
|
||||
/*
|
||||
if (iChange & CHANGED_REGION) {
|
||||
if (g_iProfiled) {
|
||||
llScriptProfiler(1);
|
||||
Debug("profiling restarted");
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
----------------------
|
||||
OpenCollar License
|
||||
----------------------
|
||||
|
||||
[In-World Notecard Object of the GPLv2]
|
||||
|
||||
The OpenCollar scripts are licensed under the GPLv2 (http://www.gnu.org/licenses/gpl-2.0.txt), with the following addendum:
|
||||
|
||||
Throughout this license the term "authors" refers to Nandana Singh, Lulu Pink, Garvin Twine, Cleo Collins, Wendy Starfall, Satomi Ahn, Joy Stipe, Medea Destiny, littlemousy and other contributors to OpenCollar - submission set free.
|
||||
|
||||
"Full perms" means maintaining the modify, copy, and transfer permissions in Second Life. If the Second Life platform should allow more fine-grained permissions in the future, then "full perms" will mean the most permissive possible set of permissions allowed by the platform.
|
||||
|
||||
The OpenCollar scripts are free to be copied, modified, and redistributed, subject to the following conditions:
|
||||
|
||||
- If you distribute the OpenCollar scripts, you must leave them full perms. (This includes using the scripts in collars that you make.)
|
||||
- If you modify the OpenCollar scripts and distribute the modifications, you must also make your modifications full perms.
|
||||
|
||||
Custom plugins that are entirely created by you, and which communicate with the OpenCollar scripts only through link messages, are not subject to the above restrictions.
|
||||
|
||||
The OpenCollar hug and kiss scripts were originally created by Francis Chung, with only slight modifications by Ilse Mannonen. To the best of our knowledge, they are in the public domain.
|
||||
|
||||
To the best of our knowledge, the animations included in OpenCollar which were not created by the authors (which is most of them), may be used without restriction. Animations created by the authors as well as animations created by Marine Kelley which are named arch, bendover, booty, cutie, display and kneel as of version 3.940 must remain full perms. If you created one of the included animations and would like to have it removed, please notify Wendy Starfall.
|
||||
|
||||
Likewise, all textures included in the OpenCollar that were not created by the authors are, to the best of our knowledge, free to use for any purpose. The textures included which were created by the authors must remain full perms. If you created one of the included textures and would like to have it removed, please notify Wendy Starfall.
|
||||
|
||||
The base OpenCollar object (in which the OpenCollar scripts are placed) must also remain full perms. (If you want to use the OpenCollar scripts in collars that you have made and wish to sell, you can restrict copy or trans permissions on your prims, but you must leave the OpenCollar scripts full perms).
|
||||
|
||||
------------------------------
|
||||
3rd Party Extension Policy
|
||||
------------------------------
|
||||
|
||||
Part of OpenCollar being "open" means that we aim to provide a platform that people can easily integrate with. We encourage people to create their own products, tools, extensions, or services that integrate with OpenCollar. You're even free to charge money for them. There are a few ground rules though:
|
||||
|
||||
1. Any scripts containing OpenCollar code must use the GPL license and remain full perms in SL.
|
||||
2. You must be very very clear that your product/service/whatever is not affiliated with or supported by the OpenCollar project. Users must not be confused about who they're trusting.
|
||||
3. You must not advertise in the OpenCollar groups. Our groups prohibit all advertising. There is no exception for products that integrate with OpenCollar in some way.
|
||||
|
||||
(We may add to those rules if we missed something important or see people trying to pick loopholes in them, but that's it for now.)
|
||||
|
||||
We are eager to welcome creators willing to follow these rules. We want to support your creativity by giving you a solid platform to build on, and we want you as part of our community.
|
||||
|
||||
For now, violations of these rules will be dealt with through group ejection and public shunning. We may in the future create a directory of third party products and services that we trust. Violators of these rules will be forbidden from being on that list.
|
||||
@@ -1,156 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollarUpdater - BundleGiver //
|
||||
// version 3.928 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// this script receives DO_BUNDLE messages that contain the uuid of the collar being updated,
|
||||
// the name of a bundle notecard, the talkchannel on which the collar shim script is listening, and
|
||||
// the script pin set by the shim. This script then loops over the items listed in the notecard
|
||||
// and chats with the shim about each one. Items that are already present (as determined by uuid)
|
||||
// are skipped. Items not present are given to the collar. Items that are present but don't have the
|
||||
// right uuid are deleted and replaced with the version in the updater. Scripts are loaded with
|
||||
// llRemoteLoadScriptPin, and are set running immediately.
|
||||
|
||||
// once the end of the notecard is reached, this script sends a BUNDLE_DONE message that includes all the same
|
||||
// stuff it got in DO_BUNDLE (talkchannel, recipient, card, pin).
|
||||
|
||||
integer DO_BUNDLE = 98749;
|
||||
integer BUNDLE_DONE = 98750;
|
||||
|
||||
integer talkchannel;
|
||||
key rcpt;
|
||||
string card;
|
||||
integer pin;
|
||||
string mode;
|
||||
|
||||
integer line;
|
||||
key lineid;
|
||||
integer listener;
|
||||
|
||||
SetStatus(string name) {
|
||||
// use card name, item type, and item name to set a nice
|
||||
// text status message
|
||||
list cardparts = llParseString2List(card, ["_"], []);
|
||||
string bundle = llList2String(cardparts, 2);
|
||||
string msg = llDumpList2String([
|
||||
"Doing Bundle: " + bundle,
|
||||
"Doing Item: " + name
|
||||
], "\n");
|
||||
llSetText(msg, <1,1,1>, 1.0);
|
||||
}
|
||||
|
||||
debug(string msg) {
|
||||
//llOwnerSay(llGetScriptName() + ": " + msg);
|
||||
}
|
||||
|
||||
default
|
||||
{
|
||||
link_message(integer sender, integer num, string str, key id)
|
||||
{
|
||||
if (num == DO_BUNDLE)
|
||||
{
|
||||
debug("doing bundle: " + str);
|
||||
// str will be in form talkchannel|uuid|bundle_card_name
|
||||
list parts = llParseString2List(str, ["|"], []);
|
||||
talkchannel = (integer)llList2String(parts, 0);
|
||||
rcpt = (key)llList2String(parts, 1);
|
||||
card = llList2String(parts, 2);
|
||||
pin = (integer)llList2String(parts, 3);
|
||||
mode = llList2String(parts, 4); // either INSTALL or REMOVE
|
||||
line = 0;
|
||||
llListenRemove(listener);
|
||||
listener = llListen(talkchannel, "", rcpt, "");
|
||||
|
||||
// get the first line of the card
|
||||
lineid = llGetNotecardLine(card, line);
|
||||
}
|
||||
}
|
||||
|
||||
dataserver(key id, string data)
|
||||
{
|
||||
if (id == lineid)
|
||||
{
|
||||
if (data != EOF)
|
||||
{
|
||||
// process bundle line
|
||||
list parts = llParseString2List(data, ["|"], []);
|
||||
string type = llList2String(parts, 0);
|
||||
string name = llList2String(parts, 1);
|
||||
key uuid;
|
||||
string msg;
|
||||
|
||||
SetStatus(name);
|
||||
|
||||
uuid = llGetInventoryKey(name);
|
||||
msg = llDumpList2String([type, name, uuid, mode], "|");
|
||||
debug("querying: " + msg);
|
||||
llRegionSayTo(rcpt, talkchannel, msg);
|
||||
}
|
||||
else
|
||||
{
|
||||
debug("finished bundle: " + card);
|
||||
// all done reading the card. send link msg to main script saying we're done.
|
||||
llListenRemove(listener);
|
||||
llSetText("", <1,1,1>, 1.0);
|
||||
llMessageLinked(LINK_SET, BUNDLE_DONE, llDumpList2String([talkchannel, rcpt, card, pin, mode], "|"), "");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
listen(integer channel, string name, key id, string msg)
|
||||
{
|
||||
debug("heard: " + msg);
|
||||
// let's live on the edge and assume that we only ever listen with a uuid filter so we know it's safe
|
||||
// look for msgs in the form <type>|<name>|<cmd>
|
||||
list parts = llParseString2List(msg, ["|"], []);
|
||||
if (llGetListLength(parts) == 3)
|
||||
{
|
||||
string type = llList2String(parts, 0);
|
||||
string name = llList2String(parts, 1);
|
||||
string cmd = llList2String(parts, 2);
|
||||
if (cmd == "SKIP" || cmd == "OK")
|
||||
{
|
||||
// move on to the next item by reading the next notecard line
|
||||
line++;
|
||||
lineid = llGetNotecardLine(card, line);
|
||||
}
|
||||
else if (cmd == "GIVE")
|
||||
{
|
||||
// give the item, and then read the next notecard line.
|
||||
if (type == "ITEM")
|
||||
{
|
||||
llGiveInventory(id, name);
|
||||
}
|
||||
else if (type == "SCRIPT")
|
||||
{
|
||||
// get the full name, and load it via script pin.
|
||||
llRemoteLoadScriptPin(id, name, pin, TRUE, 0);
|
||||
}
|
||||
line++;
|
||||
lineid = llGetNotecardLine(card, line);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
on_rez(integer num)
|
||||
{
|
||||
llResetScript();
|
||||
}
|
||||
|
||||
changed(integer change)
|
||||
{
|
||||
if (change & CHANGED_INVENTORY)
|
||||
{
|
||||
llResetScript();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,450 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollarUpdater - Dialog //
|
||||
// version 3.988 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//an adaptation of Schmobag Hogfather's SchmoDialog script
|
||||
|
||||
//MESSAGE MAP
|
||||
integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
integer COMMAND_RLV_RELAY = 507;
|
||||
integer COMMAND_SAFEWORD = 510;
|
||||
integer COMMAND_RELAY_SAFEWORD = 511;
|
||||
|
||||
//integer SEND_IM = 1000; deprecated. each script should send its own IMs now. This is to reduce even the tiny bt of lag caused by having IM slave scripts
|
||||
integer POPUP_HELP = 1001;
|
||||
|
||||
integer LM_SETTING_SAVE = 2000;//scripts send messages on this channel to have settings saved to httpdb
|
||||
//str must be in form of "token=value"
|
||||
integer LM_SETTING_REQUEST = 2001;//when startup, scripts send requests for settings on this channel
|
||||
integer LM_SETTING_RESPONSE = 2002;//the httpdb script will send responses on this channel
|
||||
integer LM_SETTING_DELETE = 2003;//delete token from DB
|
||||
integer LM_SETTING_EMPTY = 2004;//sent by httpdb script when a token has no value in the db
|
||||
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
integer SUBMENU = 3002;
|
||||
integer MENUNAME_REMOVE = 3003;
|
||||
|
||||
integer RLV_CMD = 6000;
|
||||
integer RLV_REFRESH = 6001;//RLV plugins should reinstate their restrictions upon receiving this message.
|
||||
integer RLV_CLEAR = 6002;//RLV plugins should clear their restriction lists upon receiving this message.
|
||||
integer RLV_VERSION = 6003; //RLV Plugins can recieve the used rl viewer version upon receiving this message..
|
||||
|
||||
integer RLV_OFF = 6100; // send to inform plugins that RLV is disabled now, no message or key needed
|
||||
integer RLV_ON = 6101; // send to inform plugins that RLV is enabled now, no message or key needed
|
||||
|
||||
integer ANIM_START = 7000;//send this with the name of an anim in the string part of the message to play the anim
|
||||
integer ANIM_STOP = 7001;//send this with the name of an anim in the string part of the message to stop the anim
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
integer iPagesize = 12;
|
||||
string MORE = "►";
|
||||
string PREV = "◄";
|
||||
string UPMENU = "BACK"; // string to identify the UPMENU button in the utility lButtons
|
||||
//string SWAPBTN = "swap";
|
||||
//string SYNCBTN = "sync";
|
||||
string BLANK = " ";
|
||||
integer g_iTimeOut = 300;
|
||||
integer g_iReapeat = 5;//how often the timer will go off, in seconds
|
||||
|
||||
list g_lMenus;//9-strided list in form listenChan, dialogid, listener, starttime, recipient, prompt, list buttons, utility buttons, currentpage
|
||||
//where "list buttons" means the big list of choices presented to the user
|
||||
//and "page buttons" means utility buttons that will appear on every page, such as one saying "go up one level"
|
||||
//and "currentpage" is an integer meaning which page of the menu the user is currently viewing
|
||||
|
||||
list g_lRemoteMenus;
|
||||
|
||||
integer g_iStrideLength = 9;
|
||||
|
||||
key g_kWearer;
|
||||
|
||||
Notify(key keyID, string sMsg, integer nAlsoNotifyWearer)
|
||||
{
|
||||
Debug((string)keyID);
|
||||
if (keyID == g_kWearer) llOwnerSay(sMsg);
|
||||
else
|
||||
{
|
||||
if (llGetAgentSize(keyID)) llRegionSayTo(keyID,0,sMsg);
|
||||
else llInstantMessage(keyID,sMsg);
|
||||
if (nAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
list CharacterCountCheck(list lIn, key ID)
|
||||
// checks if any of the times is over 24 characters and removes them if needed
|
||||
{
|
||||
list lOut;
|
||||
string s;
|
||||
integer i;
|
||||
integer m=llGetListLength(lIn);
|
||||
for (i=0;i<m;i++)
|
||||
{
|
||||
s=llList2String(lIn,i);
|
||||
if (llStringLength(s)>24)
|
||||
{
|
||||
Notify(ID, "The following button is longer than 24 characters and has been removed (can be caused by the name length of the item in the collars inventory): "+s, TRUE);
|
||||
}
|
||||
else
|
||||
{
|
||||
lOut+=[s];
|
||||
}
|
||||
}
|
||||
return lOut;
|
||||
|
||||
}
|
||||
|
||||
|
||||
integer RandomUniqueChannel()
|
||||
{
|
||||
integer iOut = llRound(llFrand(10000000)) + 100000;
|
||||
if (~llListFindList(g_lMenus, [iOut]))
|
||||
{
|
||||
iOut = RandomUniqueChannel();
|
||||
}
|
||||
return iOut;
|
||||
}
|
||||
|
||||
Dialog(key kRecipient, string sPrompt, list lMenuItems, list lUtilityButtons, integer iPage, key kID)
|
||||
{
|
||||
//string sThisPrompt = " (Timeout in "+ (string)g_iTimeOut +" seconds.)";
|
||||
string sThisPrompt;
|
||||
list lButtons;
|
||||
list lCurrentItems;
|
||||
integer iNumitems = llGetListLength(lMenuItems);
|
||||
integer iStart;
|
||||
integer iMyPageSize = iPagesize - llGetListLength(lUtilityButtons);
|
||||
|
||||
//slice the menuitems by page
|
||||
if (iNumitems > iMyPageSize)
|
||||
{
|
||||
iMyPageSize=iMyPageSize-2;//we'll use two slots for the MORE and PREV button, so shrink the page accordingly
|
||||
iStart = iPage * iMyPageSize;
|
||||
integer iEnd = iStart + iMyPageSize - 1;
|
||||
//multi page menu
|
||||
//lCurrentItems = llList2List(lMenuItems, iStart, iEnd);
|
||||
lButtons = llList2List(lMenuItems, iStart, iEnd);
|
||||
sThisPrompt = sThisPrompt + " Page "+(string)(iPage+1)+"/"+(string)(((iNumitems-1)/iMyPageSize)+1);
|
||||
}
|
||||
else
|
||||
{
|
||||
iStart = 0;
|
||||
lButtons = lMenuItems;
|
||||
}
|
||||
|
||||
// check promt lenghtes
|
||||
integer iPromptlen=llStringLength(sPrompt);
|
||||
if (iPromptlen>511)
|
||||
{
|
||||
Notify(kRecipient,"The dialog prompt message is longer than 512 characters. It will be truncated to 512 characters.",TRUE);
|
||||
sPrompt=llGetSubString(sPrompt,0,510);
|
||||
sThisPrompt = sPrompt;
|
||||
}
|
||||
else if (iPromptlen + llStringLength(sThisPrompt)< 512)
|
||||
{
|
||||
sThisPrompt= sPrompt + sThisPrompt;
|
||||
}
|
||||
else
|
||||
{
|
||||
sThisPrompt= sPrompt;
|
||||
}
|
||||
|
||||
//integer stop = llGetListLength(lCurrentItems);
|
||||
//integer n;
|
||||
//for (n = 0; n < stop; n++)
|
||||
//{
|
||||
// string sName = llList2String(lMenuItems, iStart + n);
|
||||
// lButtons += [sName];
|
||||
//}
|
||||
|
||||
|
||||
|
||||
lButtons = SanitizeButtons(lButtons);
|
||||
lUtilityButtons = SanitizeButtons(lUtilityButtons);
|
||||
|
||||
integer iChan = RandomUniqueChannel();
|
||||
integer g_iListener = llListen(iChan, "", kRecipient, "");
|
||||
llSetTimerEvent(g_iReapeat);
|
||||
if (iNumitems > iMyPageSize)
|
||||
{
|
||||
llDialog(kRecipient, sThisPrompt, PrettyButtons(lButtons, lUtilityButtons,[PREV,MORE]), iChan);
|
||||
}
|
||||
else
|
||||
{
|
||||
llDialog(kRecipient, sThisPrompt, PrettyButtons(lButtons, lUtilityButtons,[]), iChan);
|
||||
}
|
||||
integer ts = llGetUnixTime() + g_iTimeOut;
|
||||
g_lMenus += [iChan, kID, g_iListener, ts, kRecipient, sPrompt, llDumpList2String(lMenuItems, "|"), llDumpList2String(lUtilityButtons, "|"), iPage];
|
||||
}
|
||||
|
||||
list SanitizeButtons(list lIn)
|
||||
{
|
||||
integer iLength = llGetListLength(lIn);
|
||||
integer n;
|
||||
for (n = iLength - 1; n >= 0; n--)
|
||||
{
|
||||
integer type = llGetListEntryType(lIn, n);
|
||||
if (llList2String(lIn, n) == "") //remove empty sStrings
|
||||
{
|
||||
lIn = llDeleteSubList(lIn, n, n);
|
||||
}
|
||||
else if (type != TYPE_STRING) //cast anything else to string
|
||||
{
|
||||
lIn = llListReplaceList(lIn, [llList2String(lIn, n)], n, n);
|
||||
}
|
||||
}
|
||||
return lIn;
|
||||
}
|
||||
|
||||
list PrettyButtons(list lOptions, list lUtilityButtons, list iPagebuttons)
|
||||
{//returns a list formatted to that "options" will start in the top left of a dialog, and "utilitybuttons" will start in the bottom right
|
||||
list lSpacers;
|
||||
list lCombined = lOptions + lUtilityButtons + iPagebuttons;
|
||||
while (llGetListLength(lCombined) % 3 != 0 && llGetListLength(lCombined) < 12)
|
||||
{
|
||||
lSpacers += [BLANK];
|
||||
lCombined = lOptions + lSpacers + lUtilityButtons + iPagebuttons;
|
||||
}
|
||||
// check if a UPBUTTON is present and remove it for the moment
|
||||
integer u = llListFindList(lCombined, [UPMENU]);
|
||||
if (u != -1)
|
||||
{
|
||||
lCombined = llDeleteSubList(lCombined, u, u);
|
||||
}
|
||||
|
||||
list lOut = llList2List(lCombined, 9, 11);
|
||||
lOut += llList2List(lCombined, 6, 8);
|
||||
lOut += llList2List(lCombined, 3, 5);
|
||||
lOut += llList2List(lCombined, 0, 2);
|
||||
|
||||
//make sure we move UPMENU to the lower right corner
|
||||
if (u != -1)
|
||||
{
|
||||
lOut = llListInsertList(lOut, [UPMENU], 2);
|
||||
}
|
||||
|
||||
return lOut;
|
||||
}
|
||||
|
||||
|
||||
list RemoveMenuStrkIDe(list lMenu, integer iIndex)
|
||||
{
|
||||
//tell this function the menu you wish to remove, identified by list index
|
||||
//it will close the listener, remove the menu's entry from the list, and return the new list
|
||||
//should be called in the listen event, and on menu timeout
|
||||
integer g_iListener = llList2Integer(lMenu, iIndex + 2);
|
||||
llListenRemove(g_iListener);
|
||||
return llDeleteSubList(lMenu, iIndex, iIndex + g_iStrideLength - 1);
|
||||
}
|
||||
|
||||
CleanList()
|
||||
{
|
||||
//Debug("cleaning list");
|
||||
//loop through menus and remove any whose timeouts are in the past
|
||||
//start at end of list and loop down so that indices don't get messed up as we remove items
|
||||
integer iLength = llGetListLength(g_lMenus);
|
||||
integer n;
|
||||
integer iNow = llGetUnixTime();
|
||||
for (n = iLength - g_iStrideLength; n >= 0; n -= g_iStrideLength)
|
||||
{
|
||||
integer iDieTime = llList2Integer(g_lMenus, n + 3);
|
||||
//Debug("dietime: " + (string)iDieTime);
|
||||
if (iNow > iDieTime)
|
||||
{
|
||||
Debug("menu timeout");
|
||||
key kID = llList2Key(g_lMenus, n + 1);
|
||||
llMessageLinked(LINK_SET, DIALOG_TIMEOUT, "", kID);
|
||||
g_lMenus = RemoveMenuStrkIDe(g_lMenus, n);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ClearUser(key kRCPT)
|
||||
{
|
||||
//find any strides belonging to user and remove them
|
||||
integer iIndex = llListFindList(g_lMenus, [kRCPT]);
|
||||
while (~iIndex)
|
||||
{
|
||||
Debug("removed stride for " + (string)kRCPT);
|
||||
g_lMenus = llDeleteSubList(g_lMenus, iIndex - 4, iIndex - 5 + g_iStrideLength);
|
||||
iIndex = llListFindList(g_lMenus, [kRCPT]);
|
||||
}
|
||||
Debug(llDumpList2String(g_lMenus, ","));
|
||||
}
|
||||
|
||||
Debug(string sStr)
|
||||
{
|
||||
//llOwnerSay(llGetScriptName() + ": " + sStr);
|
||||
}
|
||||
|
||||
integer InSim(key id)
|
||||
{
|
||||
return llKey2Name(id) != "";
|
||||
}
|
||||
|
||||
default
|
||||
{
|
||||
state_entry()
|
||||
{
|
||||
g_kWearer=llGetOwner();
|
||||
}
|
||||
|
||||
on_rez(integer iParam)
|
||||
{
|
||||
llResetScript();
|
||||
}
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID)
|
||||
{
|
||||
if (iNum == DIALOG)
|
||||
{//give a dialog with the options on the button labels
|
||||
//str will be pipe-delimited list with rcpt|prompt|page|backtick-delimited-list-buttons|backtick-delimited-utility-buttons
|
||||
Debug(sStr);
|
||||
list lParams = llParseStringKeepNulls(sStr, ["|"], []);
|
||||
key kRCPT = (key)llList2String(lParams, 0);
|
||||
integer iIndex = llListFindList(g_lRemoteMenus, [kRCPT]);
|
||||
if (~iIndex)
|
||||
{
|
||||
if (!InSim(kRCPT))
|
||||
{
|
||||
llHTTPRequest(llList2String(g_lRemoteMenus, iIndex+1), [HTTP_METHOD, "POST"], sStr+"|"+(string)kID);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_lRemoteMenus = llListReplaceList(g_lRemoteMenus, [], iIndex, iIndex+1);
|
||||
}
|
||||
}
|
||||
string sPrompt = llList2String(lParams, 1);
|
||||
integer iPage = (integer)llList2String(lParams, 2);
|
||||
list lbuttons = CharacterCountCheck(llParseStringKeepNulls(llList2String(lParams, 3), ["`"], []), kRCPT);
|
||||
list ubuttons = llParseString2List(llList2String(lParams, 4), ["`"], []);
|
||||
|
||||
//first clean out any strides already in place for that user. prevents having lots of listens open if someone uses the menu several times while sat
|
||||
ClearUser(kRCPT);
|
||||
//now give the dialog and save the new stride
|
||||
Dialog(kRCPT, sPrompt, lbuttons, ubuttons, iPage, kID);
|
||||
}
|
||||
else if (llGetSubString(sStr, 0, 10) == "remotemenu:")
|
||||
{
|
||||
if (iNum == COMMAND_OWNER || iNum == COMMAND_SECOWNER)
|
||||
{
|
||||
string sCmd = llGetSubString(sStr, 11, -1);
|
||||
Debug("dialog cmd:" + sCmd);
|
||||
if (llGetSubString(sCmd, 0, 3) == "url:")
|
||||
{
|
||||
integer iIndex = llListFindList(g_lRemoteMenus, [kID]);
|
||||
if (~iIndex)
|
||||
{
|
||||
g_lRemoteMenus = llListReplaceList(g_lRemoteMenus, [kID, llGetSubString(sCmd, 4, -1)], iIndex, iIndex+1);
|
||||
}
|
||||
else
|
||||
{
|
||||
g_lRemoteMenus += [kID, llGetSubString(sCmd, 4, -1)];
|
||||
}
|
||||
llMessageLinked(LINK_SET, iNum, "menu", kID);
|
||||
}
|
||||
else if (llGetSubString(sCmd, 0, 2) == "off")
|
||||
{
|
||||
integer iIndex = llListFindList(g_lRemoteMenus, [kID]);
|
||||
if (~iIndex)
|
||||
{
|
||||
g_lRemoteMenus = llListReplaceList((g_lRemoteMenus = []) + g_lRemoteMenus, [], iIndex, iIndex+1);
|
||||
}
|
||||
}
|
||||
else if (llGetSubString(sCmd, 0, 8) == "response:")
|
||||
{
|
||||
list lParams = llParseString2List(llGetSubString(sCmd, 9, -1), ["|"], []);
|
||||
//llMessageLinked(LINK_SET, DIALOG_RESPONSE, (string)kAv + "|" + sMessage + "|" + (string)iPage, kMenuID);
|
||||
llMessageLinked(LINK_SET, DIALOG_RESPONSE, llList2String(lParams, 0) + "|" + llList2String(lParams, 1) + "|" + llList2String(lParams, 2), llList2String(lParams, 3));
|
||||
}
|
||||
else if (llGetSubString(sCmd, 0, 7) == "timeout:")
|
||||
{
|
||||
llMessageLinked(LINK_SET, DIALOG_TIMEOUT, "", llGetSubString(sCmd, 8, -1));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
listen(integer iChan, string sName, key kID, string sMessage)
|
||||
{
|
||||
integer iMenuIndex = llListFindList(g_lMenus, [iChan]);
|
||||
if (~iMenuIndex)
|
||||
{
|
||||
key kMenuID = llList2Key(g_lMenus, iMenuIndex + 1);
|
||||
key kAv = llList2Key(g_lMenus, iMenuIndex + 4);
|
||||
string sPrompt = llList2String(g_lMenus, iMenuIndex + 5);
|
||||
list items = llParseStringKeepNulls(llList2String(g_lMenus, iMenuIndex + 6), ["|"], []);
|
||||
list ubuttons = llParseStringKeepNulls(llList2String(g_lMenus, iMenuIndex + 7), ["|"], []);
|
||||
integer iPage = llList2Integer(g_lMenus, iMenuIndex + 8);
|
||||
g_lMenus = RemoveMenuStrkIDe(g_lMenus, iMenuIndex);
|
||||
|
||||
if (sMessage == MORE)
|
||||
{
|
||||
Debug((string)iPage);
|
||||
//increase the page num and give new menu
|
||||
iPage++;
|
||||
integer thisiPagesize = iPagesize - llGetListLength(ubuttons) - 2;
|
||||
if (iPage * thisiPagesize >= llGetListLength(items))
|
||||
{
|
||||
iPage = 0;
|
||||
}
|
||||
Dialog(kID, sPrompt, items, ubuttons, iPage, kMenuID);
|
||||
}
|
||||
else if (sMessage == PREV)
|
||||
{
|
||||
Debug((string)iPage);
|
||||
//increase the page num and give new menu
|
||||
iPage--;
|
||||
|
||||
if (iPage < 0)
|
||||
{
|
||||
integer thisiPagesize = iPagesize - llGetListLength(ubuttons) - 2;
|
||||
|
||||
iPage = (llGetListLength(items)-1)/thisiPagesize;
|
||||
}
|
||||
Dialog(kID, sPrompt, items, ubuttons, iPage, kMenuID);
|
||||
}
|
||||
else if (sMessage == BLANK)
|
||||
|
||||
{
|
||||
//give the same menu back
|
||||
Dialog(kID, sPrompt, items, ubuttons, iPage, kMenuID);
|
||||
}
|
||||
else
|
||||
{
|
||||
llMessageLinked(LINK_SET, DIALOG_RESPONSE, (string)kAv + "|" + sMessage + "|" + (string)iPage, kMenuID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
timer()
|
||||
{
|
||||
CleanList();
|
||||
|
||||
//if list is empty after that, then stop timer
|
||||
|
||||
if (!llGetListLength(g_lMenus))
|
||||
{
|
||||
Debug("no active dialogs, stopping timer");
|
||||
llSetTimerEvent(0.0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,373 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollarUpdater - Master //
|
||||
// version 3.988 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// https://github.com/lickx/opencollar-os/tree/oscollar3 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// This is the master updater script. It complies with the update handshake
|
||||
// protocol that OC has been using for quite some time, and should therefore be
|
||||
// compatible with current OC collars. the internals of this script, and the
|
||||
// the other parts of the new updater, have been completely re-written. Don't
|
||||
// expect this to work like the old updater. Because we load an update shim
|
||||
// script right after handshaking, we're free to rewrite everything that comes
|
||||
// after the handshake.
|
||||
|
||||
// In addition to the handshake and shim installation, this script decides
|
||||
// which bundles should be installed into (or removed from) the collar. It
|
||||
// loops over each bundle in inventory, telling the BundleGiver script to
|
||||
// install or remove each.
|
||||
|
||||
// This script also does a little bit of magic to ensure that the updater's
|
||||
// version number always matches the contents of the ".version" card.
|
||||
|
||||
|
||||
key version_line_id;
|
||||
|
||||
integer initChannel = -7483214;
|
||||
integer iSecureChannel;
|
||||
|
||||
// store the script pin here when we get it from the collar.
|
||||
integer iPin;
|
||||
|
||||
// the collar's key
|
||||
key kCollarKey;
|
||||
|
||||
// strided list of bundles in the prim and whether they are supposed to be
|
||||
// installed.
|
||||
list lBundles;
|
||||
|
||||
// here we remember the index of the bundle that's currently being installed/removed
|
||||
// by the bundlegiver.
|
||||
integer iBundleIdx;
|
||||
|
||||
// handle for our dialogs
|
||||
key kDialogID;
|
||||
|
||||
integer DO_BUNDLE = 98749;
|
||||
integer BUNDLE_DONE = 98750;
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
string BTN_REQUIRED = " ★ ";
|
||||
string BTN_INSTALL = " ☒ ";
|
||||
string BTN_UNINSTALL = " ☐ ";
|
||||
string BTN_DEPRECATED = " ♻ ";
|
||||
string INSTALL_METHOD = "Standard";
|
||||
|
||||
string g_sVersion;
|
||||
// A wrapper around llSetScriptState to avoid the problem where it says it can't
|
||||
// find scripts that are already not running.
|
||||
DisableScript(string name) {
|
||||
if (llGetInventoryType(name) == INVENTORY_SCRIPT) {
|
||||
if (llGetScriptState(name) != FALSE) {
|
||||
llSetScriptState(name, FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DoBundle() {
|
||||
// tell bundle slave to load the bundle.
|
||||
string card = llList2String(lBundles, iBundleIdx);
|
||||
string mode = llList2String(lBundles, iBundleIdx + 1);
|
||||
string bundlemsg = llDumpList2String([iSecureChannel, kCollarKey, card, iPin, mode], "|");
|
||||
llMessageLinked(LINK_SET, DO_BUNDLE, bundlemsg, "");
|
||||
}
|
||||
|
||||
key Dialog(key kRCPT, string sPrompt, list lChoices, list lUtilityButtons, integer iPage) {
|
||||
key kID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kRCPT + "|" + sPrompt + "|" + (string)iPage + "|" + llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`"), kID);
|
||||
return kID;
|
||||
}
|
||||
|
||||
SetBundleStatus(string bundlename, string status) {
|
||||
// find the bundle in the list
|
||||
integer n;
|
||||
integer stop = llGetListLength(lBundles);
|
||||
for (n = 0; n < stop; n += 2) {
|
||||
string card = llList2String(lBundles, n);
|
||||
list parts = llParseString2List(card, ["_"], []);
|
||||
string name = llList2String(parts, 2);
|
||||
if (name == bundlename) {
|
||||
lBundles = llListReplaceList(lBundles, [status], n + 1, n + 1);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SetInstallmode(string type) {
|
||||
//user clicked default.. restore Bundle Status
|
||||
if(type == "Standard") {
|
||||
lBundles = [];
|
||||
integer n;
|
||||
integer stop = llGetInventoryNumber(INVENTORY_NOTECARD);
|
||||
for (n = 0; n < stop; n++) {
|
||||
string name = llGetInventoryName(INVENTORY_NOTECARD, n);
|
||||
if (llSubStringIndex(name, "BUNDLE_") == 0) {
|
||||
list parts = llParseString2List(name, ["_"], []);
|
||||
lBundles += [name, llList2String(parts, -1)];
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
string newstatus;
|
||||
integer n;
|
||||
integer stop = llGetListLength(lBundles);
|
||||
//user clicked Basic.. set Bundle Status
|
||||
if(type == "Basic")
|
||||
{
|
||||
newstatus = "REMOVE";
|
||||
}
|
||||
else if (type == "Developer")
|
||||
{
|
||||
newstatus = "INSTALL";
|
||||
}
|
||||
for (n = 0; n < stop; n += 2)
|
||||
{
|
||||
string card = llList2String(lBundles, n);
|
||||
string status = llList2String(lBundles, n + 1);
|
||||
if (status != "REQUIRED" && status != "DEPRECATED")
|
||||
{
|
||||
lBundles = llListReplaceList(lBundles, [newstatus], n + 1, n + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BundleMenu(integer page) {
|
||||
// Give the plugin selection/start menu.
|
||||
|
||||
string prompt = "\n\nAdd/remove plugins by checking the boxes below.";
|
||||
prompt += "\n\nClick START when you're ready to update.\n";
|
||||
|
||||
// build list of buttons from list of bundles
|
||||
integer n;
|
||||
integer stop = llGetListLength(lBundles);
|
||||
list choices;
|
||||
for (n = 0; n < stop; n += 2) {
|
||||
string card = llList2String(lBundles, n);
|
||||
string status = llList2String(lBundles, n + 1);
|
||||
list parts = llParseString2List(card, ["_"], []);
|
||||
string name = llList2String(parts, 2);
|
||||
|
||||
if (status == "INSTALL") {
|
||||
choices += [BTN_INSTALL + " " + name];
|
||||
} else if (status == "REQUIRED") {
|
||||
choices += [BTN_REQUIRED + " " + name];
|
||||
} else if (status == "REMOVE") {
|
||||
choices += [BTN_UNINSTALL + " " + name];
|
||||
} else if (status == "DEPRECATED") {
|
||||
choices += [BTN_DEPRECATED + " " + name];
|
||||
}
|
||||
}
|
||||
kDialogID = Dialog(llGetOwner(), prompt + "\n", choices, ["START"], page);
|
||||
}
|
||||
|
||||
GiveMethodMenu() {
|
||||
//string prompt = "\n\nStandard: \"The most popular features, RLV and Relay.\"\n";
|
||||
//prompt += "\nBasic: \"Just the modular core and essential basics.\"\n";
|
||||
//prompt += "\nCustom: \"Make your own selection of features here.\"\n";
|
||||
string prompt = "\n\nPlease select Standard or Custom installation.\n\nCustom is recommended if you want to add apps such as Timer and Camera, add extra height scalars or remove standard modules such as RLV or Animations.";
|
||||
prompt += "\n\nwww.opencollar.at/updates\n";
|
||||
prompt += "\n\nThe currently selected method is ["+INSTALL_METHOD+"]";
|
||||
list choices = ["Standard","Custom"];
|
||||
kDialogID = Dialog(llGetOwner(), prompt, choices, ["START"],0);
|
||||
}
|
||||
|
||||
Debug(string str) {
|
||||
//llOwnerSay(llGetScriptName() + ": " + str);
|
||||
}
|
||||
|
||||
ReadVersionLine() {
|
||||
// try to keep object's version in sync with ".version" notecard.
|
||||
if (llGetInventoryType(".version") == INVENTORY_NOTECARD) {
|
||||
version_line_id = llGetNotecardLine(".version", 0);
|
||||
}
|
||||
}
|
||||
|
||||
SetFloatText() {
|
||||
llSetText("Version "+g_sVersion, <1,1,1>, 1.0);
|
||||
}
|
||||
|
||||
Particles(key target) {
|
||||
llParticleSystem([
|
||||
PSYS_PART_FLAGS,
|
||||
PSYS_PART_INTERP_COLOR_MASK |
|
||||
PSYS_PART_INTERP_SCALE_MASK |
|
||||
PSYS_PART_TARGET_POS_MASK |
|
||||
PSYS_PART_EMISSIVE_MASK,
|
||||
PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_EXPLODE,
|
||||
PSYS_SRC_TEXTURE, "aa383f73-8be2-c693-acf0-9b8be8b4a155",
|
||||
PSYS_SRC_TARGET_KEY, target,
|
||||
PSYS_PART_START_SCALE, <0.68, 0.64, 0>,
|
||||
PSYS_PART_END_SCALE, <0.04, 0.04, 0>,
|
||||
PSYS_PART_START_ALPHA, 0.1,
|
||||
PSYS_PART_END_ALPHA, 1,
|
||||
PSYS_SRC_BURST_PART_COUNT, 4,
|
||||
PSYS_PART_MAX_AGE, 2,
|
||||
PSYS_SRC_BURST_SPEED_MIN, 0.2,
|
||||
PSYS_SRC_BURST_SPEED_MAX, 1
|
||||
]);
|
||||
}
|
||||
|
||||
default {
|
||||
state_entry() {
|
||||
ReadVersionLine();
|
||||
llListen(initChannel, "", "", "");
|
||||
// set all scripts except self to not running
|
||||
// also build list of all bundles
|
||||
integer n;
|
||||
integer stop = llGetInventoryNumber(INVENTORY_ALL);
|
||||
for (n = 0; n < stop; n++) {
|
||||
string name = llGetInventoryName(INVENTORY_ALL, n);
|
||||
integer type = llGetInventoryType(name);
|
||||
if (type == INVENTORY_SCRIPT) {
|
||||
// ignore updater scripts. set others to not running.
|
||||
if (llSubStringIndex(name, "OpenCollarUpdater") != 0) {
|
||||
DisableScript(name);
|
||||
}
|
||||
} else if (type == INVENTORY_NOTECARD) {
|
||||
// add card to bundle list if it's a bundle
|
||||
if (llSubStringIndex(name, "BUNDLE_") == 0) {
|
||||
list parts = llParseString2List(name, ["_"], []);
|
||||
lBundles += [name, llList2String(parts, -1)];
|
||||
}
|
||||
}
|
||||
}
|
||||
SetFloatText();
|
||||
llParticleSystem([]);
|
||||
}
|
||||
|
||||
listen(integer channel, string name, key id, string msg) {
|
||||
if (llGetOwnerKey(id) == llGetOwner()) {
|
||||
Debug(llDumpList2String([name, msg], ", "));
|
||||
if (channel == initChannel) {
|
||||
// everything heard on the init channel is stuff that has to
|
||||
// comply with the existing update kickoff protocol. New stuff
|
||||
// will be heard on the random secure channel instead.
|
||||
list parts = llParseString2List(msg, ["|"], []);
|
||||
string cmd = llList2String(parts, 0);
|
||||
string param = llList2String(parts, 1);
|
||||
if (cmd == "UPDATE") {
|
||||
// someone just clicked the upgrade button on their collar.
|
||||
llWhisper(initChannel, "get ready");
|
||||
} else if (cmd == "ready") {
|
||||
// person clicked "Yes I want to update" on the collar menu.
|
||||
// the script pin will be in the param
|
||||
iPin = (integer)param;
|
||||
kCollarKey = id;
|
||||
//BundleMenu(0);
|
||||
GiveMethodMenu();
|
||||
}
|
||||
} else if (channel == iSecureChannel) {
|
||||
if (msg == "reallyready") {
|
||||
Particles(id);
|
||||
iBundleIdx = 0;
|
||||
DoBundle();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// when we get a BUNDLE_DONE message, move to the next bundle
|
||||
link_message(integer sender, integer num, string str, key id) {
|
||||
if (num == DIALOG_RESPONSE) {
|
||||
if (id == kDialogID) {
|
||||
list parts = llParseString2List(str, ["|"], []);
|
||||
key av = (key)llList2String(parts, 0);
|
||||
string button = llList2String(parts, 1);
|
||||
integer page = (integer)llList2String(parts, 2);
|
||||
if (button == "START") {
|
||||
// so let's load the shim.
|
||||
string shim = "OpenCollar - UpdateShim";
|
||||
iSecureChannel = (integer)llFrand(-2000000000 + 1);
|
||||
llListen(iSecureChannel, "", kCollarKey, "");
|
||||
llRemoteLoadScriptPin(kCollarKey, shim, iPin, TRUE, iSecureChannel);
|
||||
|
||||
}
|
||||
//else if (button == "Basic" || button == "Standard" || button == "Developer")
|
||||
else if (button == "Standard")
|
||||
{
|
||||
INSTALL_METHOD = button;
|
||||
SetInstallmode(button);
|
||||
GiveMethodMenu();
|
||||
} else if (button == "Custom") {
|
||||
BundleMenu(0);
|
||||
}
|
||||
/*else if (button == "Help") {
|
||||
llLoadURL(av, "Confused with the many choices? Find help on our website!","http://www.opencollar.at/updates.html");
|
||||
}*/
|
||||
else {
|
||||
// switch the bundle if appropriate
|
||||
string status = llGetSubString(button, 0, 2);
|
||||
string bundlename = llGetSubString(button, 4, -1);
|
||||
if (status == BTN_REQUIRED) {
|
||||
llOwnerSay("The " + bundlename + " bundle is required and cannot be removed.");
|
||||
} else if (status == BTN_DEPRECATED) {
|
||||
llOwnerSay("The " + bundlename + " bundle is deprecated and must be removed.");
|
||||
} else if (status == BTN_INSTALL) {
|
||||
// if the button said +, that means we need to switch it to -
|
||||
// find the bundle in the list, and set to REMOVE
|
||||
SetBundleStatus(bundlename, "REMOVE");
|
||||
llOwnerSay(bundlename + " will be removed if present.");
|
||||
} else if (status == BTN_UNINSTALL) {
|
||||
SetBundleStatus(bundlename, "INSTALL");
|
||||
llOwnerSay(bundlename + " will be updated/installed.");
|
||||
}
|
||||
BundleMenu(page);
|
||||
}
|
||||
}
|
||||
} else if (num == BUNDLE_DONE) {
|
||||
// see if there's another bundle
|
||||
integer count = llGetListLength(lBundles);
|
||||
iBundleIdx += 2;
|
||||
if (iBundleIdx < count) {
|
||||
DoBundle();
|
||||
} else {
|
||||
// tell the shim to restore settings, set version,
|
||||
// remove the script pin, and delete himself.
|
||||
string myversion = llList2String(llParseString2List(llGetObjectName(), [" - "], []), 1);
|
||||
llRegionSayTo(kCollarKey, iSecureChannel, "CLEANUP|" + myversion);
|
||||
SetFloatText();
|
||||
llParticleSystem([]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
on_rez(integer param) {
|
||||
llResetScript();
|
||||
}
|
||||
|
||||
changed(integer change) {
|
||||
if (change & CHANGED_INVENTORY) {
|
||||
// Resetting on inventory change ensures that the bundle list is
|
||||
// kept current, and that the .version card is re-read if it
|
||||
// changes.
|
||||
llResetScript();
|
||||
}
|
||||
}
|
||||
|
||||
dataserver(key id, string data) {
|
||||
if (id == version_line_id) {
|
||||
// make sure that object version matches this card.
|
||||
g_sVersion=data;
|
||||
SetFloatText();
|
||||
list nameparts = llParseString2List(llGetObjectName(), [" - "], []);
|
||||
integer length = llGetListLength(nameparts);
|
||||
if (length == 2) {
|
||||
nameparts = llListReplaceList(nameparts, [data], 1, 1);
|
||||
} else if (length == 1) {
|
||||
nameparts += [data];
|
||||
}
|
||||
llSetObjectName(llDumpList2String(nameparts, " - "));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
hug|~hug|~hug|0.4|_SELF_ hugs _PARTNER_.
|
||||
kiss|~kiss|~kiss|0.4|_SELF_ kisses _PARTNER_.
|
||||
pet|~bottom|~top|0.55|_PARTNER_ pets _SELF_'s head.
|
||||
subhug|~leg-bottom|~leg-top|0.55|_SELF_ hugs _PARTNER_'s legs.
|
||||
footkiss|~foot-bottom|~foot-top|1.1|_SELF_ kisses _PARTNER_'s foot.
|
||||
bootlick|~boot-bottom|~boot-top|1.0|_SELF_ licks _PARTNER_'s boot.
|
||||
jumphug|~jump-bottom|~jump-top|0.6|_SELF_ jumps into _PARTNER_'s arms.
|
||||
15
LSL/textures
15
LSL/textures
@@ -1,15 +0,0 @@
|
||||
Blank,5ab1c02f-22e7-5238-3aec-5cc9c9a83cdd
|
||||
Brass,403f16e4-85c4-8100-2694-87a9d8bf8e39
|
||||
Chrome,50aa32a9-3ecc-ff6b-5051-5eb82b29b725
|
||||
Fur Dark,05678cb0-dd01-5db5-6aae-b6cb14d82a66
|
||||
Fur Light,7d6f388e-59ea-bbda-6a6c-91ec1b4e881c
|
||||
Gem,f6e9107a-2e8c-6a82-c71d-037bb115aca8
|
||||
Gold,7edfa787-ab5f-ca96-0aee-74b452d64654
|
||||
Grunge,52c97672-709a-2397-9c04-f7f70b7e6b52
|
||||
Lace,97b6b927-79b0-8821-7e2d-6431e3d05a0d
|
||||
Leather Dark,49a0e1da-d41c-c96a-3475-06091fb44312
|
||||
Leather Light,cbef7240-1b40-a457-80e3-7957914b6cb0
|
||||
Rust,26ece618-e491-d845-e8b6-fb6f4bf2ad42
|
||||
Silver,6af1a29a-85c0-a6ee-bba0-9de1eec29da0
|
||||
Snake,f09a761d-0901-294f-3ac4-18bd8fa036fd
|
||||
Steel,11cf252d-ab74-cbf4-c8a4-a5b0f54a0fe1
|
||||
@@ -1 +0,0 @@
|
||||
IXstatic~Oaks Woods(8,134,28)
|
||||
16
LSL/~contact
16
LSL/~contact
@@ -1,16 +0,0 @@
|
||||
|
||||
OsCollar is an unofficial port of OpenCollar to OpenSim.
|
||||
As such, please do not contact the OpenCollar project
|
||||
with (OpenSim) issues with this port.
|
||||
|
||||
Talk to us on OpenCollar friends (Osgrid group):
|
||||
|
||||
secondlife:///app/group/1fe0f858-5055-46ea-b016-8bf7c7f6f3a9/about
|
||||
|
||||
Report bugs at our issue tracker at:
|
||||
|
||||
https://github.com/lickx/opencollar-os/issues
|
||||
|
||||
The Adult Metaverse - OpenSim adult community at Google+:
|
||||
|
||||
https://plus.google.com/u/0/communities/112812844000583620045
|
||||
@@ -1,5 +0,0 @@
|
||||
|
||||
|
||||
Click one of the links below to join a group!
|
||||
|
||||
Support: secondlife:///app/group/1fe0f858-5055-46ea-b016-8bf7c7f6f3a9/about
|
||||
13
LSL/~news
13
LSL/~news
@@ -1,13 +0,0 @@
|
||||
OpenCollar-OS 3.998.3 - Built Jan 21st 2017
|
||||
* Backported a critical fix for the leash vs couple hug code
|
||||
* Disable by default this news bulletin you are now seeing
|
||||
|
||||
It is strongly recommended to update if you haven't already.
|
||||
Please be aware this is a legacy collar, active development
|
||||
is focused on the newer Six collars.
|
||||
|
||||
OsGrid local teleport:
|
||||
secondlife://Oaks Woods/8/134/28
|
||||
|
||||
Hypergrid (World Map):
|
||||
hg.osgrid.org:80:Oaks Woods
|
||||
@@ -1,5 +0,0 @@
|
||||
|
||||
|
||||
To visit us click a link down below!
|
||||
|
||||
TBD
|
||||
108
LSL/~styles
108
LSL/~styles
@@ -1,108 +0,0 @@
|
||||
[ Classic ]
|
||||
Base~f5c0dd85-f4e9-4018-bbfa-0e9085fb8a45~<1,1,1>~0
|
||||
Bell~f5c0dd85-f4e9-4018-bbfa-0e9085fb8a45~<1,1,1>~1
|
||||
Hinges~f5c0dd85-f4e9-4018-bbfa-0e9085fb8a45~<1,1,1>~1
|
||||
Slide~f5c0dd85-f4e9-4018-bbfa-0e9085fb8a45~<1,1,1>~1
|
||||
Ring~f5c0dd85-f4e9-4018-bbfa-0e9085fb8a45~<1,1,1>~1
|
||||
[ Rough ]
|
||||
Base~4a14bf47-ea51-45b4-bbfb-84cf147d5c6f~<1,1,1>~0
|
||||
Bell~4a14bf47-ea51-45b4-bbfb-84cf147d5c6f~<1,1,1>~1
|
||||
Hinges~4a14bf47-ea51-45b4-bbfb-84cf147d5c6f~<1,1,1>~1
|
||||
Slide~4a14bf47-ea51-45b4-bbfb-84cf147d5c6f~<1,1,1>~1
|
||||
Ring~4a14bf47-ea51-45b4-bbfb-84cf147d5c6f~<1,1,1>~1
|
||||
[ Iron ]
|
||||
Base~1b7fe355-a9b3-4873-a4e5-c351fdc5b033~<1,1,1>~0
|
||||
Bell~1b7fe355-a9b3-4873-a4e5-c351fdc5b033~<1,1,1>~1
|
||||
Hinges~1b7fe355-a9b3-4873-a4e5-c351fdc5b033~<1,1,1>~1
|
||||
Slide~1b7fe355-a9b3-4873-a4e5-c351fdc5b033~<1,1,1>~1
|
||||
Ring~1b7fe355-a9b3-4873-a4e5-c351fdc5b033~<1,1,1>~1
|
||||
[ Black ]
|
||||
Base~f3375447-79c0-4b10-b903-2a3763f47f8f~<1,1,1>~0
|
||||
Bell~f3375447-79c0-4b10-b903-2a3763f47f8f~<1,1,1>~1
|
||||
Hinges~f3375447-79c0-4b10-b903-2a3763f47f8f~<1,1,1>~1
|
||||
Slide~f3375447-79c0-4b10-b903-2a3763f47f8f~<1,1,1>~1
|
||||
Ring~f3375447-79c0-4b10-b903-2a3763f47f8f~<1,1,1>~1
|
||||
[ White ]
|
||||
Base~6f8b160f-5c49-4af7-8f4f-d46c707935a9~<1,1,1>~0
|
||||
Bell~6f8b160f-5c49-4af7-8f4f-d46c707935a9~<1,1,1>~1
|
||||
Hinges~6f8b160f-5c49-4af7-8f4f-d46c707935a9~<1,1,1>~1
|
||||
Slide~6f8b160f-5c49-4af7-8f4f-d46c707935a9~<1,1,1>~1
|
||||
Ring~6f8b160f-5c49-4af7-8f4f-d46c707935a9~<1,1,1>~1
|
||||
[ Red ]
|
||||
Base~8eec6e8f-e553-41f6-bfaa-addaddbd47a2~<1,1,1>~0
|
||||
Bell~8eec6e8f-e553-41f6-bfaa-addaddbd47a2~<1,1,1>~1
|
||||
Hinges~8eec6e8f-e553-41f6-bfaa-addaddbd47a2~<1,1,1>~1
|
||||
Slide~8eec6e8f-e553-41f6-bfaa-addaddbd47a2~<1,1,1>~1
|
||||
Ring~8eec6e8f-e553-41f6-bfaa-addaddbd47a2~<1,1,1>~1
|
||||
[ Blue ]
|
||||
Base~708ca932-586a-4a3a-be02-a09442a31247~<1,1,1>~0
|
||||
Bell~708ca932-586a-4a3a-be02-a09442a31247~<1,1,1>~1
|
||||
Hinges~708ca932-586a-4a3a-be02-a09442a31247~<1,1,1>~1
|
||||
Slide~708ca932-586a-4a3a-be02-a09442a31247~<1,1,1>~1
|
||||
Ring~708ca932-586a-4a3a-be02-a09442a31247~<1,1,1>~1
|
||||
[ Green ]
|
||||
Base~c35d4b47-6524-4ece-950c-83dee8d9f1c4~<1,1,1>~0
|
||||
Bell~c35d4b47-6524-4ece-950c-83dee8d9f1c4~<1,1,1>~1
|
||||
Hinges~c35d4b47-6524-4ece-950c-83dee8d9f1c4~<1,1,1>~1
|
||||
Slide~c35d4b47-6524-4ece-950c-83dee8d9f1c4~<1,1,1>~1
|
||||
Ring~c35d4b47-6524-4ece-950c-83dee8d9f1c4~<1,1,1>~1
|
||||
[ Yellow ]
|
||||
Base~09588851-428b-4992-811a-fe226bf96a82~<1,1,1>~0
|
||||
Bell~09588851-428b-4992-811a-fe226bf96a82~<1,1,1>~1
|
||||
Hinges~09588851-428b-4992-811a-fe226bf96a82~<1,1,1>~1
|
||||
Slide~09588851-428b-4992-811a-fe226bf96a82~<1,1,1>~1
|
||||
Ring~09588851-428b-4992-811a-fe226bf96a82~<1,1,1>~1
|
||||
[ Barbie ]
|
||||
Base~049a0e94-f8bc-44bd-ae7b-10542e559b56~<1,1,1>~0
|
||||
Bell~049a0e94-f8bc-44bd-ae7b-10542e559b56~<1,1,1>~1
|
||||
Hinges~049a0e94-f8bc-44bd-ae7b-10542e559b56~<1,1,1>~1
|
||||
Slide~049a0e94-f8bc-44bd-ae7b-10542e559b56~<1,1,1>~1
|
||||
Ring~049a0e94-f8bc-44bd-ae7b-10542e559b56~<1,1,1>~1
|
||||
[ Babygirl ]
|
||||
Base~5ea6eaff-106e-488e-a091-84396d4a0423~<1,1,1>~0
|
||||
Bell~5ea6eaff-106e-488e-a091-84396d4a0423~<1,1,1>~1
|
||||
Hinges~5ea6eaff-106e-488e-a091-84396d4a0423~<1,1,1>~1
|
||||
Slide~5ea6eaff-106e-488e-a091-84396d4a0423~<1,1,1>~1
|
||||
Ring~5ea6eaff-106e-488e-a091-84396d4a0423~<1,1,1>~1
|
||||
[ B/W ]
|
||||
Base~6f8b160f-5c49-4af7-8f4f-d46c707935a9~<1,1,1>~0
|
||||
Bell~f3375447-79c0-4b10-b903-2a3763f47f8f~<1,1,1>~1
|
||||
Hinges~f3375447-79c0-4b10-b903-2a3763f47f8f~<1,1,1>~1
|
||||
Slide~f3375447-79c0-4b10-b903-2a3763f47f8f~<1,1,1>~1
|
||||
Ring~6f8b160f-5c49-4af7-8f4f-d46c707935a9~<1,1,1>~1
|
||||
[ BlackMix ]
|
||||
Base~f3375447-79c0-4b10-b903-2a3763f47f8f~<1,1,1>~0
|
||||
Bell~f5c0dd85-f4e9-4018-bbfa-0e9085fb8a45~<1,1,1>~1
|
||||
Hinges~4a14bf47-ea51-45b4-bbfb-84cf147d5c6f~<1,1,1>~1
|
||||
Slide~4a14bf47-ea51-45b4-bbfb-84cf147d5c6f~<1,1,1>~1
|
||||
Ring~4a14bf47-ea51-45b4-bbfb-84cf147d5c6f~<1,1,1>~1
|
||||
[ RedMix ]
|
||||
Base~8eec6e8f-e553-41f6-bfaa-addaddbd47a2~<1,1,1>~0
|
||||
Bell~f5c0dd85-f4e9-4018-bbfa-0e9085fb8a45~<1,1,1>~1
|
||||
Hinges~4a14bf47-ea51-45b4-bbfb-84cf147d5c6f~<1,1,1>~1
|
||||
Slide~4a14bf47-ea51-45b4-bbfb-84cf147d5c6f~<1,1,1>~1
|
||||
Ring~4a14bf47-ea51-45b4-bbfb-84cf147d5c6f~<1,1,1>~1
|
||||
[ BlueMix ]
|
||||
Base~708ca932-586a-4a3a-be02-a09442a31247~<1,1,1>~0
|
||||
Bell~f5c0dd85-f4e9-4018-bbfa-0e9085fb8a45~<1,1,1>~1
|
||||
Hinges~4a14bf47-ea51-45b4-bbfb-84cf147d5c6f~<1,1,1>~1
|
||||
Slide~4a14bf47-ea51-45b4-bbfb-84cf147d5c6f~<1,1,1>~1
|
||||
Ring~4a14bf47-ea51-45b4-bbfb-84cf147d5c6f~<1,1,1>~1
|
||||
[ Fluttershy ]
|
||||
Base~09588851-428b-4992-811a-fe226bf96a82~<1,1,1>~0
|
||||
Bell~5ea6eaff-106e-488e-a091-84396d4a0423~<1,1,1>~1
|
||||
Hinges~5ea6eaff-106e-488e-a091-84396d4a0423~<1,1,1>~1
|
||||
Slide~5ea6eaff-106e-488e-a091-84396d4a0423~<1,1,1>~1
|
||||
Ring~09588851-428b-4992-811a-fe226bf96a82~<1,1,1>~1
|
||||
[ PinkyPie ]
|
||||
Base~5ea6eaff-106e-488e-a091-84396d4a0423~<1,1,1>~0
|
||||
Bell~049a0e94-f8bc-44bd-ae7b-10542e559b56~<1,1,1>~1
|
||||
Hinges~049a0e94-f8bc-44bd-ae7b-10542e559b56~<1,1,1>~1
|
||||
Slide~049a0e94-f8bc-44bd-ae7b-10542e559b56~<1,1,1>~1
|
||||
Ring~5ea6eaff-106e-488e-a091-84396d4a0423~<1,1,1>~1
|
||||
[ Toy ]
|
||||
Base~8eec6e8f-e553-41f6-bfaa-addaddbd47a2~<1,1,1>~0
|
||||
Bell~f5c0dd85-f4e9-4018-bbfa-0e9085fb8a45~<1,1,1>~1
|
||||
Hinges~09588851-428b-4992-811a-fe226bf96a82~<1,1,1>~1
|
||||
Slide~708ca932-586a-4a3a-be02-a09442a31247~<1,1,1>~1
|
||||
Ring~09588851-428b-4992-811a-fe226bf96a82~<1,1,1>~1
|
||||
@@ -1,3 +0,0 @@
|
||||
|
||||
|
||||
No Updater found. Please rez an Updater within 10m and try again. If you need a current Updater, get one free at [http://maps.secondlife.com/secondlife/Boulevard/50/211/23 The Temple of the Collar™] or at our [http://maps.secondlife.com/secondlife/Bondage/208/126/23 Sidekick Temple] or an alternative Updater on the [https://marketplace.secondlife.com/p/Wendys-OpenCollar-Updater/6620453 Marketplace].
|
||||
@@ -1 +0,0 @@
|
||||
3.998.2
|
||||
46
README.md
46
README.md
@@ -1,32 +1,40 @@
|
||||
### Welcome to OpenCollar!
|
||||
### Welcome to OsCollar
|
||||
|
||||
OpenCollar is a set of LSL scripts and all sort of creative content, such as motions, sounds, graphics and 3D models, which can be used to create role play devices for the metaverse. Traditionally such devices would take form as graphical interface worn on the "HUD" or as fashion accessory worn on the avatar herself.
|
||||
|
||||
Punk, goth and fetish collars would be the most popular of those and OpenCollar eventually became the basic standard device for this kind of creative role play amongst adults on Second Life®. OpenCollar is [free software](http://www.gnu.org/philosophy/free-sw.html "What is free software?").
|
||||
OsCollar is a set of gadgets for submission roleplay for use in OpenSim grids
|
||||
|
||||
|
||||
#### License Terms and Addendum
|
||||
#### Finding your way around this repo
|
||||
```
|
||||
./oscollar/
|
||||
|
||||
OpenCollar source code and creative resource are covered and protected by strong [copyleft](https://en.wikipedia.org/wiki/Copyleft "What does "copyleft" mean?") licenses.
|
||||
> doc: Useful information and documentation
|
||||
|
||||
* LSL scripts are licensed as and must remain under the [GNU General Public License, version 2](http://www.gnu.org/licenses/gpl-2.0).
|
||||
> res: Resource of creative content.
|
||||
|
||||
* Creative content is licensed as and must remain under the [Creative Commons Attribution-ShareAlike 4.0 International Public License](https://creativecommons.org/licenses/by-sa/4.0/).
|
||||
> anims: Motions and Animations as .bvh and .avm binaries.
|
||||
> creatorkit: Sample collar for creators to use as a base
|
||||
> models: 3D Models as .dae and .blend binaries.
|
||||
> sounds: Sounds as .wav and .aup binaries.
|
||||
> textures: Images as .png and .xcf binaries.
|
||||
|
||||
* Everything else that is shared within the metaverse and where no explicit license was applied is covered by the [License Terms for the OpenCollar Role Play Device](https://raw.githubusercontent.com/OpenCollar/opencollar/master/LICENSE).
|
||||
> src: Source code of the OsCollar role play device.
|
||||
|
||||
**NOTE:** Please make sure that you have read and understood the full legal text of each license if your interest in OpenCollar goes beyond personal use (i.e. commercial redistribution). For human-readable summaries of various licenses, check out [tl;drLegal](https://tldrlegal.com/)
|
||||
> ao: The source code for the animation overrider HUD.
|
||||
> apps: Fun features you can add to your device
|
||||
> device: Everything you need for a full featured device
|
||||
> extensions: Enhanced features that can be added to a device
|
||||
> installer: The source code for the updater aka patch
|
||||
> remote: The source code for the Remote HUD.
|
||||
> spares: Spares and snippets for research and development.
|
||||
|
||||
> web: Files for the updater check within the Help/About menu
|
||||
```
|
||||
|
||||
#### OpenSim Porting Information
|
||||
#### Requirements
|
||||
|
||||
We target and test for OpenSim 0.8 (stable) and OpenSim 0.9 (unstable, master)
|
||||
Simulator 0.9.3.1 or newer
|
||||
|
||||
This is the oscollar3 branch, which is a port of OpenCollar 3.99x and considered legacy
|
||||
Check out the oscollar6 branch for a port based on the modern OpenCollar [six]
|
||||
- Teleporting to a sim running older versions of OpenSim may result in loss of settings (linkset data) and loss of functionality (non-running scripts)
|
||||
- Teleporting to a hypergrid sim may result in scripts to stop running and/or reset, unless the destination sim is patched
|
||||
|
||||
There are some differences between v3 and v6 collars, for instance v6 is much more optimized thanks to certain scripts being in seperate links (which can be optionally invisible, but you do need them seperate).
|
||||
|
||||
If you are looking to directly convert or upgrade existing v3 collars for OpenSim, you can use this oscollar3 branch which should be 100% compatible with the last v3 version in Second Life. We haven't made a transmuter tool yet to convert a v3 collar to v6.
|
||||
|
||||
A ready made standard OpenCollar for both branches can be be aquired at the OsGrid Sim ['Kinky Hub'](http://opensimworld.com/hop/77066-Kinky-Hub). Creators can use this standard collar as a technical reference for making new products.
|
||||
To avoid problems, only use this on your home grid meeting the minimal requirements or better.
|
||||
|
||||
@@ -1,328 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - AO Link (lite) //
|
||||
// version 3.987 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// github.com/OpenCollar/OpenCollarUpdater //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Based on Medea Destiny's AO interface script for OpenCollar.
|
||||
|
||||
// HOW TO: This script is intended to be dropped into ZHAO-2, Vista and Oracul
|
||||
// AOs that are not already compatible with OpenCollar's AO interface. Just rez
|
||||
// your existing AO Hud, right-click to open it and drop this script inside!
|
||||
|
||||
// This is not a complete replacement of the Sub AO as it cannot allow as complete
|
||||
// access to the AO as that does, but it should provide most of the functionality
|
||||
// while being very easy to add to your pre-existing AOs.
|
||||
|
||||
// The lite variation of this script is complementary to AntiSlide technology.
|
||||
|
||||
integer type;
|
||||
//If left like this, script will try to determine AO type automatically.
|
||||
//To force compatibility for a particular type of AO, change to:
|
||||
// integer type=1; //for Oracul type AOs
|
||||
// integer type=2; // for ZHAO-II type AOs
|
||||
// integer type=3; // for Vista type AOs
|
||||
// integer type=4; // for AKEYO type AOs
|
||||
// integer type=5; // for Gaeline type AOs
|
||||
//----------------------------------------------------------------------
|
||||
//Integer map for above
|
||||
integer ORACUL=1;
|
||||
integer ZHAO=2;
|
||||
integer VISTA=3;
|
||||
integer AKEYO=4;
|
||||
integer GAELINE=5;
|
||||
|
||||
// OC channel listener for comms from collar
|
||||
integer g_iAOChannel = -782690;
|
||||
integer g_iAOListenHandle;
|
||||
|
||||
//Menu handler for script's own ZHAO menu
|
||||
integer g_iMenuHandle;
|
||||
integer g_iMenuChannel=-23423456; //dummy channel, changed to unique on attach
|
||||
list g_lMenuUsers; //list of menu users to allow for multiple users of menu
|
||||
integer g_iMenuTimeout=60;
|
||||
|
||||
string g_sOraculstring; //configuration string for Oracul power on/off, 0 prepended for off, 1 prepended for on
|
||||
|
||||
//We use these two so that we can return the AO to its previous state. If the AO was already off when the OC tries to switch it off, we shouldn't switch it back on again.
|
||||
integer g_iAOSwitch=TRUE; //monitor on/off from the AO's own state.
|
||||
integer g_iOCSwitch=TRUE; //monitor on/off due to collar pauses (FALSE=paused, TRUE=unpaused)
|
||||
|
||||
|
||||
integer g_iSitOverride=TRUE; //monitor AO sit override
|
||||
|
||||
|
||||
|
||||
|
||||
determineType() //function to determine AO type.
|
||||
{
|
||||
llListenRemove(g_iAOListenHandle);
|
||||
type=0;
|
||||
integer x=llGetInventoryNumber(INVENTORY_SCRIPT);
|
||||
while(x)
|
||||
{
|
||||
--x;
|
||||
string t=llToLower(llGetInventoryName(INVENTORY_SCRIPT,x));
|
||||
if(~llSubStringIndex(t,"zhao")) //if we find a script with "zhao" in the name.
|
||||
{
|
||||
type=ZHAO;
|
||||
x=0;
|
||||
llOwnerSay("OC compatibility script configured for Zhao AO. Depending on your AO model, you may sometimes see your AO buttons get out of sync when the AO is accessed via the collar, just toggle a setting to restore it. NOTE! Toggling sit override now is highly recommended, but if you don't know what that means or don't have one, don't worry.");
|
||||
llMessageLinked(LINK_SET, 0, "ZHAO_AOON", "");
|
||||
|
||||
}
|
||||
else if(~llSubStringIndex(t,"vista")) //if we find a script with "zhao" in the name.
|
||||
{
|
||||
type=VISTA;
|
||||
x=0;
|
||||
llOwnerSay("OC compatibility script configured for VISTA AO. Support is very experimental since it is unknown how much was changed from ZHAO.");
|
||||
llMessageLinked(LINK_SET, 0, "ZHAO_AOON", "");
|
||||
|
||||
}
|
||||
else if(~llSubStringIndex(t,"z_ao")) //if we find a script with "z_ao" in the name.
|
||||
{
|
||||
type=GAELINE;
|
||||
x=0;
|
||||
llOwnerSay("OC compatibility script configured for Gaeline AO. Support is very experimental since it is unknown how much was changed from ZHAO.");
|
||||
llMessageLinked(LINK_SET, 103, "", "");
|
||||
|
||||
}
|
||||
else if(~llSubStringIndex(t,"oracul")) //if we find a script with "oracul" in the name.
|
||||
{
|
||||
type=ORACUL;
|
||||
x=0;
|
||||
llOwnerSay("OC compatibility script configured for Oracul AO. IMPORTANT: for proper functioning, you must now switch your AO on (switching it off first if necessary!)");
|
||||
}
|
||||
}
|
||||
if (llSubStringIndex(llGetObjectName(),"AKEYO") >=0) { //AKEYO is not a string in their script name, it is in animations but think the object name is a better test for this AO - Sumi Perl
|
||||
type = AKEYO;
|
||||
llOwnerSay("OC compatibility script configured for AKEYO AO. This support is experimental. Please let us know if you notice any problems.");
|
||||
}
|
||||
if(type==0) llOwnerSay("Cannot identify AO type. The script:"+llGetScriptName()+" is intended to be dropped into a Zhao2 or Oracul AO hud.");
|
||||
else
|
||||
{
|
||||
g_iAOListenHandle=llListen(g_iAOChannel,"","",""); //We identified type, start script listening!
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
AOPause()
|
||||
{
|
||||
if(g_iAOSwitch)
|
||||
{
|
||||
if (type==ORACUL && g_sOraculstring!="") llMessageLinked(LINK_SET,0,"0"+g_sOraculstring,"ocpause");
|
||||
else if (type==AKEYO) llMessageLinked(LINK_ROOT, 0, "PAO_AOOFF", "ocpause");
|
||||
else if(type==GAELINE) llMessageLinked(LINK_THIS, 102, "", "ocpause");
|
||||
//Note: for ZHAO use LINK_THIS in pause functions, LINK_SET elsewhere. This is because ZHAOs which switch power on buttons by a script in the button reading the link messages are quite common. This avoids toggling the power switch when AO is only paused in those cases.
|
||||
else if(type>1) llMessageLinked(LINK_THIS, 0, "ZHAO_AOOFF", "ocpause");//we use "ocpause" as a dummy key to identify our own linked messages so we can tell when an on or off comes from the AO rather than from the collar standoff, to sync usage.
|
||||
|
||||
}
|
||||
g_iOCSwitch=FALSE;
|
||||
|
||||
}
|
||||
|
||||
AOUnPause()
|
||||
{
|
||||
if(g_iAOSwitch)
|
||||
{
|
||||
if (type==ORACUL && g_sOraculstring!="") llMessageLinked(LINK_SET,0,"1"+g_sOraculstring,"ocpause");
|
||||
else if(type==AKEYO ) llMessageLinked(LINK_ROOT, 0, "PAO_AOON", "ocpause");
|
||||
else if(type==GAELINE) llMessageLinked(LINK_THIS, 103, "", "ocpause");
|
||||
else if(type>1 ) llMessageLinked(LINK_THIS, 0, "ZHAO_AOON", "ocpause");
|
||||
|
||||
}
|
||||
g_iOCSwitch=TRUE;
|
||||
|
||||
}
|
||||
|
||||
zhaoMenu(key kMenuTo)
|
||||
{
|
||||
//script's own menu for some ZHAO features.
|
||||
//Open listener if no menu users are registered in g_lMenuUsers already, and add
|
||||
//menu user to list if not already present.
|
||||
if(!llGetListLength(g_lMenuUsers)) g_iMenuHandle=llListen(g_iMenuChannel,"","","");
|
||||
if(llListFindList(g_lMenuUsers,[kMenuTo])==-1) g_lMenuUsers+=kMenuTo;
|
||||
string sSit="AO Sits ON";
|
||||
if(g_iSitOverride) sSit="AO Sits OFF";
|
||||
list lButtons=[sSit,"Load Notecard","Done","AO on","AO off","Next Stand"];
|
||||
llSetTimerEvent(g_iMenuTimeout);
|
||||
llDialog(kMenuTo,"AO options. Depending on model of AO, some may not work. Use OC Sub AO for more comprehensive control!",lButtons,g_iMenuChannel);
|
||||
}
|
||||
|
||||
default
|
||||
{
|
||||
state_entry()
|
||||
{
|
||||
if(type==0) determineType();
|
||||
g_iMenuChannel=-(integer)llFrand(999999)-10000; //randomise menu channel
|
||||
}
|
||||
|
||||
attach(key avatar)
|
||||
{
|
||||
if(avatar) //on attach
|
||||
{
|
||||
if(type==0) determineType();
|
||||
g_iMenuChannel=-(integer)llFrand(999999)-10000; //randomise menu channel
|
||||
}
|
||||
}
|
||||
|
||||
listen(integer iChannel, string sName, key kID, string sMsg)
|
||||
{
|
||||
|
||||
if(iChannel==g_iMenuChannel) // this is for our own limited ZHAO menu.
|
||||
{
|
||||
if(sMsg=="Done"||sMsg=="Cancel")
|
||||
{
|
||||
integer i=llListFindList(g_lMenuUsers,[kID]);
|
||||
if(i>-1) g_lMenuUsers=llDeleteSubList(g_lMenuUsers,i,i); //remove user from menu users list.
|
||||
if(!llGetListLength(g_lMenuUsers)) //remove listener if no menu users left
|
||||
{
|
||||
llListenRemove(g_iMenuHandle);
|
||||
llSetTimerEvent(0);
|
||||
}
|
||||
return; // we're done here!
|
||||
}
|
||||
else if(sMsg=="Load Notecard") //scan for notecards and provide a dialog to user
|
||||
{
|
||||
list lButtons;
|
||||
integer x=llGetInventoryNumber(INVENTORY_NOTECARD);
|
||||
while(x)
|
||||
{
|
||||
x--;
|
||||
string t=llGetInventoryName(INVENTORY_NOTECARD,x);
|
||||
if(llSubStringIndex(llToLower(t),"read me")==-1 && llSubStringIndex(llToLower(t),"help")==-1 && llStringLength(t)<23) lButtons+=t; //we only take notecards without "help" or "read me" in the title and with short enough names to fit on a button.
|
||||
}
|
||||
if(llGetListLength(lButtons)>11)
|
||||
{
|
||||
llRegionSayTo(kID,0,"Too many notecards found, displaying the first 11"); //ZHAO doesn't bother multi pages, so we won't.
|
||||
lButtons=llDeleteSubList(lButtons,11,-1);
|
||||
}
|
||||
llSetTimerEvent(g_iMenuTimeout);
|
||||
llDialog(kID,"Pick an AO settings notecard to load, or click Cancel",lButtons+["Cancel"],g_iMenuChannel);
|
||||
|
||||
}
|
||||
else if(sMsg=="AO Sits ON")
|
||||
{
|
||||
g_iSitOverride=TRUE; //this will get set by the link message anyway, but set here just in case remenu happens before link message is read.
|
||||
llMessageLinked(LINK_SET,0,"ZHAO_SITON","");
|
||||
}
|
||||
else if(sMsg=="AO Sits OFF")
|
||||
{
|
||||
g_iSitOverride=FALSE;
|
||||
llMessageLinked(LINK_SET,0,"ZHAO_SITOFF","");
|
||||
}
|
||||
else if(sMsg=="AO on")
|
||||
{
|
||||
if(g_iOCSwitch) llMessageLinked(LINK_SET,0,"ZHAO_AOON",""); // don't switch on AO if we are paused
|
||||
|
||||
g_iAOSwitch=TRUE;
|
||||
}
|
||||
else if(sMsg=="AO off")
|
||||
{
|
||||
llMessageLinked(LINK_SET,0,"ZHAO_AOOFF","");
|
||||
|
||||
}
|
||||
else if(sMsg=="Next Stand")
|
||||
{
|
||||
if(type == 2) // ZHAO-II
|
||||
llMessageLinked(LINK_SET,0,"ZHAO_NEXTSTAND","");
|
||||
else // VISTA
|
||||
llMessageLinked(LINK_SET,0,"ZHAO_NEXTPOSE","");
|
||||
}
|
||||
//check if sMsg is a notecard picked from Load Notecard menu, and send load command if so.
|
||||
else if(llGetInventoryType(sMsg)==INVENTORY_NOTECARD) llMessageLinked(LINK_THIS,0,"ZHAO_LOAD|"+sMsg,"");
|
||||
//resend the menu where it makes sense.
|
||||
if(sMsg!="Done" && sMsg!="Cancel" && sMsg!="Load Notecard") zhaoMenu(kID);
|
||||
return;
|
||||
}
|
||||
else if(llGetOwnerKey(kID)!=llGetOwner()) return; //reject commands from other sources.
|
||||
else if (iChannel==g_iAOChannel)
|
||||
{
|
||||
if(sMsg=="ZHAO_STANDON") AOUnPause();
|
||||
else if (sMsg=="ZHAO_STANDOFF") AOPause();
|
||||
else if (sMsg=="ZHAO_AOOFF")
|
||||
{
|
||||
if (type==ORACUL && g_sOraculstring!="") llMessageLinked(LINK_SET,0,"0"+g_sOraculstring,"ocpause");
|
||||
else if(type==AKEYO ) llMessageLinked(LINK_ROOT, 0, "PAO_AOOFF", "ocpause");
|
||||
else if(type==GAELINE) llMessageLinked(LINK_THIS, 102, "", "ocpause");
|
||||
else if(type>1 ) llMessageLinked(LINK_THIS, 0, "ZHAO_AOOFF", "ocpause");
|
||||
|
||||
|
||||
}
|
||||
else if (sMsg=="ZHAO_AOON")
|
||||
{
|
||||
if(g_iOCSwitch)// don't switch on AO if we are paused
|
||||
{
|
||||
if (type==ORACUL && g_sOraculstring!="") llMessageLinked(LINK_SET,0,"1"+g_sOraculstring,"ocpause");
|
||||
else if(type==AKEYO ) llMessageLinked(LINK_ROOT, 0, "PAO_AOON", "ocpause");
|
||||
else if(type==GAELINE) llMessageLinked(LINK_THIS, 103, "", "ocpause");
|
||||
else if(type>1 ) llMessageLinked(LINK_SET, 0, "ZHAO_AOON", "ocpause");
|
||||
|
||||
}
|
||||
|
||||
g_iAOSwitch=TRUE;
|
||||
}
|
||||
else if (llGetSubString(sMsg,0,8)=="ZHAO_MENU")
|
||||
{
|
||||
key kMenuTo=(key)llGetSubString(sMsg,10,-1);
|
||||
if(type==ORACUL) llMessageLinked(LINK_SET,4,"",kMenuTo);
|
||||
else if (type>1) zhaoMenu(kMenuTo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
link_message(integer iPrim, integer iNum, string sMsg, key kID)
|
||||
{
|
||||
if (type==ORACUL && iNum==0 && kID!="ocpause") //oracul power command
|
||||
{
|
||||
g_sOraculstring=llGetSubString(sMsg,1,-1); //store the config string for Oracul AO.
|
||||
g_iAOSwitch=(integer)llGetSubString(sMsg,0,1); //store the AO power state.
|
||||
|
||||
}
|
||||
|
||||
else if(type>1)
|
||||
{
|
||||
if (sMsg=="ZHAO_SITON") g_iSitOverride=TRUE;
|
||||
else if (sMsg=="ZHAO_SITOFF") g_iSitOverride=FALSE;
|
||||
else if(kID!="ocpause") //ignore pause commands sent by this script, we want to know what the "correct" state is.
|
||||
{
|
||||
if(sMsg=="ZHAO_AOON") g_iAOSwitch=TRUE;
|
||||
else if(sMsg=="ZHAO_AOOFF")
|
||||
{
|
||||
g_iAOSwitch=FALSE;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
timer()
|
||||
{
|
||||
llSetTimerEvent(0);
|
||||
llListenRemove(g_iMenuHandle);
|
||||
//inform current menu users of listener timeout.
|
||||
integer x=llGetListLength(g_lMenuUsers);
|
||||
while(x)
|
||||
{
|
||||
x--;
|
||||
key tKey=llList2Key(g_lMenuUsers,x);
|
||||
if(llGetAgentSize(tKey)) llRegionSayTo(tKey,0,"AO Menu timed out, try again."); //avoid IM spam by only notifying those in sim.
|
||||
}
|
||||
g_lMenuUsers=[]; //clear list
|
||||
}
|
||||
|
||||
changed(integer change)
|
||||
{
|
||||
if(change & CHANGED_OWNER) llResetScript();
|
||||
}
|
||||
}
|
||||
@@ -1,336 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - AO Link //
|
||||
// version 0.103 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// github.com/OpenCollar/OpenCollarUpdater //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// BETA VERSION NOTES ---------------------------------------------------
|
||||
// Medea Destiny's AO interface script for OpenCollar
|
||||
// This script is intended to be dropped into ZHAO-2, Vista and Oracul
|
||||
// AOs that are not already compatible with OpenCollar's AO interface.
|
||||
|
||||
// Scope: The script tries to identify the AO type by checking script naming. It receives
|
||||
// the ZHAO ON, ZHAO OFF and ZHAO Menu commands from the collar, and uses link messages to
|
||||
// send appropriate commands to the AO, depending on the detected collar type. It is not a
|
||||
// complete replacement of the Sub AO as it cannot allow as complete access to the AO as
|
||||
// that does, but it should provide most of the functionality while being very easy to add to
|
||||
// user's pre-existing AOs.
|
||||
|
||||
// When the AO is switched on, but the collar sends a command to switch it off, the script
|
||||
// will take controls and detect for movement. While the avatar is trying to move, the AO will
|
||||
// told to switch the AO back on again until movement ceases.
|
||||
|
||||
// An alternative to this method would be to capture the AO's walk animation and play the animation
|
||||
// itself as a walk overrider. The disadvantage of that is trying to capture the walk animation
|
||||
// isn't straightforward, particular when there is more than one walk configured. The disadvantage
|
||||
// of this method is that it does a lot more AO triggering.
|
||||
|
||||
// Comments and bug reports to Medea Destiny, please!
|
||||
//---------------------------------------------------------------------
|
||||
integer type;
|
||||
//If left like this, script will try to determine AO type automatically.
|
||||
//To force compatibility for a particular type of AO, change to:
|
||||
// integer type=1; //for Oracul type AOs
|
||||
// integer type=2; // for ZHAO-II type AOs
|
||||
// integer type=3; // for Vista type AOs
|
||||
//----------------------------------------------------------------------
|
||||
//Integer map for above
|
||||
integer ORACUL=1;
|
||||
integer ZHAO=2;
|
||||
integer VISTA=3;
|
||||
|
||||
// OC channel listener for comms from collar
|
||||
integer g_iAOChannel = -782690;
|
||||
integer g_iAOListenHandle;
|
||||
|
||||
//Menu handler for script's own ZHAO menu
|
||||
integer g_iMenuHandle;
|
||||
integer g_iMenuChannel=-23423456; //dummy channel, changed to unique on attach
|
||||
list g_lMenuUsers; //list of menu users to allow for multiple users of menu
|
||||
integer g_iMenuTimeout=60;
|
||||
|
||||
string g_sOraculstring; //configuration string for Oracul power on/off, 0 prepended for off, 1 prepended for on
|
||||
|
||||
//We use these two so that we can return the AO to its previous state. If the AO was already off when the OC tries to switch it off, we shouldn't switch it back on again.
|
||||
integer g_iAOSwitch=TRUE; //monitor on/off from the AO's own state.
|
||||
integer g_iOCSwitch=TRUE; //monitor on/off due to collar pauses (FALSE=paused, TRUE=unpaused)
|
||||
|
||||
|
||||
integer g_iSitOverride=TRUE; //monitor AO sit override
|
||||
|
||||
integer g_iHasPerm; //Sanity check for permissions. If we have permissions, then script takes controls and restores AO while moving.
|
||||
|
||||
|
||||
determineType() //function to determine AO type.
|
||||
{
|
||||
llListenRemove(g_iAOListenHandle);
|
||||
type=0;
|
||||
integer x=llGetInventoryNumber(INVENTORY_SCRIPT);
|
||||
while(x)
|
||||
{
|
||||
--x;
|
||||
string t=llToLower(llGetInventoryName(INVENTORY_SCRIPT,x));
|
||||
if(~llSubStringIndex(t,"zhao")) //if we find a script with "zhao" in the name.
|
||||
{
|
||||
type=ZHAO;
|
||||
x=0;
|
||||
llOwnerSay("OC compatibility script configured for Zhao AO. Depending on your AO model, you may sometimes see your AO buttons get out of sync when the AO is accessed via the collar, just toggle a setting to restore it. NOTE! Toggling sit override now is highly recommended, but if you don't know what that means or don't have one, don't worry.");
|
||||
llMessageLinked(LINK_SET, 0, "ZHAO_AOON", "");
|
||||
|
||||
}
|
||||
else if(~llSubStringIndex(t,"vista")) //if we find a script with "zhao" in the name.
|
||||
{
|
||||
type=VISTA;
|
||||
x=0;
|
||||
llOwnerSay("OC compatibility script configured for VISTA AO. Support is very experimental since it is unknown how much was changed from ZHAO");
|
||||
llMessageLinked(LINK_SET, 0, "ZHAO_AOON", "");
|
||||
|
||||
}
|
||||
else if(~llSubStringIndex(t,"oracul")) //if we find a script with "oracul" in the name.
|
||||
{
|
||||
type=ORACUL;
|
||||
x=0;
|
||||
llOwnerSay("OC compatibility script configured for Oracul AO. IMPORTANT: for proper functioning, you must now switch your AO on (switching it off first if necessary!)");
|
||||
}
|
||||
}
|
||||
if(type==0) llOwnerSay("Cannot identify AO type. The script:"+llGetScriptName()+" is intended to be dropped into a Zhao2 or Oracul AO hud.");
|
||||
else
|
||||
{
|
||||
g_iAOListenHandle=llListen(g_iAOChannel,"","",""); //We identified type, start script listening!
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
AOPause()
|
||||
{
|
||||
if(g_iAOSwitch)
|
||||
{
|
||||
//Note: for ZHAO use LINK_THIS in pause functions, LINK_SET elsewhere. This is because ZHAOs which switch power on buttons by a script in the button reading the link messages are quite common. This avoids toggling the power switch when AO is only paused in those cases.
|
||||
if(type>1) llMessageLinked(LINK_THIS, 0, "ZHAO_AOOFF", "ocpause");//we use "ocpause" as a dummy key to identify our own linked messages so we can tell when an on or off comes from the AO rather than from the collar standoff, to sync usage.
|
||||
else if (type==ORACUL && g_sOraculstring!="") llMessageLinked(LINK_SET,0,"0"+g_sOraculstring,"ocpause");
|
||||
}
|
||||
g_iOCSwitch=FALSE;
|
||||
if(g_iAOSwitch==TRUE) llRequestPermissions(llGetOwner(),PERMISSION_TAKE_CONTROLS);//AO is supposed to be on, so we take controls here to allow it to be switched back on temporarily whilst moving.
|
||||
}
|
||||
|
||||
AOUnPause()
|
||||
{
|
||||
if(g_iAOSwitch)
|
||||
{
|
||||
if(type>1 ) llMessageLinked(LINK_THIS, 0, "ZHAO_AOON", "ocpause");
|
||||
else if (type==ORACUL && g_sOraculstring!="") llMessageLinked(LINK_SET,0,"1"+g_sOraculstring,"ocpause");
|
||||
}
|
||||
g_iOCSwitch=TRUE;
|
||||
if(llGetPermissionsKey()) llReleaseControls(); //if we took permissions, release them so the AO can do its own thing now.
|
||||
}
|
||||
|
||||
zhaoMenu(key kMenuTo)
|
||||
{
|
||||
//script's own menu for some ZHAO features.
|
||||
//Open listener if no menu users are registered in g_lMenuUsers already, and add
|
||||
//menu user to list if not already present.
|
||||
if(!llGetListLength(g_lMenuUsers)) g_iMenuHandle=llListen(g_iMenuChannel,"","","");
|
||||
if(llListFindList(g_lMenuUsers,[kMenuTo])==-1) g_lMenuUsers+=kMenuTo;
|
||||
string sSit="AO Sits ON";
|
||||
if(g_iSitOverride) sSit="AO Sits OFF";
|
||||
list lButtons=[sSit,"Load Notecard","Done","AO on","AO off","Next Stand"];
|
||||
llSetTimerEvent(g_iMenuTimeout);
|
||||
llDialog(kMenuTo,"AO options. Depending on model of AO, some may not work. Use OC Sub AO for more comprehensive control!",lButtons,g_iMenuChannel);
|
||||
}
|
||||
|
||||
default
|
||||
{
|
||||
state_entry()
|
||||
{
|
||||
if(type==0) determineType();
|
||||
g_iMenuChannel=-(integer)llFrand(999999)-10000; //randomise menu channel
|
||||
}
|
||||
|
||||
attach(key avatar)
|
||||
{
|
||||
if(avatar) //on attach
|
||||
{
|
||||
if(type==0) determineType();
|
||||
g_iMenuChannel=-(integer)llFrand(999999)-10000; //randomise menu channel
|
||||
}
|
||||
}
|
||||
|
||||
listen(integer iChannel, string sName, key kID, string sMsg)
|
||||
{
|
||||
|
||||
if(iChannel==g_iMenuChannel) // this is for our own limited ZHAO menu.
|
||||
{
|
||||
if(sMsg=="Done"||sMsg=="Cancel")
|
||||
{
|
||||
integer i=llListFindList(g_lMenuUsers,[kID]);
|
||||
if(i>-1) g_lMenuUsers=llDeleteSubList(g_lMenuUsers,i,i); //remove user from menu users list.
|
||||
if(!llGetListLength(g_lMenuUsers)) //remove listener if no menu users left
|
||||
{
|
||||
llListenRemove(g_iMenuHandle);
|
||||
llSetTimerEvent(0);
|
||||
}
|
||||
return; // we're done here!
|
||||
}
|
||||
else if(sMsg=="Load Notecard") //scan for notecards and provide a dialog to user
|
||||
{
|
||||
list lButtons;
|
||||
integer x=llGetInventoryNumber(INVENTORY_NOTECARD);
|
||||
while(x)
|
||||
{
|
||||
x--;
|
||||
string t=llGetInventoryName(INVENTORY_NOTECARD,x);
|
||||
if(llSubStringIndex(llToLower(t),"read me")==-1 && llSubStringIndex(llToLower(t),"help")==-1 && llStringLength(t)<23) lButtons+=t; //we only take notecards without "help" or "read me" in the title and with short enough names to fit on a button.
|
||||
}
|
||||
if(llGetListLength(lButtons)>11)
|
||||
{
|
||||
llRegionSayTo(kID,0,"Too many notecards found, displaying the first 11"); //ZHAO doesn't bother multi pages, so we won't.
|
||||
lButtons=llDeleteSubList(lButtons,11,-1);
|
||||
}
|
||||
llSetTimerEvent(g_iMenuTimeout);
|
||||
llDialog(kID,"Pick an AO settings notecard to load, or click Cancel",lButtons+["Cancel"],g_iMenuChannel);
|
||||
|
||||
}
|
||||
else if(sMsg=="AO Sits ON")
|
||||
{
|
||||
g_iSitOverride=TRUE; //this will get set by the link message anyway, but set here just in case remenu happens before link message is read.
|
||||
llMessageLinked(LINK_SET,0,"ZHAO_SITON","");
|
||||
}
|
||||
else if(sMsg=="AO Sits OFF")
|
||||
{
|
||||
g_iSitOverride=FALSE;
|
||||
llMessageLinked(LINK_SET,0,"ZHAO_SITOFF","");
|
||||
}
|
||||
else if(sMsg=="AO on")
|
||||
{
|
||||
if(g_iOCSwitch) llMessageLinked(LINK_SET,0,"ZHAO_AOON",""); // don't switch on AO if we are paused
|
||||
else llRequestPermissions(llGetOwner(),PERMISSION_TAKE_CONTROLS); //AO was switched on while we are paused, so we take permissions to allow unpausing whilst movement
|
||||
g_iAOSwitch=TRUE;
|
||||
}
|
||||
else if(sMsg=="AO off")
|
||||
{
|
||||
llMessageLinked(LINK_SET,0,"ZHAO_AOOFF","");
|
||||
if(llGetPermissions()) llReleaseControls(); //if AO is off, we don't want to be checking controls.
|
||||
}
|
||||
else if(sMsg=="Next Stand")
|
||||
{
|
||||
if(type == 2) // ZHAO-II
|
||||
llMessageLinked(LINK_SET,0,"ZHAO_NEXTSTAND","");
|
||||
else // VISTA
|
||||
llMessageLinked(LINK_SET,0,"ZHAO_NEXTPOSE","");
|
||||
}
|
||||
//check if sMsg is a notecard picked from Load Notecard menu, and send load command if so.
|
||||
else if(llGetInventoryType(sMsg)==INVENTORY_NOTECARD) llMessageLinked(LINK_THIS,0,"ZHAO_LOAD|"+sMsg,"");
|
||||
//resend the menu where it makes sense.
|
||||
if(sMsg!="Done" && sMsg!="Cancel" && sMsg!="Load Notecard") zhaoMenu(kID);
|
||||
return;
|
||||
}
|
||||
else if(llGetOwnerKey(kID)!=llGetOwner()) return; //reject commands from other sources.
|
||||
else if (iChannel==g_iAOChannel)
|
||||
{
|
||||
if(sMsg=="ZHAO_STANDON") AOUnPause();
|
||||
else if (sMsg=="ZHAO_STANDOFF") AOPause();
|
||||
else if (sMsg=="ZHAO_AOOFF")
|
||||
{
|
||||
if(type>1) llMessageLinked(LINK_SET,0,"ZHAO_AOOFF","");
|
||||
else llMessageLinked(LINK_SET,0,"0"+g_sOraculstring,"ocpause");
|
||||
if(llGetPermissions()) llReleaseControls();
|
||||
}
|
||||
else if (sMsg=="ZHAO_AOON")
|
||||
{
|
||||
if(g_iOCSwitch)// don't switch on AO if we are paused
|
||||
{
|
||||
if(type>1) llMessageLinked(LINK_SET,0,"ZHAO_AOON","");
|
||||
else llMessageLinked(LINK_SET,0,"1"+g_sOraculstring,"");
|
||||
}
|
||||
else llRequestPermissions(llGetOwner(),PERMISSION_TAKE_CONTROLS); //AO was switched on while we are paused, so we take permissions to allow unpausing whilst moving.
|
||||
g_iAOSwitch=TRUE;
|
||||
}
|
||||
else if (llGetSubString(sMsg,0,8)=="ZHAO_MENU")
|
||||
{
|
||||
key kMenuTo=(key)llGetSubString(sMsg,10,-1);
|
||||
if(type==ORACUL) llMessageLinked(LINK_SET,4,"",kMenuTo);
|
||||
else if (type>1) zhaoMenu(kMenuTo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
link_message(integer iPrim, integer iNum, string sMsg, key kID)
|
||||
{
|
||||
if (type==ORACUL && iNum==0 && kID!="ocpause") //oracul power command
|
||||
{
|
||||
g_sOraculstring=llGetSubString(sMsg,1,-1); //store the config string for Oracul AO.
|
||||
g_iAOSwitch=(integer)llGetSubString(sMsg,0,1); //store the AO power state.
|
||||
if(!g_iAOSwitch && llGetPermissions()) llReleaseControls(); //stop checking controls if taken.
|
||||
}
|
||||
|
||||
else if(type>1)
|
||||
{
|
||||
if (sMsg=="ZHAO_SITON") g_iSitOverride=TRUE;
|
||||
else if (sMsg=="ZHAO_SITOFF") g_iSitOverride=FALSE;
|
||||
else if(kID!="ocpause") //ignore pause commands sent by this script, we want to know what the "correct" state is.
|
||||
{
|
||||
if(sMsg=="ZHAO_AOON") g_iAOSwitch=TRUE;
|
||||
else if(sMsg=="ZHAO_AOOFF")
|
||||
{
|
||||
g_iAOSwitch=FALSE;
|
||||
if(llGetPermissions()) llReleaseControls(); //stop checking controls if taken.
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
run_time_permissions(integer perms)
|
||||
{
|
||||
//we want to monitor for movement while the AO is temporarily off, so we can temporarily switch it back on again while a movement button is held.
|
||||
if(perms&PERMISSION_TAKE_CONTROLS) llTakeControls(CONTROL_FWD|CONTROL_BACK|CONTROL_LEFT|CONTROL_RIGHT,TRUE,TRUE);
|
||||
}
|
||||
|
||||
control(key id, integer level, integer edge)
|
||||
{
|
||||
if(!g_iAOSwitch||g_iOCSwitch) //if AO is turned off or OC hasn't requested a pause, we're not meant to be here.
|
||||
{
|
||||
llReleaseControls();
|
||||
return;
|
||||
}
|
||||
if(level&edge) //movement button pressed
|
||||
{
|
||||
|
||||
if(type>1) llMessageLinked(LINK_THIS, 0, "ZHAO_AOON", "ocpause");
|
||||
else if (type==ORACUL && g_sOraculstring!="") llMessageLinked(LINK_THIS,0,"1"+g_sOraculstring,"ocpause");
|
||||
}
|
||||
else if((!level)&edge) //movement button released
|
||||
{
|
||||
|
||||
if(type>1) llMessageLinked(LINK_THIS, 0, "ZHAO_AOOFF", "ocpause");
|
||||
else if (type==ORACUL && g_sOraculstring!="") llMessageLinked(LINK_THIS,0,"0"+g_sOraculstring,"ocpause");
|
||||
}
|
||||
}
|
||||
|
||||
timer()
|
||||
{
|
||||
llSetTimerEvent(0);
|
||||
llListenRemove(g_iMenuHandle);
|
||||
//inform current menu users of listener timeout.
|
||||
integer x=llGetListLength(g_lMenuUsers);
|
||||
while(x)
|
||||
{
|
||||
x--;
|
||||
key tKey=llList2Key(g_lMenuUsers,x);
|
||||
if(llGetAgentSize(tKey)) llRegionSayTo(tKey,0,"AO Menu timed out, try again."); //avoid IM spam by only notifying those in sim.
|
||||
}
|
||||
g_lMenuUsers=[]; //clear list
|
||||
}
|
||||
|
||||
changed(integer change)
|
||||
{
|
||||
if(change & CHANGED_OWNER) llResetScript();
|
||||
}
|
||||
}
|
||||
@@ -1,162 +0,0 @@
|
||||
//////////////////////////////////////////////////////////////////////////////////////
|
||||
// Original development by Joy Stipe for OpenCollar Project //
|
||||
//////////////////////////////////////////////////////////////////////////////////////
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
//////////////////////////////////////////////////////////////////////////////////////
|
||||
// Drop this script into an attachment to have that attachment make leash(es) //
|
||||
// See the first code line for the entry to use in the DESCRIPTION field of //
|
||||
// links/prims where leash should come from; setting no link descriptsions to //
|
||||
// that will result in only the prim that contains this script being the //
|
||||
// emitter. //
|
||||
//////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// the description of a prim that identifies it as where to leash
|
||||
string sEMITTER = "leashpoint";
|
||||
|
||||
integer HUD_CHANNEL;
|
||||
key kWEARER;
|
||||
key kTARGET;
|
||||
list lPARTICLES;
|
||||
list lLINKS;
|
||||
|
||||
debug(string sText)
|
||||
{
|
||||
//llOwnerSay(llGetScriptName() + " DEBUG: " + sText);
|
||||
}
|
||||
|
||||
integer GetIsInteger(string in)
|
||||
{
|
||||
integer i;
|
||||
if (llGetSubString(in, 0, 0) == "-")
|
||||
{
|
||||
if (llStringLength(in) < 2) return FALSE;
|
||||
i = 1;
|
||||
}
|
||||
list n = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"];
|
||||
for (; i < llStringLength(in); i++)
|
||||
{
|
||||
if (!~llListFindList(n, [llGetSubString(in, i, i)])) return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
integer GetIsFloat(string in)
|
||||
{
|
||||
list check = llParseString2List(in, ["."], []);
|
||||
if (llGetListLength(check) != 2) return FALSE;
|
||||
integer i;
|
||||
for (; i < 2; i++)
|
||||
{
|
||||
if (!GetIsInteger(llList2String(check, i))) return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
integer GetIsVec(string in)
|
||||
{
|
||||
if (llGetSubString(in, 0, 0) != "<") return FALSE;
|
||||
if (llGetSubString(in, -1, -1) != ">") return FALSE;
|
||||
in = llGetSubString(in, 1, -2);
|
||||
list check = llParseString2List(in, [","], []);
|
||||
if (llGetListLength(check) != 3) return FALSE;
|
||||
integer i;
|
||||
for (; i < 3; i ++)
|
||||
{
|
||||
string d = llStringTrim(llList2String(check, i), STRING_TRIM);
|
||||
if (!GetIsInteger(d) && !GetIsFloat(d)) return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
integer GetIsKey(string in)
|
||||
{
|
||||
if ((key)in) return TRUE;
|
||||
if ((key)in == NULL_KEY) return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
StartParticles()
|
||||
{
|
||||
integer i;
|
||||
for (; i < llGetListLength(lLINKS); i++)
|
||||
{
|
||||
llLinkParticleSystem(llList2Integer(lLINKS, i), []);
|
||||
llLinkParticleSystem(llList2Integer(lLINKS, i), lPARTICLES);
|
||||
}
|
||||
}
|
||||
|
||||
StopParticles()
|
||||
{
|
||||
integer i;
|
||||
for (; i < llGetListLength(lLINKS); i++)
|
||||
{
|
||||
llLinkParticleSystem(llList2Integer(lLINKS, i), []);
|
||||
}
|
||||
kTARGET = NULL_KEY;
|
||||
lPARTICLES = [];
|
||||
}
|
||||
|
||||
default
|
||||
{
|
||||
state_entry()
|
||||
{
|
||||
lLINKS = [];
|
||||
integer i;
|
||||
for (; i <= llGetNumberOfPrims(); i++)
|
||||
{
|
||||
list d = llParseString2List(llList2String(llGetLinkPrimitiveParams(i, [28]), 0), ["~"], []);
|
||||
if (llList2String(d, 0) == sEMITTER) lLINKS += [i];
|
||||
}
|
||||
if (!llGetListLength(lLINKS)) lLINKS = [llGetLinkNumber()];
|
||||
StopParticles();
|
||||
llSleep(0.001);
|
||||
kWEARER = llGetOwner();
|
||||
HUD_CHANNEL = (integer)("0x" + llGetSubString((string)kWEARER, 2, 7)) + 1111;
|
||||
if (HUD_CHANNEL > 0) HUD_CHANNEL *= -1;
|
||||
if (HUD_CHANNEL > -10000) HUD_CHANNEL -= 30000;
|
||||
llListen(HUD_CHANNEL, "", "", "");
|
||||
if (kTARGET != NULL_KEY)
|
||||
{
|
||||
debug ("entry leash targeted");
|
||||
StartParticles();
|
||||
}
|
||||
}
|
||||
|
||||
on_rez(integer iRez)
|
||||
{
|
||||
llResetScript();
|
||||
}
|
||||
|
||||
listen(integer c, string n, key k, string s)
|
||||
{
|
||||
if (c == HUD_CHANNEL)
|
||||
{
|
||||
list parts = llParseString2List(s, ["\\"], []);
|
||||
key tar = (key)llList2String(parts, 0);
|
||||
string com = llList2String(parts, 1);
|
||||
string val = llList2String(parts, 2);
|
||||
if (com == "LeashUp")
|
||||
{
|
||||
kTARGET = tar;
|
||||
integer i;
|
||||
parts = llCSV2List(val);
|
||||
lPARTICLES = [];
|
||||
for (; i < llGetListLength(parts); i++)
|
||||
{
|
||||
string bit = llList2String(parts, i);
|
||||
if (GetIsInteger(bit)) lPARTICLES += [(integer)bit];
|
||||
else if (GetIsFloat(bit)) lPARTICLES += [(float)bit];
|
||||
else if (GetIsVec(bit)) lPARTICLES += [(vector)bit];
|
||||
else if (GetIsKey(bit)) lPARTICLES += [(key)bit];
|
||||
else lPARTICLES += [bit];
|
||||
}
|
||||
StartParticles();
|
||||
}
|
||||
else if (com == "Unleash")
|
||||
{
|
||||
StopParticles();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,231 +0,0 @@
|
||||
//tempowner demo app
|
||||
|
||||
string SUBMENU_BUTTON = "Capture"; // Name of the submenu
|
||||
string COLLAR_PARENT_MENU = "Apps"; // name of the menu, where the menu plugs in, should be usually Addons. Please do not use the mainmenu anymore
|
||||
|
||||
key g_kMenuID; // menu handler
|
||||
key g_kWearer; // key of the current wearer to reset only on owner changes
|
||||
string g_sScript="capture_"; // part of script name used for settings
|
||||
string CTYPE = "collar"; // designer can set in notecard to appropriate word for their item
|
||||
list g_lTempOwners;
|
||||
integer g_iCaptureOn=FALSE;
|
||||
// OpenCollar MESSAGE MAP
|
||||
|
||||
// messages for authenticating users
|
||||
// integer COMMAND_NOAUTH = 0; // for reference, but should usually not be in use inside plugins
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
integer COMMAND_RLV_RELAY = 507;
|
||||
integer COMMAND_SAFEWORD = 510;
|
||||
integer COMMAND_RELAY_SAFEWORD = 511;
|
||||
integer COMMAND_BLACKLIST = 520;
|
||||
// added for timer so when the sub is locked out they can use postions
|
||||
integer COMMAND_WEARERLOCKEDOUT = 521;
|
||||
|
||||
integer ATTACHMENT_REQUEST = 600;
|
||||
integer ATTACHMENT_RESPONSE = 601;
|
||||
integer ATTACHMENT_FORWARD = 610;
|
||||
|
||||
integer WEARERLOCKOUT = 620; // turns on and off wearer lockout
|
||||
|
||||
// integer SEND_IM = 1000; deprecated. each script should send its own IMs now.
|
||||
// This is to reduce even the tiny bit of lag caused by having IM slave scripts
|
||||
integer POPUP_HELP = 1001;
|
||||
|
||||
// messages for storing and retrieving values from settings store
|
||||
integer LM_SETTING_SAVE = 2000; // scripts send messages on this channel to have settings saved to settings store
|
||||
// str must be in form of "token=value"
|
||||
integer LM_SETTING_REQUEST = 2001; // when startup, scripts send requests for settings on this channel
|
||||
integer LM_SETTING_RESPONSE = 2002; // the settings script will send responses on this channel
|
||||
integer LM_SETTING_DELETE = 2003; // delete token from settings store
|
||||
integer LM_SETTING_EMPTY = 2004; // sent by settings script when a token has no value in the settings store
|
||||
integer LM_SETTING_REQUEST_NOCACHE = 2005;
|
||||
|
||||
// messages for creating OC menu structure
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
integer MENUNAME_REMOVE = 3003;
|
||||
|
||||
// messages for RLV commands
|
||||
integer RLV_CMD = 6000;
|
||||
integer RLV_REFRESH = 6001; // RLV plugins should reinstate their restrictions upon receiving this message.
|
||||
integer RLV_CLEAR = 6002; // RLV plugins should clear their restriction lists upon receiving this message.
|
||||
integer RLV_VERSION = 6003; // RLV Plugins can recieve the used rl viewer version upon receiving this message..
|
||||
integer RLV_OFF = 6100; // send to inform plugins that RLV is disabled now, no message or key needed
|
||||
integer RLV_ON = 6101; // send to inform plugins that RLV is enabled now, no message or key needed
|
||||
integer RLV_QUERY = 6102; //query from a script asking if RLV is currently functioning
|
||||
integer RLV_RESPONSE = 6103; //reply to RLV_QUERY, with "ON" or "OFF" as the message
|
||||
|
||||
// messages for poses and couple anims
|
||||
integer ANIM_START = 7000; // send this with the name of an anim in the string part of the message to play the anim
|
||||
integer ANIM_STOP = 7001; // send this with the name of an anim in the string part of the message to stop the anim
|
||||
integer CPLANIM_PERMREQUEST = 7002; // id should be av's key, str should be cmd name "hug", "kiss", etc
|
||||
integer CPLANIM_PERMRESPONSE = 7003; // str should be "1" for got perms or "0" for not. id should be av's key
|
||||
integer CPLANIM_START = 7004; // str should be valid anim name. id should be av
|
||||
integer CPLANIM_STOP = 7005; // str should be valid anim name. id should be av
|
||||
|
||||
// messages to the dialog helper
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
integer FIND_AGENT = -9005; // to look for agent(s) in region with a (optional) search string
|
||||
key REQUEST_KEY;
|
||||
|
||||
integer TIMER_EVENT = -10000; // str = "start" or "end". For start, either "online" or "realtime".
|
||||
|
||||
integer UPDATE = 10001; // for child prim scripts (currently none in 3.8, thanks to LSL new functions)
|
||||
|
||||
// For other things that want to manage showing/hiding keys.
|
||||
integer KEY_VISIBLE = -10100;
|
||||
integer KEY_INVISIBLE = -10100;
|
||||
|
||||
integer COMMAND_PARTICLE = 20000;
|
||||
integer COMMAND_LEASH_SENSOR = 20001;
|
||||
|
||||
//chain systems
|
||||
integer LOCKMEISTER = -8888;
|
||||
integer LOCKGUARD = -9119;
|
||||
|
||||
//rlv relay chan
|
||||
integer RLV_RELAY_CHANNEL = -1812221819;
|
||||
|
||||
// menu option to go one step back in menustructure
|
||||
string UPMENU = "BACK"; // when your menu hears this, give the parent menu
|
||||
|
||||
|
||||
//Debug(string sMsg) { llOwnerSay(llGetScriptName() + " [DEBUG]: " + sMsg);}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer){
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else {
|
||||
if (llGetAgentSize(kID)) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
key Dialog(key kRCPT, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth)
|
||||
{
|
||||
key kID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kRCPT + "|" + sPrompt + "|" + (string)iPage + "|"
|
||||
+ llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kID);
|
||||
return kID;
|
||||
}
|
||||
|
||||
DoMenu(key keyID, integer iAuth) {
|
||||
string sPrompt = "\nCapture";
|
||||
list lMyButtons = ["Reset"];
|
||||
|
||||
//fill in your button list and additional prompt here
|
||||
if (g_iCaptureOn){
|
||||
lMyButtons += "OFF";
|
||||
} else {
|
||||
lMyButtons += "ON";
|
||||
}
|
||||
|
||||
// and dispay the menu
|
||||
g_kMenuID = Dialog(keyID, "\n\nCapture\n", lMyButtons, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
integer UserCommand(integer iNum, string sStr, key kID, integer remenu) {
|
||||
sStr=llToLower(sStr);
|
||||
//Debug("Got user command "+sStr);
|
||||
if (!(iNum >= COMMAND_OWNER && iNum <= COMMAND_EVERYONE)) {
|
||||
return FALSE;
|
||||
} else if (sStr == "capture" || sStr == "menu capture") {
|
||||
// an authorized user requested the plugin menu by typing the menus chat command
|
||||
DoMenu(kID, iNum);
|
||||
} else if (sStr == "capture you" && g_iCaptureOn) {
|
||||
//add kID to the temp owner list, if they're not already there
|
||||
if (g_kWearer != llGetOwnerKey(kID) && iNum != COMMAND_OWNER ) { //owners, tempowners and wearer can't be tempowner
|
||||
Notify(kID,llKey2Name(g_kWearer)+" has been captured by "+llKey2Name(kID),TRUE);
|
||||
g_lTempOwners+=[kID,llKey2Name(kID)];
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, "auth_tempowner="+llDumpList2String(g_lTempOwners,","), "");
|
||||
llMessageLinked(LINK_SET, LM_SETTING_RESPONSE, "auth_tempowner="+llDumpList2String(g_lTempOwners,","), "");
|
||||
} else {
|
||||
Notify(kID,llKey2Name(g_kWearer)+" cannot be captured by "+llKey2Name(kID),TRUE);
|
||||
}
|
||||
} else if (sStr == "capture reset" && iNum==COMMAND_OWNER ) {
|
||||
Notify(kID,"Temp owners list has been purged.",TRUE);
|
||||
g_lTempOwners=[];
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, "auth_tempowner", "");
|
||||
llMessageLinked(LINK_SET, LM_SETTING_EMPTY, "auth_tempowner", "");
|
||||
} else if (sStr == "capture on" && iNum==COMMAND_OWNER && ! g_iCaptureOn) {
|
||||
Notify(kID,"Capture game is ON!",TRUE);
|
||||
g_iCaptureOn=TRUE;
|
||||
llWhisper(0,"You can own "+llKey2Name(g_kWearer)+" for a while by sending the command 'capture you' to their collar, if you know their prefix");
|
||||
} else if (sStr == "capture off" && iNum==COMMAND_OWNER && g_iCaptureOn) {
|
||||
Notify(kID,"Capture game is OFF!",TRUE);
|
||||
g_iCaptureOn=FALSE;
|
||||
}
|
||||
|
||||
if (remenu) {
|
||||
DoMenu(kID, iNum);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
default {
|
||||
|
||||
state_entry()
|
||||
{
|
||||
g_sScript = llStringTrim(llList2String(llParseString2List(llGetScriptName(), ["-"], []), 1), STRING_TRIM) + "_";
|
||||
g_kWearer = llGetOwner();
|
||||
}
|
||||
|
||||
on_rez(integer iParam) {
|
||||
if (llGetOwner()!=g_kWearer) llResetScript();
|
||||
}
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID) {
|
||||
if (iNum == MENUNAME_REQUEST && sStr == COLLAR_PARENT_MENU) {
|
||||
// our parent menu requested to receive buttons, so send ours
|
||||
llMessageLinked(LINK_THIS, MENUNAME_RESPONSE, COLLAR_PARENT_MENU + "|" + SUBMENU_BUTTON, "");
|
||||
} else if (iNum == LM_SETTING_RESPONSE) {
|
||||
// response from setting store have been received, parse the answer
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
// and check if any values for use are received
|
||||
|
||||
if (sToken == "auth_tempowner") {
|
||||
list lTempOwners = llParseString2List(sValue, [","], []); //store tempowners list
|
||||
}
|
||||
else if (sToken == "Global_CType") CTYPE = sValue;
|
||||
}
|
||||
else if (UserCommand(iNum, sStr, kID, FALSE)) {
|
||||
// do nothing more if TRUE
|
||||
}
|
||||
else if (iNum == COMMAND_SAFEWORD) {
|
||||
// Safeword has been received, release any restricitions that should be released
|
||||
Notify(g_kWearer,"Capture game is OFF!",TRUE);
|
||||
g_iCaptureOn=FALSE;
|
||||
Notify(g_kWearer,"Temp owners list has been purged.",TRUE);
|
||||
g_lTempOwners=[];
|
||||
llMessageLinked(LINK_SET, LM_SETTING_EMPTY, "auth_tempowner", "");
|
||||
}
|
||||
else if (iNum == DIALOG_RESPONSE) {
|
||||
if (kID == g_kMenuID) {
|
||||
//got a menu response meant for us, extract the values
|
||||
list lMenuParams = llParseStringKeepNulls(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0); // avatar using the menu
|
||||
string sMessage = llList2String(lMenuParams, 1); // button label
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2); // menu page
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3); // auth level of avatar
|
||||
// request to switch to parent menu
|
||||
if (sMessage == UPMENU) {
|
||||
//give av the parent menu
|
||||
llMessageLinked(LINK_THIS, iAuth, "menu "+COLLAR_PARENT_MENU, kAv);
|
||||
} else {
|
||||
UserCommand(iAuth, "capture "+sMessage, kAv, TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,374 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - glow //
|
||||
// version 3.995 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// github.com/OpenCollar/OpenCollarUpdater //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
string g_sParentMenu = "Appearance";
|
||||
string g_sSubMenu = "Glow";
|
||||
|
||||
string g_sIgnoreType = "noglow" ; // or "nocolor" or "noglow" if you want use alternate prims descriptions;
|
||||
|
||||
//MESSAGE MAP
|
||||
integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
|
||||
//integer SEND_IM = 1000; deprecated. each script should send its own IMs now. This is to reduce even the tiny bt of lag caused by having IM slave scripts
|
||||
//integer POPUP_HELP = 1001;
|
||||
|
||||
//integer LM_SETTING_SAVE = 2000;
|
||||
//integer LM_SETTING_REQUEST = 2001;
|
||||
integer LM_SETTING_RESPONSE = 2002;
|
||||
//integer LM_SETTING_DELETE = 2003;
|
||||
//integer LM_SETTING_EMPTY = 2004;
|
||||
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
integer TOUCH_REQUEST = -9500;
|
||||
integer TOUCH_CANCEL = -9501;
|
||||
integer TOUCH_RESPONSE = -9502;
|
||||
integer TOUCH_EXPIRE = -9503;
|
||||
|
||||
string CTYPE = "collar";
|
||||
|
||||
string UPMENU = "BACK";
|
||||
|
||||
list g_lGlowButtons = ["0.00","+0.01","-0.01","0.05","+0.05","-0.05","0.10","+0.10","-0.10","0.20","0.50"];
|
||||
string ALL = "All" ;
|
||||
|
||||
list g_lElements;
|
||||
|
||||
list g_lButtons;
|
||||
|
||||
list g_lMenuIDs;
|
||||
key g_kTouchID;
|
||||
|
||||
integer g_iAppLock = FALSE;
|
||||
string g_sAppLockToken = "Appearance_Lock";
|
||||
|
||||
string g_sCurrentElement = "";
|
||||
float g_fCurrentGlow ;
|
||||
|
||||
key g_kWearer;
|
||||
|
||||
|
||||
key Dialog(key kRCPT, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth)
|
||||
{
|
||||
key kID = llGenerateKey();
|
||||
llMessageLinked(LINK_THIS, DIALOG, (string)kRCPT + "|" + sPrompt + "|" + (string)iPage + "|"
|
||||
+ llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kID);
|
||||
return kID;
|
||||
}
|
||||
|
||||
key TouchRequest(key kRCPT, integer iTouchStart, integer iTouchEnd, integer iAuth)
|
||||
{
|
||||
key kID = llGenerateKey();
|
||||
integer iFlags = 0;
|
||||
if (iTouchStart) iFlags = iFlags | 0x01;
|
||||
if (iTouchEnd) iFlags = iFlags | 0x02;
|
||||
llMessageLinked(LINK_THIS, TOUCH_REQUEST, (string)kRCPT + "|" + (string)iFlags + "|" + (string)iAuth, kID);
|
||||
return kID;
|
||||
}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer)
|
||||
{
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else
|
||||
{
|
||||
if (llGetAgentSize(kID)) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
GlowMenu(key kAv, integer iAuth)
|
||||
{
|
||||
g_fCurrentGlow = GetElementGlow(g_sCurrentElement);
|
||||
|
||||
string sPrompt = "Change Glow for visible element only.\n";
|
||||
sPrompt += "\nElement: " + g_sCurrentElement;
|
||||
sPrompt += "\nGlow: " + llGetSubString((string)g_fCurrentGlow,0,3);
|
||||
|
||||
g_lMenuIDs+=[Dialog(kAv, sPrompt, g_lGlowButtons, [UPMENU],0, iAuth)];
|
||||
}
|
||||
|
||||
ElementMenu(key kAv, integer iAuth)
|
||||
{
|
||||
string sPrompt = "Pick which part of the "+CTYPE+" you would like to change glow.\n\nChoose *Touch* if you want to select the part by directly clicking on the "+CTYPE+".";
|
||||
sPrompt += "\n\nOnly visible elements!";
|
||||
|
||||
g_lButtons = [ALL] + llListSort(g_lElements, 1, TRUE) ;
|
||||
g_lMenuIDs+=[Dialog(kAv, sPrompt, g_lButtons, ["*Touch*", UPMENU],0, iAuth)];
|
||||
}
|
||||
|
||||
string ElementType(integer iLinkNumber)
|
||||
{
|
||||
// check for invisible prim
|
||||
list params = llGetLinkPrimitiveParams(iLinkNumber, [PRIM_COLOR, ALL_SIDES]);
|
||||
if (llList2Float(params,1) == 0 ) return g_sIgnoreType; // prim is invisible
|
||||
|
||||
//string sDesc = (string)llGetObjectDetails(llGetLinkKey(iLinkNumber), [OBJECT_DESC]);
|
||||
string sDesc = llList2String(llGetLinkPrimitiveParams(iLinkNumber, [PRIM_DESC]), 0);
|
||||
//each prim should have <elementname> in its description, plus "noshiny, if you want the prim to
|
||||
//not appear in the shiny menu
|
||||
list lParams = llParseString2List(sDesc, ["~"], []);
|
||||
if ((~(integer)llListFindList(lParams, [g_sIgnoreType])) || sDesc == "" || sDesc == " " || sDesc == "(No Description)")
|
||||
return g_sIgnoreType;
|
||||
else return llList2String(lParams, 0);
|
||||
}
|
||||
|
||||
BuildElementList()
|
||||
{
|
||||
integer n;
|
||||
integer iLinkCount = llGetNumberOfPrims();
|
||||
|
||||
//root prim is 1, so start at 2
|
||||
for (n = 2; n <= iLinkCount; n++)
|
||||
{
|
||||
string sElement = ElementType(n);
|
||||
if (!(~llListFindList(g_lElements, [sElement])) && sElement != g_sIgnoreType)
|
||||
{
|
||||
g_lElements += [sElement];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SetAllGlow(float fGlow)
|
||||
{
|
||||
integer elements = llGetListLength(g_lElements) ;
|
||||
integer index = 0 ;
|
||||
do
|
||||
{
|
||||
string sElement = llList2String(g_lElements, index);
|
||||
SetElementGlow(sElement, fGlow);
|
||||
index++ ;
|
||||
}while (index < elements ) ;
|
||||
}
|
||||
|
||||
SetElementGlow(string sElement, float fGlow)
|
||||
{
|
||||
integer n;
|
||||
integer iLinkCount = llGetNumberOfPrims();
|
||||
for (n = 2; n <= iLinkCount; n++)
|
||||
{
|
||||
if (ElementType(n) == sElement) llSetLinkPrimitiveParamsFast(n, [PRIM_GLOW, ALL_SIDES, fGlow]);
|
||||
}
|
||||
}
|
||||
|
||||
float GetElementGlow(string sElement)
|
||||
{
|
||||
integer n = 1;
|
||||
integer iLinkCount = llGetNumberOfPrims();
|
||||
//root prim is 1, so start at 2
|
||||
do
|
||||
{
|
||||
n++;
|
||||
} while (ElementType(n) != sElement && n < iLinkCount);
|
||||
|
||||
list params = llGetLinkPrimitiveParams(n, [PRIM_GLOW, ALL_SIDES]);
|
||||
return llList2Float(params, 0) ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// returns TRUE if eligible (AUTHED link message number)
|
||||
integer UserCommand(integer iNum, string sStr, key kID) // here iNum: auth value, sStr: user command, kID: avatar id
|
||||
{
|
||||
if (iNum > COMMAND_WEARER || iNum < COMMAND_OWNER) return FALSE; // sanity check
|
||||
|
||||
list lParams = llParseString2List(sStr, [" "], []);
|
||||
string sCommand = llList2String(lParams, 0);
|
||||
|
||||
if (sStr == "menu "+ g_sSubMenu || sStr == "glow")
|
||||
{
|
||||
if (kID!=g_kWearer && iNum!=COMMAND_OWNER)
|
||||
{
|
||||
Notify(kID,"You are not allowed to change the glow.", FALSE);
|
||||
llMessageLinked(LINK_THIS, iNum, "menu "+g_sParentMenu, kID);
|
||||
}
|
||||
else if (g_iAppLock)
|
||||
{
|
||||
Notify(kID,"The appearance of the "+CTYPE+" is locked. You cannot access this menu now!", FALSE);
|
||||
llMessageLinked(LINK_THIS, iNum, "menu "+g_sParentMenu, kID);
|
||||
}
|
||||
else
|
||||
{
|
||||
g_sCurrentElement = "";
|
||||
ElementMenu(kID, iNum);
|
||||
}
|
||||
}
|
||||
else if (sCommand == "setglow")
|
||||
{
|
||||
if (kID!=g_kWearer && iNum!=COMMAND_OWNER)
|
||||
{
|
||||
Notify(kID,"You are not allowed to change the glow.", FALSE);
|
||||
}
|
||||
else if (g_iAppLock)
|
||||
{
|
||||
Notify(kID,"The appearance of the "+CTYPE+" is locked. You cannot access this menu now!", FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
string sElement = llList2String(lParams, 1);
|
||||
float fGlow = (float)llList2String(lParams, 2);
|
||||
if (sElement == ALL || sElement == "all") SetAllGlow(fGlow);
|
||||
else SetElementGlow(sElement, fGlow);
|
||||
}
|
||||
}
|
||||
else if (sCommand == "lockappearance")
|
||||
{
|
||||
if (iNum == COMMAND_OWNER) g_iAppLock = llList2Integer(lParams, 1);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// Get from Group_Token=Value , 0=Group, 1=Token, 2=Value
|
||||
string SplitTokenValue(string in, integer slot)
|
||||
{
|
||||
string out ;
|
||||
if (slot==0) out = llGetSubString(in, 0, llSubStringIndex(in, "_") );
|
||||
else if (slot==1) out = llGetSubString(in, llSubStringIndex(in, "_")+1, llSubStringIndex(in, "=")-1);
|
||||
else if (slot==2) out = llGetSubString(in, llSubStringIndex(in, "=")+1, -1);
|
||||
return out ;
|
||||
}
|
||||
|
||||
|
||||
default
|
||||
{
|
||||
|
||||
on_rez(integer iParam)
|
||||
{
|
||||
llResetScript();
|
||||
}
|
||||
|
||||
state_entry()
|
||||
{
|
||||
g_kWearer = llGetOwner();
|
||||
BuildElementList();
|
||||
}
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID)
|
||||
{
|
||||
if (UserCommand(iNum, sStr, kID)) return;
|
||||
else if (iNum == LM_SETTING_RESPONSE)
|
||||
{
|
||||
list params = llParseString2List(sStr,["="],[]);
|
||||
string sToken = llList2String(params, 0);
|
||||
string sValue = llList2String(params, 1);
|
||||
if (sToken == g_sAppLockToken) g_iAppLock = (integer)sValue;
|
||||
else if (sToken == "Global_CType") CTYPE = sValue;
|
||||
}
|
||||
else if (iNum == MENUNAME_REQUEST && sStr == g_sParentMenu)
|
||||
{
|
||||
llMessageLinked(LINK_THIS, MENUNAME_RESPONSE, g_sParentMenu + "|" + g_sSubMenu, "");
|
||||
}
|
||||
else if (iNum == DIALOG_RESPONSE)
|
||||
{
|
||||
integer iMenuIndex = llListFindList(g_lMenuIDs, [kID]);
|
||||
if (iMenuIndex != -1)
|
||||
{
|
||||
g_lMenuIDs=llDeleteSubList(g_lMenuIDs,iMenuIndex,iMenuIndex);
|
||||
//got a menu response meant for us. pull out values
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
if (sMessage == UPMENU)
|
||||
{
|
||||
if (g_sCurrentElement == "")
|
||||
{
|
||||
//main menu
|
||||
llMessageLinked(LINK_THIS, iAuth, "menu "+g_sParentMenu, kAv);
|
||||
}
|
||||
else
|
||||
{
|
||||
g_sCurrentElement = "" ;
|
||||
ElementMenu(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
else if (sMessage == "*Touch*")
|
||||
{
|
||||
Notify(kAv, "Please touch the part of the collar you want to shiny.", FALSE);
|
||||
g_kTouchID = TouchRequest(kAv, TRUE, FALSE, iAuth);
|
||||
}
|
||||
else if (g_sCurrentElement == "")
|
||||
{
|
||||
//we just got the element name
|
||||
g_sCurrentElement = sMessage;
|
||||
GlowMenu(kAv, iAuth);
|
||||
}
|
||||
else if (~(integer)llListFindList(g_lGlowButtons, [sMessage]))
|
||||
{
|
||||
if (sMessage == "0.00") g_fCurrentGlow = 0.0 ;
|
||||
else if (sMessage == "0.05") g_fCurrentGlow = 0.05 ;
|
||||
else if (sMessage == "0.10") g_fCurrentGlow = 0.10 ;
|
||||
else if (sMessage == "0.20") g_fCurrentGlow = 0.20 ;
|
||||
else if (sMessage == "0.50") g_fCurrentGlow = 0.50 ;
|
||||
else if (sMessage == "+0.01") g_fCurrentGlow += 0.01 ;
|
||||
else if (sMessage == "+0.05") g_fCurrentGlow += 0.05 ;
|
||||
else if (sMessage == "+0.10") g_fCurrentGlow += 0.10 ;
|
||||
else if (sMessage == "-0.01") g_fCurrentGlow -= 0.01 ;
|
||||
else if (sMessage == "-0.05") g_fCurrentGlow -= 0.05 ;
|
||||
else if (sMessage == "-0.10") g_fCurrentGlow -= 0.10 ;
|
||||
|
||||
if (g_fCurrentGlow < 0.0) g_fCurrentGlow = 0.0 ;
|
||||
if (g_fCurrentGlow > 1.0) g_fCurrentGlow = 1.0 ;
|
||||
|
||||
if(g_sCurrentElement == ALL) SetAllGlow(g_fCurrentGlow);
|
||||
else SetElementGlow(g_sCurrentElement, g_fCurrentGlow);
|
||||
GlowMenu(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (iNum == DIALOG_TIMEOUT)
|
||||
{
|
||||
integer iMenuIndex = llListFindList(g_lMenuIDs, [kID]);
|
||||
if (iMenuIndex != -1)
|
||||
{
|
||||
g_lMenuIDs=llDeleteSubList(g_lMenuIDs,iMenuIndex,iMenuIndex);
|
||||
}
|
||||
}
|
||||
else if (iNum == TOUCH_RESPONSE)
|
||||
{
|
||||
if (kID == g_kTouchID)
|
||||
{
|
||||
list lParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lParams, 0);
|
||||
integer iAuth = (integer)llList2String(lParams, 1);
|
||||
integer iLinkNumber = (integer)llList2String(lParams, 3);
|
||||
|
||||
string sElement = ElementType(iLinkNumber);
|
||||
if (sElement != g_sIgnoreType)
|
||||
{
|
||||
g_sCurrentElement = sElement;
|
||||
GlowMenu(kAv, iAuth);
|
||||
Notify(kAv, "You selected \""+sElement+"\".", FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
Notify(kAv, "You selected a prim which is not shiny. You can try again.", FALSE);
|
||||
ElementMenu(kAv, iAuth);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,337 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - outfits //
|
||||
// version 3.980 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// github.com/OpenCollar/OpenCollarUpdater //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
string SUBMENU_BUTTON = "Outfits"; // Name of the submenu
|
||||
string COLLAR_PARENT_MENU = "Apps"; // name of the menu, where the menu plugs in, should be usually Addons. Please do not use the mainmenu anymore
|
||||
|
||||
key g_kMenuID; // menu handler
|
||||
key g_kFolderMenuID; // folder menu
|
||||
key g_kRemAttachedMenuID; // attachment remove menu
|
||||
key g_kMultipleMatchMenuID;
|
||||
key g_kWearer;
|
||||
key g_kMenuClicker;
|
||||
|
||||
integer g_iListener; // key of the current wearer to reset only on owner changes
|
||||
string g_sScript="Outfits_"; // part of script name used for settings
|
||||
string CTYPE = "collar"; // designer can set in notecard to appropriate word for their item
|
||||
integer g_iFolderRLV = 98745923;
|
||||
integer g_iFolderRLVSearch = 98745925;
|
||||
integer g_iTimeOut = 30; //timeout on viewer response commands
|
||||
integer g_iRlvOn = FALSE;
|
||||
integer g_iRlvaOn = FALSE;
|
||||
string g_sCurrentPath;
|
||||
string g_sPathPrefix = ".outfits"; //we look for outfits in here
|
||||
|
||||
// OpenCollar MESSAGE MAP
|
||||
|
||||
// messages for authenticating users
|
||||
// integer COMMAND_NOAUTH = 0; // for reference, but should usually not be in use inside plugins
|
||||
//integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
integer COMMAND_RLV_RELAY = 507;
|
||||
integer COMMAND_SAFEWORD = 510;
|
||||
integer COMMAND_RELAY_SAFEWORD = 511;
|
||||
integer COMMAND_BLACKLIST = 520;
|
||||
|
||||
integer WEARERLOCKOUT = 620; // turns on and off wearer lockout
|
||||
|
||||
// messages for storing and retrieving values from settings store
|
||||
integer LM_SETTING_SAVE = 2000; // scripts send messages on this channel to have settings saved to settings store
|
||||
// str must be in form of "token=value"
|
||||
integer LM_SETTING_REQUEST = 2001; // when startup, scripts send requests for settings on this channel
|
||||
integer LM_SETTING_RESPONSE = 2002; // the settings script will send responses on this channel
|
||||
integer LM_SETTING_DELETE = 2003; // delete token from settings store
|
||||
integer LM_SETTING_EMPTY = 2004; // sent by settings script when a token has no value in the settings store
|
||||
integer LM_SETTING_REQUEST_NOCACHE = 2005;
|
||||
|
||||
// messages for creating OC menu structure
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
integer MENUNAME_REMOVE = 3003;
|
||||
|
||||
// messages for RLV commands
|
||||
integer RLV_CMD = 6000;
|
||||
integer RLV_REFRESH = 6001; // RLV plugins should reinstate their restrictions upon receiving this message.
|
||||
integer RLV_CLEAR = 6002; // RLV plugins should clear their restriction lists upon receiving this message.
|
||||
integer RLV_VERSION = 6003; // RLV Plugins can recieve the used rl viewer version upon receiving this message..
|
||||
integer RLV_OFF = 6100; // send to inform plugins that RLV is disabled now, no message or key needed
|
||||
integer RLV_ON = 6101; // send to inform plugins that RLV is enabled now, no message or key needed
|
||||
integer RLV_QUERY = 6102; //query from a script asking if RLV is currently functioning
|
||||
integer RLV_RESPONSE = 6103; //reply to RLV_QUERY, with "ON" or "OFF" as the message
|
||||
integer RLVA_VERSION = 6004;
|
||||
|
||||
// messages to the dialog helper
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
integer FIND_AGENT = -9005; // to look for agent(s) in region with a (optional) search string
|
||||
key REQUEST_KEY;
|
||||
|
||||
integer TIMER_EVENT = -10000; // str = "start" or "end". For start, either "online" or "realtime".
|
||||
|
||||
integer UPDATE = 10001; // for child prim scripts (currently none in 3.8, thanks to LSL new functions)
|
||||
|
||||
// For other things that want to manage showing/hiding keys.
|
||||
integer KEY_VISIBLE = -10100;
|
||||
integer KEY_INVISIBLE = -10100;
|
||||
|
||||
integer COMMAND_PARTICLE = 20000;
|
||||
integer COMMAND_LEASH_SENSOR = 20001;
|
||||
|
||||
//chain systems
|
||||
integer LOCKMEISTER = -8888;
|
||||
integer LOCKGUARD = -9119;
|
||||
|
||||
//rlv relay chan
|
||||
integer RLV_RELAY_CHANNEL = -1812221819;
|
||||
|
||||
// menu option to go one step back in menustructure
|
||||
string UPMENU = "BACK"; // when your menu hears this, give the parent menu
|
||||
string BACKMENU = "⏎";
|
||||
|
||||
|
||||
|
||||
//Debug(string sMsg) { llOwnerSay(llGetScriptName() + " [DEBUG]: " + sMsg);}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer){
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else {
|
||||
if (llGetAgentSize(kID)) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
key Dialog(key kRCPT, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth)
|
||||
{
|
||||
key kID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kRCPT + "|" + sPrompt + "|" + (string)iPage + "|"
|
||||
+ llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kID);
|
||||
return kID;
|
||||
}
|
||||
|
||||
DoMenu(key keyID, integer iAuth) {
|
||||
list lMyButtons;
|
||||
string sPrompt = "\nOutfits ";
|
||||
if (!g_iRlvOn) {
|
||||
sPrompt += "\nYou need to enable RLV to use this plugin";
|
||||
}
|
||||
else {
|
||||
|
||||
lMyButtons += ["Browse"];
|
||||
}
|
||||
g_kMenuID = Dialog(keyID, sPrompt, lMyButtons, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
FolderMenu(key keyID, integer iAuth,string sFolders) {
|
||||
string sPrompt = "\nOutfits ";
|
||||
sPrompt = "\n\nCurrent Path = "+g_sCurrentPath;
|
||||
list lMyButtons;
|
||||
|
||||
lMyButtons += llParseString2List(sFolders,[","],[""]);
|
||||
// and dispay the menu
|
||||
if (g_sCurrentPath == g_sPathPrefix+"/") { //If we're at root, don't bother with BACKMENU
|
||||
g_kFolderMenuID = Dialog(keyID, sPrompt, lMyButtons, [UPMENU], 0, iAuth);
|
||||
} else {
|
||||
if (sFolders == "") {
|
||||
g_kFolderMenuID = Dialog(keyID, sPrompt, lMyButtons, ["WEAR",UPMENU,BACKMENU], 0, iAuth);
|
||||
} else {
|
||||
g_kFolderMenuID = Dialog(keyID, sPrompt, lMyButtons, [UPMENU,BACKMENU], 0, iAuth);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RemAttached(key keyID, integer iAuth,string sFolders) {
|
||||
string sPrompt = "\nOutfits ";
|
||||
sPrompt = "\n\nRemove Attachment by Name";
|
||||
list lMyButtons;
|
||||
|
||||
lMyButtons += llParseString2List(sFolders,[","],[""]);
|
||||
// and dispay the menu
|
||||
g_kRemAttachedMenuID = Dialog(keyID, sPrompt, lMyButtons, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
integer UserCommand(integer iNum, string sStr, key kID, integer remenu) {
|
||||
sStr=llToLower(sStr);
|
||||
if (!(iNum >= COMMAND_OWNER && iNum <= COMMAND_WEARER)) {
|
||||
return FALSE;
|
||||
} else if (sStr == "outfits" || sStr == "menu outfits") {
|
||||
// an authorized user requested the plugin menu by typing the menus chat command
|
||||
DoMenu(kID, iNum);
|
||||
} else if (llSubStringIndex(sStr,"outfits ") == 0) {
|
||||
sStr = llDeleteSubString(sStr,0,llStringLength("outfits ")-1);
|
||||
if (sStr) { //we have a folder to try find...
|
||||
llSetTimerEvent(g_iTimeOut);
|
||||
g_iListener = llListen(g_iFolderRLVSearch, "", llGetOwner(), "");
|
||||
g_kMenuClicker = kID;
|
||||
if (g_iRlvaOn) {
|
||||
llOwnerSay("@findfolders:"+sStr+"="+(string)g_iFolderRLVSearch);
|
||||
}
|
||||
else {
|
||||
llOwnerSay("@findfolder:"+sStr+"="+(string)g_iFolderRLVSearch);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (remenu) {
|
||||
DoMenu(kID, iNum);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
string WearFolder (string sStr) { //function grabs g_sCurrentPath, and splits out the final directory path, attaching .alwaysadd directories and passes RLV commands
|
||||
string sOutput;
|
||||
string sPrePath;
|
||||
list lTempSplit = llParseString2List(sStr,["/"],[]);
|
||||
lTempSplit = llList2List(lTempSplit,0,llGetListLength(lTempSplit) -2);
|
||||
sPrePath = llDumpList2String(lTempSplit,"/");
|
||||
if (g_sPathPrefix + "/" == sPrePath) { //
|
||||
sOutput = "@remoutfit=force,detach=force,attachallover:"+sStr+"=force,attachallover:"+g_sPathPrefix+"/.alwaysadd/=force";
|
||||
}
|
||||
else {
|
||||
sOutput = "@remoutfit=force,detach=force,attachallover:"+sStr+"=force,attachallover:"+g_sPathPrefix+"/.alwaysadd/=force,attachallover:"+sPrePath+"/.alwaysadd/=force";
|
||||
}
|
||||
// llOwnerSay("rlv:"+sOutput);
|
||||
return sOutput;
|
||||
}
|
||||
|
||||
|
||||
default {
|
||||
|
||||
state_entry()
|
||||
{
|
||||
g_sScript = llStringTrim(llList2String(llParseString2List(llGetScriptName(), ["-"], []), 1), STRING_TRIM) + "_";
|
||||
g_kWearer = llGetOwner();
|
||||
}
|
||||
timer()
|
||||
{
|
||||
llListenRemove(g_iListener);
|
||||
llSetTimerEvent(0.0);
|
||||
}
|
||||
on_rez(integer iParam) {
|
||||
if (llGetOwner()!=g_kWearer) llResetScript();
|
||||
}
|
||||
listen(integer iChan, string sName, key kID, string sMsg) {
|
||||
//llListenRemove(g_iListener);
|
||||
llSetTimerEvent(0.0);
|
||||
//llOwnerSay((string)iChan+"|"+sName+"|"+(string)kID+"|"+sMsg);
|
||||
if (iChan == g_iFolderRLV) { //We got some folders to process
|
||||
FolderMenu(g_kMenuClicker,COMMAND_OWNER,sMsg); //we use g_kMenuClicker to respond to the person who asked for the menu
|
||||
}
|
||||
else if (iChan == g_iFolderRLVSearch) {
|
||||
if (sMsg == "") {
|
||||
Notify(kID,"That outfit cannot be found in #RLV/"+g_sPathPrefix,FALSE);
|
||||
} else { // we got a match
|
||||
if (llSubStringIndex(sMsg,",") < 0) {
|
||||
llOwnerSay(WearFolder(sMsg));
|
||||
g_sCurrentPath = sMsg;
|
||||
//llOwnerSay("@attachallover:"+g_sPathPrefix+"/.alwaysadd/=force");
|
||||
Notify(kID,"Loading outfit #RLV/"+sMsg,FALSE);
|
||||
} else {
|
||||
string sPrompt = "Multiple folders found. Please select from the following list...";
|
||||
list lFolderMatches = llParseString2List(sMsg,[","],[]);
|
||||
g_kMultipleMatchMenuID = Dialog(g_kMenuClicker, sPrompt, lFolderMatches, [UPMENU], 0, COMMAND_OWNER);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID) {
|
||||
// llOwnerSay(sStr+" | "+(string)iNum);
|
||||
if (iNum == MENUNAME_REQUEST && sStr == COLLAR_PARENT_MENU) {
|
||||
// our parent menu requested to receive buttons, so send ours
|
||||
llMessageLinked(LINK_THIS, MENUNAME_RESPONSE, COLLAR_PARENT_MENU + "|" + SUBMENU_BUTTON, "");
|
||||
}
|
||||
/* else if (iNum == LM_SETTING_RESPONSE) {
|
||||
// response from setting store have been received, parse the answer
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
|
||||
// and check if any values for use are received
|
||||
// if (sToken == "test") {
|
||||
// if (sValue == (string)1) { g_iCaptureOn = TRUE; }
|
||||
// }
|
||||
if (sToken == "Global_CType") CTYPE = sValue;
|
||||
}
|
||||
*/
|
||||
else if (iNum == RLV_ON) {
|
||||
g_iRlvOn = TRUE;
|
||||
}
|
||||
else if (iNum == RLVA_VERSION) {
|
||||
g_iRlvaOn = TRUE;
|
||||
}
|
||||
else if (iNum == COMMAND_SAFEWORD) {
|
||||
// Safeword has been received, release any restricitions that should be released
|
||||
}
|
||||
else if (UserCommand(iNum, sStr, kID, FALSE)) {
|
||||
// do nothing more if TRUE
|
||||
}
|
||||
else if (iNum == DIALOG_RESPONSE) {
|
||||
|
||||
list lMenuParams = llParseStringKeepNulls(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0); // avatar using the menu
|
||||
string sMessage = llList2String(lMenuParams, 1); // button label
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2); // menu page
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3); // auth level of avatar
|
||||
|
||||
if (kID == g_kMenuID) {
|
||||
//got a menu response meant for us, extract the values
|
||||
// request to switch to parent menu
|
||||
if (sMessage == UPMENU) {
|
||||
//give av the parent menu
|
||||
llMessageLinked(LINK_THIS, iAuth, "menu "+COLLAR_PARENT_MENU, kAv);
|
||||
}
|
||||
else if (sMessage == "Browse") {
|
||||
g_kMenuClicker = kAv; //on our listen response, we need to know who to pop a dialog for
|
||||
g_sCurrentPath = g_sPathPrefix + "/";
|
||||
llSetTimerEvent(g_iTimeOut);
|
||||
g_iListener = llListen(g_iFolderRLV, "", llGetOwner(), "");
|
||||
llOwnerSay("@getinv:"+g_sCurrentPath+"="+(string)g_iFolderRLV);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
if (kID == g_kFolderMenuID || kID == g_kMultipleMatchMenuID) {
|
||||
g_kMenuClicker = kAv;
|
||||
if (sMessage == UPMENU) {
|
||||
//give av the parent menu
|
||||
llMessageLinked(LINK_THIS, iAuth, "menu "+SUBMENU_BUTTON, kAv);
|
||||
}
|
||||
else if (sMessage == BACKMENU) {
|
||||
list lTempSplit = llParseString2List(g_sCurrentPath,["/"],[]);
|
||||
lTempSplit = llList2List(lTempSplit,0,llGetListLength(lTempSplit) -2);
|
||||
g_sCurrentPath = llDumpList2String(lTempSplit,"/") + "/";
|
||||
llSetTimerEvent(g_iTimeOut);
|
||||
g_iListener = llListen(g_iFolderRLV, "", llGetOwner(), "");
|
||||
llOwnerSay("@getinv:"+g_sCurrentPath+"="+(string)g_iFolderRLV);
|
||||
}
|
||||
else if (sMessage == "WEAR") {
|
||||
llOwnerSay(WearFolder(g_sCurrentPath));
|
||||
//llOwnerSay("@attachallover:"+g_sPathPrefix+"/.alwaysadd/=force");
|
||||
}
|
||||
else if (sMessage != "") {
|
||||
g_sCurrentPath += sMessage + "/";
|
||||
if (kID == g_kMultipleMatchMenuID) g_sCurrentPath = sMessage;
|
||||
llSetTimerEvent(g_iTimeOut);
|
||||
g_iListener = llListen(g_iFolderRLV, "", llGetOwner(), "");
|
||||
llOwnerSay("@getinv:"+g_sCurrentPath+"="+(string)g_iFolderRLV);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,398 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - paint //
|
||||
// version 3.980 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// github.com/OpenCollar/OpenCollarUpdater //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
string g_sSubMenu = "Paint";
|
||||
string g_sParentMenu = "Main";
|
||||
string CTYPE = "collar";
|
||||
key g_kWearer;
|
||||
string UPMENU = "BACK";
|
||||
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
|
||||
integer LM_SETTING_SAVE = 2000;//scripts send messages on this channel to have settings saved to httpdb
|
||||
integer LM_SETTING_RESPONSE = 2002;//the httpdb script will send responses on this channel
|
||||
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
//script specific variables
|
||||
list g_lMenuIDs;//3-strided list of avkey, dialogid, menuname
|
||||
integer g_iMenuStride = 3;
|
||||
|
||||
integer g_iAllAlpha = 1 ; //whole collar hide state
|
||||
list g_lElementTypes; //list of element types
|
||||
list g_lElementTypesUnHideable; //llist of hideable state for g_lElementTypes
|
||||
list g_lAlphaSettings; //list of currently hidden state of g_lElementTypes
|
||||
list g_lElementTypesLower; //lower case names, for chat command access
|
||||
|
||||
list g_lTexturesCard;
|
||||
key g_iTexturesCardId;
|
||||
key g_kNotecardReadRequest;
|
||||
string g_sTexturesNotecardName="~paint";
|
||||
integer g_iTexturesNotecardLine=0;
|
||||
|
||||
//standard OC functions
|
||||
Dialog(key kRCPT, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth, string menuType) {
|
||||
key kID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kRCPT + "|" + sPrompt + "|" + (string)iPage + "|"
|
||||
+ llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kID);
|
||||
|
||||
integer iMenuIndex = llListFindList(g_lMenuIDs, [kRCPT]);
|
||||
list lAddMe = [kRCPT, kID, menuType];
|
||||
if (iMenuIndex == -1) g_lMenuIDs += lAddMe;
|
||||
else g_lMenuIDs = llListReplaceList(g_lMenuIDs, lAddMe, iMenuIndex, iMenuIndex + g_iMenuStride - 1);
|
||||
}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer) {
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else {
|
||||
if (llGetAgentSize(kID)) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
Debug(string sStr){llOwnerSay(llGetScriptName() + ": " + sStr);}
|
||||
|
||||
//menu generators
|
||||
ElementsMenu(key kAv, integer iAuth) {
|
||||
list lButtons;
|
||||
if (g_iAllAlpha) lButtons=["Invisible"];
|
||||
else lButtons=["Visible"];
|
||||
|
||||
integer numElementTypes=llGetListLength(g_lElementTypes);
|
||||
while (numElementTypes--) lButtons += llList2String(g_lElementTypes,numElementTypes);
|
||||
|
||||
Dialog(kAv, "\nSelect an element from the list", lButtons, [UPMENU],0, iAuth, "ElementsMenu");
|
||||
}
|
||||
|
||||
ElementMenu(key kAv, integer iAuth, string sMessage){
|
||||
list lButtons;
|
||||
integer elementIndex=llListFindList(g_lElementTypesLower,[sMessage]);
|
||||
if (! llList2Integer(g_lElementTypesUnHideable,elementIndex)){
|
||||
if (llList2Integer(g_lAlphaSettings,elementIndex)) lButtons=["Invisible"];
|
||||
else lButtons=["Visible"];
|
||||
}
|
||||
|
||||
integer numFields=llGetListLength(g_lTexturesCard);
|
||||
while(numFields){
|
||||
numFields -= 4;
|
||||
string elementType=llToLower(llList2String(g_lTexturesCard,(numFields)+0));
|
||||
if (elementType==llToLower(sMessage)) {
|
||||
lButtons += llList2String(g_lTexturesCard,(numFields)+1);
|
||||
}
|
||||
}
|
||||
|
||||
Dialog(kAv, "\nSelect a style for the '"+llList2String(g_lElementTypes,elementIndex)+"' elements", lButtons, [UPMENU], 0, iAuth, "element "+sMessage);
|
||||
}
|
||||
|
||||
//script specific functions
|
||||
buildElementTypes(){ //builds three lists, one of element names, matching one of nohide status for the element group, and a matching currentlyHidden list
|
||||
g_lElementTypes=[];
|
||||
g_lElementTypesLower=[];
|
||||
g_lElementTypesUnHideable=[];
|
||||
g_lAlphaSettings=[];
|
||||
|
||||
integer iLinkCount = llGetNumberOfPrims();
|
||||
while (iLinkCount-- > 2) {
|
||||
string description=llStringTrim(llList2String(llGetLinkPrimitiveParams(iLinkCount,[PRIM_DESC]),0),STRING_TRIM);
|
||||
list descriptionParts=llParseStringKeepNulls(description,["~"],[]);
|
||||
string type=llList2String(descriptionParts,0);
|
||||
if ( (llListFindList(descriptionParts,["nocolor"])==-1 || llListFindList(descriptionParts,["notexture"])==-1 || llListFindList(descriptionParts,["nohide"])==-1 ) && ( type != "" || type != "(No Description)") ) {
|
||||
integer elementIndex=llListFindList(g_lElementTypes,[type]);
|
||||
if (! ~elementIndex ){ //new element type, make list entries and set element index
|
||||
elementIndex=llGetListLength(g_lElementTypes);
|
||||
g_lElementTypes+=type;
|
||||
g_lElementTypesLower+=llToLower(type);
|
||||
g_lElementTypesUnHideable+=TRUE;
|
||||
g_lAlphaSettings+=TRUE;
|
||||
}
|
||||
if (llList2Integer(g_lElementTypesUnHideable,elementIndex)){ //all of this element type so far have been unhideable. If this one is too, the element stays unhideable
|
||||
if (! ~llListFindList(descriptionParts, ["nohide"])){ //this element is hideable, therefore the element type as a whole is not unhideable
|
||||
g_lElementTypesUnHideable=llListReplaceList(g_lElementTypesUnHideable,[FALSE],elementIndex,elementIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
setElementStyle(string elementType,string sMessage){
|
||||
//Debug("Setting style of "+elementType+" to "+sMessage);
|
||||
integer styleIndex=llListFindList(g_lTexturesCard,[elementType,sMessage]);
|
||||
//Debug("styleIndex "+(string)styleIndex);
|
||||
if (~styleIndex){
|
||||
key textureKey=llList2Key(g_lTexturesCard,styleIndex+2);
|
||||
vector color=(vector)llList2String(g_lTexturesCard,styleIndex+3);
|
||||
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, "texture_"+elementType + "=" + (string)sMessage, "");
|
||||
|
||||
integer numElements = llGetNumberOfPrims();
|
||||
while (numElements-- > 2) {
|
||||
string sDesc = llList2String(llGetLinkPrimitiveParams(numElements, [PRIM_DESC]),0);
|
||||
list descriptionParts = llParseString2List(sDesc, ["~"], []);
|
||||
string thisElementType=llList2String(descriptionParts, 0);
|
||||
if (elementType==llToLower(thisElementType)) { //if this element is the type we're looking for
|
||||
//calculate and set new texture key
|
||||
list params ;
|
||||
if ((key)textureKey){
|
||||
if (! ~llListFindList(descriptionParts,["notexture"])){
|
||||
//Debug("Setting texture to "+(string)textureKey);
|
||||
params += [PRIM_TEXTURE,ALL_SIDES,textureKey, <1.0,1.0,1.0>, <0.0,0.0,0.0>, 0.0] ;
|
||||
}
|
||||
}
|
||||
if (! ~llListFindList(descriptionParts, ["nocolor"]) ){
|
||||
list oldColourParams=llGetLinkPrimitiveParams(numElements,[PRIM_COLOR,ALL_SIDES]); //get current prim params
|
||||
float alpha=llList2Float(oldColourParams,1); //calculate the old alpha to re-apply
|
||||
params += [PRIM_COLOR, ALL_SIDES, color, alpha];
|
||||
}
|
||||
if (llGetListLength(params) > 3) llSetLinkPrimitiveParamsFast(numElements, params);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//Debug("Can't do "+elementType+" to "+sMessage);
|
||||
}
|
||||
}
|
||||
|
||||
ApplyElementAlpha(string element_to_set, integer iAlpha) {
|
||||
integer iLinkCount = llGetNumberOfPrims();
|
||||
//Debug(element_to_set+" "+ (string)iAlpha);
|
||||
while (iLinkCount-- > 2) {
|
||||
string sDesc = llList2String(llGetLinkPrimitiveParams(iLinkCount, [PRIM_DESC]),0);
|
||||
list descriptionParts = llParseString2List(sDesc, ["~"], []);
|
||||
string elementType=llToLower(llList2String(descriptionParts, 0));
|
||||
if (elementType==llToLower(element_to_set) || element_to_set=="all"){ //if this element is the type we want to set, or we're hiding everything
|
||||
//Debug("Changing "+element_to_set);
|
||||
if (! ~llListFindList(descriptionParts, ["nohide"]) || element_to_set=="all"){ //unless the element is set to nohide, or we're hiding everything
|
||||
|
||||
integer elementTypeIndex=llListFindList(g_lElementTypesLower, [elementType]);
|
||||
integer elementTypeVisible; //flag to say if this element type is currently visible
|
||||
if (~ elementTypeIndex){
|
||||
elementTypeVisible=llList2Integer(g_lAlphaSettings,elementTypeIndex);
|
||||
}
|
||||
|
||||
|
||||
if (iAlpha && g_iAllAlpha && (elementTypeVisible || ~llListFindList(descriptionParts, ["nohide"]))){ //its a show, and collar is globally visible, and this element type is set visible
|
||||
//Debug("Global visible, so set this element to visible");
|
||||
llSetLinkAlpha(iLinkCount, (float)iAlpha, ALL_SIDES); //set element visibility
|
||||
} else { //its a hide, or collar is globally hidden, or this item is set to be hidden
|
||||
//Debug("Hide this element");
|
||||
llSetLinkAlpha(iLinkCount, 0.0, ALL_SIDES); //set element visibility
|
||||
}
|
||||
} else {
|
||||
//Debug("Element set to nohide, and we're not setting global visible");
|
||||
}
|
||||
} else {
|
||||
//Debug (elementType + "!="+llToLower(element_to_set));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SetElementAlpha(string element_to_set, integer iAlpha) {
|
||||
element_to_set=llToLower(element_to_set);
|
||||
//Debug("Setting alpha for elements of type "+element_to_set+" to "+(string)iAlpha);
|
||||
//update element in list of settings
|
||||
if (element_to_set == "all"){ //mark entire collar's visibility
|
||||
g_iAllAlpha=iAlpha;
|
||||
} else { //mark element type's visibility
|
||||
integer elementTypeIndex=llListFindList(g_lElementTypesLower, [element_to_set]);
|
||||
g_lAlphaSettings = llListReplaceList(g_lAlphaSettings, [iAlpha], elementTypeIndex, elementTypeIndex);
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, "hide_"+element_to_set + "=" + (string)iAlpha, "");
|
||||
}
|
||||
ApplyElementAlpha(element_to_set,iAlpha);
|
||||
}
|
||||
|
||||
integer UserCommand(integer iAuth, string sStr, key kAv, integer remenu) {
|
||||
if (iAuth > COMMAND_WEARER || iAuth < COMMAND_OWNER) return FALSE; // sanity check
|
||||
|
||||
//Debug(sStr);
|
||||
sStr=llToLower(sStr);
|
||||
list lParams = llParseString2List(sStr, [" "], []);
|
||||
string sCommand = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
|
||||
if (iAuth == COMMAND_WEARER && sStr == "runaway") {
|
||||
SetElementAlpha("all",1);
|
||||
} else if (sStr == "menu paint" || sStr == "menu appearance" || sStr == "paint" || sStr == "appearance") {
|
||||
if (kAv!=g_kWearer && iAuth!=COMMAND_OWNER) {
|
||||
Notify(kAv,"You are not allowed to change the "+CTYPE+"'s appearance.", FALSE);
|
||||
llMessageLinked(LINK_SET, iAuth, "menu " + g_sParentMenu, kAv);
|
||||
}
|
||||
else ElementsMenu(kAv, iAuth);
|
||||
} else if (sCommand == "paint"){
|
||||
if (sValue=="invisible") {
|
||||
SetElementAlpha("all",0);
|
||||
if (remenu) ElementsMenu(kAv,iAuth);
|
||||
} else if (sValue == "visible") {
|
||||
SetElementAlpha("all",1);
|
||||
if (remenu) ElementsMenu(kAv,iAuth);
|
||||
} else if (~llListFindList(g_lElementTypesLower+"all",[sValue])){ //sValue is name of an element or "all"
|
||||
string sValue2=llToLower(llDumpList2String(llDeleteSubList(lParams, 0, 1)," "));
|
||||
if (sValue2==""){ //if they just name an element with no texture, then give them the menu
|
||||
ElementMenu(kAv,iAuth, sValue);
|
||||
} else { //sValue2 == styleName, "show", "hide" sValue == elementType
|
||||
if (sValue2 == "visible"){
|
||||
SetElementAlpha(sValue,1);
|
||||
if (remenu) ElementMenu(kAv,iAuth, sValue);
|
||||
} else if (sValue2 == "invisible"){
|
||||
SetElementAlpha(sValue,0);
|
||||
if (remenu) ElementMenu(kAv,iAuth, sValue);
|
||||
} else { //sValue2 == styleName
|
||||
//Debug("Got texture "+sValue2);
|
||||
setElementStyle(sValue,sValue2);
|
||||
if (remenu) ElementMenu(kAv,iAuth, sValue);
|
||||
}
|
||||
}
|
||||
} else { //not the name of an element, or show, or hide, or all
|
||||
Notify(kAv,"Unrecognised command: "+sValue+" not in '"+llDumpList2String(g_lElementTypesLower,",")+"'",FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE ;
|
||||
}
|
||||
|
||||
default {
|
||||
state_entry() {
|
||||
g_kWearer = llGetOwner();
|
||||
|
||||
g_iAllAlpha=0;
|
||||
if (llGetAlpha(ALL_SIDES)>0) g_iAllAlpha=1;
|
||||
|
||||
llMessageLinked(LINK_SET, MENUNAME_RESPONSE, "Appearance", "");
|
||||
|
||||
buildElementTypes();
|
||||
if (llGetInventoryKey(g_sTexturesNotecardName)) {
|
||||
g_iTexturesCardId = llGetInventoryKey(g_sTexturesNotecardName);
|
||||
g_iTexturesNotecardLine=0;
|
||||
g_kNotecardReadRequest=llGetNotecardLine(g_sTexturesNotecardName,0);
|
||||
}
|
||||
}
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID) {
|
||||
if (UserCommand(iNum, sStr, kID, FALSE)) return;
|
||||
if (iNum == LM_SETTING_RESPONSE) {
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sGroupToken = llList2String(lParams, 0);
|
||||
|
||||
string sGroup = llList2String(llParseString2List(sGroupToken,["_"],[]),0);
|
||||
string sToken = llList2String(llParseString2List(sGroupToken,["_"],[]),1);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
|
||||
if (sToken == "CType") {
|
||||
CTYPE = sValue;
|
||||
} else if (sGroup == "invisible") {
|
||||
SetElementAlpha(sToken, (integer)sValue);
|
||||
} else if (sGroup == "colour") {
|
||||
setElementStyle(sToken, sValue);
|
||||
} else if (sGroup == "texture") {
|
||||
setElementStyle(sToken, sValue);
|
||||
}
|
||||
} else if (iNum == MENUNAME_REQUEST && sStr == g_sParentMenu) {
|
||||
llMessageLinked(LINK_SET, MENUNAME_RESPONSE, g_sParentMenu + "|" + g_sSubMenu, "");
|
||||
} else if (iNum == LM_SETTING_SAVE) {
|
||||
//if we see a hide for something saved that we think is not currently hidden, then hide it, and store the new setting locally
|
||||
if (llSubStringIndex(sStr,"hide_")==0){
|
||||
list lSettingParts=llParseString2List(llGetSubString(sStr,5,-1),["="],[]);
|
||||
string element_to_set=llToLower(llList2String(lSettingParts,0));
|
||||
integer iAlpha=llList2Integer(lSettingParts,1);
|
||||
integer elementTypeIndex=llListFindList(g_lElementTypesLower,[element_to_set]);
|
||||
if (~elementTypeIndex){ //if its an element we recognise
|
||||
if (llList2Integer(g_lAlphaSettings,elementTypeIndex)!=iAlpha){ //if the setting is not what we already know
|
||||
//Debug("setting "+element_to_set+" to "+(string)iAlpha);
|
||||
g_lAlphaSettings = llListReplaceList(g_lAlphaSettings, [iAlpha], elementTypeIndex, elementTypeIndex);
|
||||
ApplyElementAlpha(element_to_set,iAlpha); //apply new setting to collar prims
|
||||
//Debug(element_to_set+" now set to "+(string)llList2Integer(g_lAlphaSettings,elementTypeIndex));
|
||||
} else {
|
||||
//Debug(element_to_set+" already set to "+(string)iAlpha);
|
||||
}
|
||||
} else {
|
||||
//Debug("unknown element"+element_to_set);
|
||||
}
|
||||
} else {
|
||||
//Debug("something saved setting "+sStr);
|
||||
}
|
||||
} else if (iNum == DIALOG_RESPONSE) {
|
||||
integer iMenuIndex = llListFindList(g_lMenuIDs, [kID]);
|
||||
if (~iMenuIndex) { //got a menu response meant for us. pull out values
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
string sMenuType = llList2String(g_lMenuIDs, iMenuIndex + 1);
|
||||
|
||||
//remove stride from g_lMenuIDs
|
||||
g_lMenuIDs = llDeleteSubList(g_lMenuIDs, iMenuIndex - 1, iMenuIndex - 2 + g_iMenuStride);
|
||||
|
||||
if (sMenuType == "ElementsMenu") { //lists all elements in the collar
|
||||
if (sMessage == UPMENU) { //give kID the parent menu
|
||||
llMessageLinked(LINK_SET, iAuth, "menu " + g_sParentMenu, kAv);
|
||||
} else UserCommand(iAuth,"paint "+sMessage, kAv, TRUE);
|
||||
} else if (llSubStringIndex(sMenuType,"element ")==0){ //lists show/hide/themes for this element
|
||||
string elementType=llGetSubString(sMenuType,8,-1);
|
||||
if (sMessage == UPMENU){
|
||||
ElementsMenu(kAv,iAuth);
|
||||
} else UserCommand(iAuth,"paint "+elementType+" "+sMessage, kAv, TRUE);
|
||||
}
|
||||
}
|
||||
} else if (iNum == DIALOG_TIMEOUT) {
|
||||
integer iMenuIndex = llListFindList(g_lMenuIDs, [kID]);
|
||||
if (~iMenuIndex) { //remove stride from g_lMenuIDs
|
||||
g_lMenuIDs = llDeleteSubList(g_lMenuIDs, iMenuIndex - 1, iMenuIndex - 2 + g_iMenuStride);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dataserver(key id, string data){
|
||||
if (id == g_kNotecardReadRequest){
|
||||
if (data != EOF){
|
||||
data = llStringTrim(data,STRING_TRIM);
|
||||
if (data != ""){
|
||||
list parts=llParseStringKeepNulls(data,["~",",","<",">"],[]);
|
||||
string element=llList2String(parts,0);
|
||||
string name=llList2String(parts,1);
|
||||
key texKey=llList2Key(parts,2);
|
||||
|
||||
vector colour;
|
||||
if (llGetListLength(parts) < 6){
|
||||
colour=<1.0,1.0,1.0>;
|
||||
} else {
|
||||
colour=(vector)("<"+llList2String(parts,4)+","+llList2String(parts,5)+","+llList2String(parts,6)+">");
|
||||
}
|
||||
|
||||
g_lTexturesCard+=[llToLower(element),llToLower(name),texKey,colour];
|
||||
|
||||
}
|
||||
g_kNotecardReadRequest=llGetNotecardLine(g_sTexturesNotecardName,++g_iTexturesNotecardLine);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
changed (integer change){
|
||||
if (change & CHANGED_INVENTORY){
|
||||
if (g_iTexturesCardId != llGetInventoryKey(g_sTexturesNotecardName)){
|
||||
//Debug("Reading textures card");
|
||||
g_iTexturesCardId = llGetInventoryKey(g_sTexturesNotecardName);
|
||||
g_lTexturesCard=[];
|
||||
g_iTexturesNotecardLine=0;
|
||||
g_kNotecardReadRequest=llGetNotecardLine(g_sTexturesNotecardName,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,342 +0,0 @@
|
||||
//OpenCollar - shocker
|
||||
//Licensed under the GPLv2, with the additional requirement that these scripts remain "full perms" in Second Life. See "OpenCollar License" for details.
|
||||
|
||||
string g_sSubMenu = "Shocker";
|
||||
string g_sParentMenu = "Apps";
|
||||
|
||||
//MESSAGE MAP
|
||||
integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
integer COMMAND_SAFEWORD = 510; // new for safeword
|
||||
|
||||
//integer POPUP_HELP = 1001;
|
||||
|
||||
integer LM_SETTING_SAVE = 2000;//scripts send messages on this channel to have settings saved to httpdb
|
||||
//str must be in form of "token=value"
|
||||
//integer LM_SETTING_REQUEST = 2001;//when startup, scripts send requests for settings on this channel
|
||||
integer LM_SETTING_RESPONSE = 2002;//the httpdb script will send responses on this channel
|
||||
integer LM_SETTING_DELETE = 2003;//delete token from DB
|
||||
//integer LM_SETTING_EMPTY = 2004;//sent by httpdb script when a token has no value in the db
|
||||
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
|
||||
//integer RLV_CMD = 6000;
|
||||
|
||||
integer ANIM_START = 7000;
|
||||
integer ANIM_STOP = 7001;
|
||||
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
// menu buttons
|
||||
string UPMENU = "BACK";
|
||||
string HELP = "Quick Help";
|
||||
string DEFAULT = "Default" ;
|
||||
|
||||
list g_lButtons = ["1 sec.","3 sec.","5 sec.","10 sec.","15 sec.","30 sec.","1 min.","Stop"];
|
||||
list g_lTime = [1,3,5,10,15,30,60,0];
|
||||
|
||||
string g_sSetAnim = "Set Anim";
|
||||
string g_sSetSound = "Set Sound";
|
||||
|
||||
string g_sDefaultAnim = "~shock";
|
||||
//string g_sDefaultSound = "011ef7f4-40e8-28fe-4ea5-f2fda0883707";
|
||||
string g_sDefaultSound = "4546cdc8-8682-6763-7d52-2c1e67e8257d";
|
||||
string g_sNoSound = "silent" ;
|
||||
|
||||
string g_sShockAnim ;
|
||||
string g_sShockSound;
|
||||
|
||||
string CTYPE = "collar";
|
||||
string WEARERNAME;
|
||||
string g_sScript = "shocker_";
|
||||
|
||||
key g_kWearer;
|
||||
key g_kDialog;
|
||||
key g_kAnimDialog;
|
||||
key g_kSoundDialog;
|
||||
|
||||
integer g_iShock = FALSE ;
|
||||
|
||||
/*
|
||||
integer g_iProfiled;
|
||||
Debug(string sStr) {
|
||||
//if you delete the first // from the preceeding and following lines,
|
||||
// profiling is off, debug is off, and the compiler will remind you to
|
||||
// remove the debug calls from the code, we're back to production mode
|
||||
if (!g_iProfiled){
|
||||
g_iProfiled=1;
|
||||
llScriptProfiler(1);
|
||||
}
|
||||
llOwnerSay(llGetScriptName() + "(min free:"+(string)(llGetMemoryLimit()-llGetSPMaxMemory())+")["+(string)llGetFreeMemory()+"] :\n" + sStr);
|
||||
}
|
||||
*/
|
||||
|
||||
key Dialog(key kRCPT, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth)
|
||||
{
|
||||
key kID = llGenerateKey();
|
||||
llMessageLinked(LINK_THIS, DIALOG, (string)kRCPT + "|" + sPrompt + "|" + (string)iPage + "|"
|
||||
+ llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kID);
|
||||
return kID;
|
||||
}
|
||||
|
||||
DialogShocker(key kID, integer iAuth)
|
||||
{
|
||||
string sText = "Shocker!\n Your pet is naughty? Just punish him/her.\n";
|
||||
sText += "- Chose time to start punishment.\n" ;
|
||||
sText += "- 'Quick Help' will give you a brief help how to use shocker.\n";
|
||||
g_kDialog = Dialog(kID, sText, g_lButtons, [HELP,g_sSetAnim, g_sSetSound,UPMENU],0,iAuth);
|
||||
}
|
||||
|
||||
DialogSelectAnim(key kID, integer iAuth)
|
||||
{
|
||||
list lAnimList = [DEFAULT];
|
||||
integer iMax = llGetInventoryNumber(INVENTORY_ANIMATION);
|
||||
integer i;
|
||||
string sName;
|
||||
for (i=0;i<iMax;i++)
|
||||
{
|
||||
sName=llGetInventoryName(INVENTORY_ANIMATION, i);
|
||||
//check here if the anim start with ~ or for some reason does not get a name returned (spares to check that all again in the menu ;)
|
||||
if (sName != "" && llGetSubString(sName, 0, 0) != "~") lAnimList += [sName];
|
||||
}
|
||||
string sText = "Current punishment animation is: "+g_sShockAnim+"\n\n";
|
||||
sText += "Select a new animation to use as a punishment.\n\n";
|
||||
g_kAnimDialog = Dialog(kID, sText, lAnimList, [UPMENU],0, iAuth);
|
||||
}
|
||||
|
||||
|
||||
DialogSelectSound(key kID, integer iAuth)
|
||||
{
|
||||
list lSoundList = [DEFAULT];
|
||||
integer iMax = llGetInventoryNumber(INVENTORY_SOUND);
|
||||
integer i;
|
||||
string sName;
|
||||
for (i=0;i<iMax;i++)
|
||||
{
|
||||
sName=llGetInventoryName(INVENTORY_SOUND, i);
|
||||
//check here if the anim start with ~ or for some reason does not get a name returned (spares to check that all again in the menu ;)
|
||||
if (sName != "" && llGetSubString(sName, 0, 0) != "~") lSoundList += [sName];
|
||||
}
|
||||
lSoundList+=[g_sNoSound];
|
||||
string sText = "Current sound is: "+g_sShockSound+"\n\n";
|
||||
sText += "Select a new sound to use.\n\n";
|
||||
g_kSoundDialog = Dialog(kID, sText, lSoundList, [UPMENU],0, iAuth);
|
||||
}
|
||||
|
||||
DialogHelp(key kID, integer iAuth)
|
||||
{
|
||||
string sMessage = "Usage of Shocker.\n";
|
||||
sMessage += "Put in front of each command your subs prefix then use them as followed:\n";
|
||||
sMessage += "shock <seconds> where <seconds> is time in seconds to punish you pet.\n";
|
||||
sMessage += "shock 0/stop/off , is stop to punish you pet immediately.\n";
|
||||
sMessage += "shockanim <anim name> , make sure the animation is inside the collar.\n";
|
||||
sMessage += "shocksound <sound name> , make sure the sound is inside the collar.";
|
||||
|
||||
g_kDialog = Dialog(kID, sMessage, ["Ok"], [], 0, iAuth);
|
||||
Notify(kID, sMessage, FALSE) ;
|
||||
}
|
||||
|
||||
string right(string sSrc, string sDivider)
|
||||
{
|
||||
integer iIndex = llSubStringIndex( sSrc, sDivider );
|
||||
if(~iIndex) return llDeleteSubString( sSrc, 0, iIndex + llStringLength(sDivider) - 1);
|
||||
return sSrc;
|
||||
}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer)
|
||||
{
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else
|
||||
{
|
||||
if (llGetAgentSize(kID)) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
Shock(integer time, key kID)
|
||||
{
|
||||
if (time > 0)
|
||||
{
|
||||
Notify(kID, WEARERNAME+" now shocked for "+(string)time+" seconds.", TRUE);
|
||||
if (g_sShockSound != g_sNoSound)
|
||||
{
|
||||
if (g_sShockSound == DEFAULT) llLoopSound( g_sDefaultSound, 1.0 );
|
||||
else llLoopSound( g_sShockSound, 1.0 );
|
||||
}
|
||||
g_iShock = TRUE ;
|
||||
llMessageLinked(LINK_THIS, ANIM_START, g_sShockAnim, "");
|
||||
llResetTime();
|
||||
llSetTimerEvent(time);
|
||||
}
|
||||
else if (g_iShock == TRUE)
|
||||
{
|
||||
Notify(kID, "shocker off.", TRUE);
|
||||
llSetTimerEvent(0);
|
||||
Stop();
|
||||
}
|
||||
}
|
||||
|
||||
Stop()
|
||||
{
|
||||
if (g_iShock)
|
||||
{
|
||||
if (g_sShockSound != g_sNoSound) llStopSound( );
|
||||
llMessageLinked(LINK_THIS, ANIM_STOP, g_sShockAnim, "");
|
||||
g_iShock = FALSE ;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
integer UserCommand(integer iAuth, string sStr, key kID) // here iNum: auth value, sStr: user command, kID: avatar id
|
||||
{
|
||||
if (iAuth > COMMAND_WEARER || iAuth < COMMAND_OWNER) return FALSE; // sanity check
|
||||
|
||||
if (sStr == "menu "+g_sSubMenu || sStr == "shocker")
|
||||
{
|
||||
if (iAuth == COMMAND_OWNER) DialogShocker(kID, iAuth);
|
||||
else Notify(kID, "Sorry, only the Owner can punish pet.",FALSE);
|
||||
return TRUE;
|
||||
}
|
||||
else if (iAuth == COMMAND_OWNER)
|
||||
{
|
||||
list lParams = llParseString2List(sStr, [" "], []);
|
||||
string sCommand = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
|
||||
if (sStr == "shocker help") DialogHelp(kID, iAuth);
|
||||
else if (sCommand == "shock")
|
||||
{
|
||||
if (sValue == "off" || sValue == "stop") Shock(0,kID);
|
||||
else Shock((integer)sValue,kID);
|
||||
}
|
||||
else if (sCommand == "shockanim")
|
||||
{
|
||||
//Get all text after the command, strip spaces from start and end
|
||||
string sAnim = right(sStr, sCommand);
|
||||
sAnim = llStringTrim(sAnim, STRING_TRIM);
|
||||
if (sAnim == DEFAULT) sAnim = g_sDefaultAnim;
|
||||
if (llGetInventoryType(sAnim) == INVENTORY_ANIMATION)
|
||||
{
|
||||
Stop();
|
||||
g_sShockAnim = sAnim;
|
||||
llMessageLinked(LINK_THIS, LM_SETTING_SAVE, g_sScript + "anim=" + g_sShockAnim, "");
|
||||
Notify(kID, "Punishment anim for shocker is now '" + g_sShockAnim + "'.",FALSE);
|
||||
}
|
||||
else Notify(kID, sAnim + " is not a valid animation name.",FALSE);
|
||||
}
|
||||
else if (sCommand == "shocksound")
|
||||
{
|
||||
//Get all text after the command, strip spaces from start and end
|
||||
string sSound = right(sStr, sCommand);
|
||||
sSound = llStringTrim(sSound, STRING_TRIM);
|
||||
if (sSound == g_sNoSound) Notify(kID, "Punishment will be silently.",FALSE);
|
||||
else if (llGetInventoryType(sSound) != INVENTORY_SOUND)
|
||||
{
|
||||
Notify(kID, sSound + " is not a valid sound name.",FALSE);
|
||||
sSound = DEFAULT ;
|
||||
}
|
||||
g_sShockSound = sSound;
|
||||
llMessageLinked(LINK_THIS,LM_SETTING_SAVE,g_sScript+"sound="+g_sShockSound, "");
|
||||
Notify(kID, "Punishment sound for shocker is now '"+g_sShockSound+"'.",FALSE);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
string GetName(key uuid)
|
||||
{
|
||||
string name = llGetDisplayName(uuid);
|
||||
if (name == "???" || name == "") name = llKey2Name(uuid);
|
||||
return name;
|
||||
}
|
||||
|
||||
default
|
||||
{
|
||||
on_rez(integer iParam)
|
||||
{
|
||||
llResetScript();
|
||||
}
|
||||
|
||||
state_entry()
|
||||
{
|
||||
g_kWearer = llGetOwner();
|
||||
WEARERNAME = GetName(g_kWearer);
|
||||
g_sScript = "shocker_";
|
||||
g_sShockAnim = g_sDefaultAnim;
|
||||
g_sShockSound = DEFAULT ;
|
||||
}
|
||||
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID)
|
||||
{
|
||||
if (UserCommand(iNum, sStr, kID)) return;
|
||||
else if (iNum == LM_SETTING_DELETE && sStr == "Global_WearerName")
|
||||
{
|
||||
WEARERNAME = GetName(g_kWearer);
|
||||
}
|
||||
else if (iNum == LM_SETTING_RESPONSE)
|
||||
{
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
if (sToken == g_sScript+"anim") g_sShockAnim = sValue;
|
||||
else if (sToken == g_sScript+"sound") g_sShockSound = sValue;
|
||||
else if (sToken == "Global_CType") CTYPE = sValue;
|
||||
else if (sToken == "Global_WearerName") WEARERNAME = sValue;
|
||||
}
|
||||
else if (iNum == COMMAND_SAFEWORD) Shock(0,kID);
|
||||
else if (iNum == MENUNAME_REQUEST && sStr == g_sParentMenu)
|
||||
{
|
||||
llMessageLinked(LINK_THIS, MENUNAME_RESPONSE, g_sParentMenu + "|" + g_sSubMenu, "");
|
||||
}
|
||||
else if (iNum == DIALOG_RESPONSE && (kID==g_kDialog || kID==g_kAnimDialog || kID==g_kSoundDialog))
|
||||
{
|
||||
list lMenuParams = llParseString2List(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0);
|
||||
string sMessage = llList2String(lMenuParams, 1);
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2);
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3);
|
||||
if (kID == g_kDialog)
|
||||
{
|
||||
if (sMessage == "Ok") DialogShocker(kAv,iAuth);
|
||||
else if (sMessage == g_sSetAnim) DialogSelectAnim(kAv,iAuth);
|
||||
else if (sMessage == g_sSetSound) DialogSelectSound(kAv,iAuth);
|
||||
else if (sMessage == UPMENU) llMessageLinked(LINK_THIS, iAuth, "menu "+g_sParentMenu, kAv);
|
||||
else if (sMessage == HELP) DialogHelp(kAv,iAuth);
|
||||
else
|
||||
{
|
||||
integer index = llListFindList(g_lButtons, [sMessage]);
|
||||
if (index != -1)
|
||||
{
|
||||
integer shocktime = llList2Integer(g_lTime,index);
|
||||
Shock(shocktime,kAv);
|
||||
DialogShocker(kAv,iAuth);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (kID == g_kAnimDialog)
|
||||
{
|
||||
if (sMessage != "") UserCommand(iAuth,"shockanim " + sMessage,kAv);
|
||||
DialogShocker(kAv,iAuth);
|
||||
}
|
||||
else if (kID == g_kSoundDialog)
|
||||
{
|
||||
if (sMessage != "") UserCommand(iAuth,"shocksound " + sMessage,kAv);
|
||||
DialogShocker(kAv,iAuth);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
timer()
|
||||
{
|
||||
llSetTimerEvent(0);
|
||||
Stop();
|
||||
}
|
||||
}
|
||||
@@ -1,423 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// OpenCollar - takeme //
|
||||
// version 3.980 //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// Licensed under the GPLv2 with additional requirements specific to Second Life® //
|
||||
// and other virtual metaverse environments. -> www.opencollar.at/license.html //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// © 2008 - 2014 Individual Contributors and OpenCollar - submission set free™ //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
// github.com/OpenCollar/OpenCollarUpdater //
|
||||
// ------------------------------------------------------------------------------ //
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
string SUBMENU_BUTTON = "TakeMe"; // Name of the submenu
|
||||
string COLLAR_PARENT_MENU = "Apps"; // name of the menu, where the menu plugs in, should be usually Addons. Please do not use the mainmenu anymore
|
||||
|
||||
key g_kMenuID; // menu handler
|
||||
key g_kWearer; // key of the current wearer to reset only on owner changes
|
||||
key g_kClicker; //capture clicker IDs
|
||||
string g_sScript ="TakeMe_"; // part of script name used for settings
|
||||
string CTYPE = "collar"; // designer can set in notecard to appropriate word for their item
|
||||
list g_lTempOwners;
|
||||
integer g_iLimitDistance = 3; //meters away from the wearer before they can be captured
|
||||
integer g_iTakeMeForce = FALSE;
|
||||
integer g_iCaptureOn=FALSE;
|
||||
list g_lRequests; //list of requests coming in
|
||||
list g_lRequests_Names; //And their names
|
||||
string WEARERNAME;
|
||||
|
||||
string TICKED = "☒ ";
|
||||
string UNTICKED = "☐ ";
|
||||
|
||||
// OpenCollar MESSAGE MAP
|
||||
|
||||
// messages for authenticating users
|
||||
// integer COMMAND_NOAUTH = 0; // for reference, but should usually not be in use inside plugins
|
||||
//integer COMMAND_NOAUTH = 0;
|
||||
integer COMMAND_OWNER = 500;
|
||||
integer COMMAND_SECOWNER = 501;
|
||||
integer COMMAND_GROUP = 502;
|
||||
integer COMMAND_WEARER = 503;
|
||||
integer COMMAND_EVERYONE = 504;
|
||||
integer COMMAND_RLV_RELAY = 507;
|
||||
integer COMMAND_SAFEWORD = 510;
|
||||
integer COMMAND_RELAY_SAFEWORD = 511;
|
||||
integer COMMAND_BLACKLIST = 520;
|
||||
// added for timer so when the sub is locked out they can use postions
|
||||
integer COMMAND_WEARERLOCKEDOUT = 521;
|
||||
|
||||
integer ATTACHMENT_REQUEST = 600;
|
||||
integer ATTACHMENT_RESPONSE = 601;
|
||||
integer ATTACHMENT_FORWARD = 610;
|
||||
|
||||
integer WEARERLOCKOUT = 620; // turns on and off wearer lockout
|
||||
|
||||
// integer SEND_IM = 1000; deprecated. each script should send its own IMs now.
|
||||
// This is to reduce even the tiny bit of lag caused by having IM slave scripts
|
||||
integer POPUP_HELP = 1001;
|
||||
|
||||
// messages for storing and retrieving values from settings store
|
||||
integer LM_SETTING_SAVE = 2000; // scripts send messages on this channel to have settings saved to settings store
|
||||
// str must be in form of "token=value"
|
||||
integer LM_SETTING_REQUEST = 2001; // when startup, scripts send requests for settings on this channel
|
||||
integer LM_SETTING_RESPONSE = 2002; // the settings script will send responses on this channel
|
||||
integer LM_SETTING_DELETE = 2003; // delete token from settings store
|
||||
integer LM_SETTING_EMPTY = 2004; // sent by settings script when a token has no value in the settings store
|
||||
integer LM_SETTING_REQUEST_NOCACHE = 2005;
|
||||
|
||||
// messages for creating OC menu structure
|
||||
integer MENUNAME_REQUEST = 3000;
|
||||
integer MENUNAME_RESPONSE = 3001;
|
||||
integer MENUNAME_REMOVE = 3003;
|
||||
|
||||
// messages for RLV commands
|
||||
integer RLV_CMD = 6000;
|
||||
integer RLV_REFRESH = 6001; // RLV plugins should reinstate their restrictions upon receiving this message.
|
||||
integer RLV_CLEAR = 6002; // RLV plugins should clear their restriction lists upon receiving this message.
|
||||
integer RLV_VERSION = 6003; // RLV Plugins can recieve the used rl viewer version upon receiving this message..
|
||||
integer RLV_OFF = 6100; // send to inform plugins that RLV is disabled now, no message or key needed
|
||||
integer RLV_ON = 6101; // send to inform plugins that RLV is enabled now, no message or key needed
|
||||
integer RLV_QUERY = 6102; //query from a script asking if RLV is currently functioning
|
||||
integer RLV_RESPONSE = 6103; //reply to RLV_QUERY, with "ON" or "OFF" as the message
|
||||
|
||||
// messages for poses and couple anims
|
||||
integer ANIM_START = 7000; // send this with the name of an anim in the string part of the message to play the anim
|
||||
integer ANIM_STOP = 7001; // send this with the name of an anim in the string part of the message to stop the anim
|
||||
integer CPLANIM_PERMREQUEST = 7002; // id should be av's key, str should be cmd name "hug", "kiss", etc
|
||||
integer CPLANIM_PERMRESPONSE = 7003; // str should be "1" for got perms or "0" for not. id should be av's key
|
||||
integer CPLANIM_START = 7004; // str should be valid anim name. id should be av
|
||||
integer CPLANIM_STOP = 7005; // str should be valid anim name. id should be av
|
||||
|
||||
// messages to the dialog helper
|
||||
integer DIALOG = -9000;
|
||||
integer DIALOG_RESPONSE = -9001;
|
||||
integer DIALOG_TIMEOUT = -9002;
|
||||
|
||||
integer FIND_AGENT = -9005; // to look for agent(s) in region with a (optional) search string
|
||||
key REQUEST_KEY;
|
||||
|
||||
integer TIMER_EVENT = -10000; // str = "start" or "end". For start, either "online" or "realtime".
|
||||
|
||||
integer UPDATE = 10001; // for child prim scripts (currently none in 3.8, thanks to LSL new functions)
|
||||
|
||||
// For other things that want to manage showing/hiding keys.
|
||||
integer KEY_VISIBLE = -10100;
|
||||
integer KEY_INVISIBLE = -10100;
|
||||
|
||||
integer COMMAND_PARTICLE = 20000;
|
||||
integer COMMAND_LEASH_SENSOR = 20001;
|
||||
|
||||
//chain systems
|
||||
integer LOCKMEISTER = -8888;
|
||||
integer LOCKGUARD = -9119;
|
||||
|
||||
//rlv relay chan
|
||||
integer RLV_RELAY_CHANNEL = -1812221819;
|
||||
|
||||
// menu option to go one step back in menustructure
|
||||
string UPMENU = "BACK"; // when your menu hears this, give the parent menu
|
||||
|
||||
|
||||
//Debug(string sMsg) { llOwnerSay(llGetScriptName() + " [DEBUG]: " + sMsg);}
|
||||
|
||||
Notify(key kID, string sMsg, integer iAlsoNotifyWearer){
|
||||
if (kID == g_kWearer) llOwnerSay(sMsg);
|
||||
else {
|
||||
if (llGetAgentSize(kID)) llRegionSayTo(kID,0,sMsg);
|
||||
else llInstantMessage(kID, sMsg);
|
||||
if (iAlsoNotifyWearer) llOwnerSay(sMsg);
|
||||
}
|
||||
}
|
||||
|
||||
key Dialog(key kRCPT, string sPrompt, list lChoices, list lUtilityButtons, integer iPage, integer iAuth)
|
||||
{
|
||||
key kID = llGenerateKey();
|
||||
llMessageLinked(LINK_SET, DIALOG, (string)kRCPT + "|" + sPrompt + "|" + (string)iPage + "|"
|
||||
+ llDumpList2String(lChoices, "`") + "|" + llDumpList2String(lUtilityButtons, "`") + "|" + (string)iAuth, kID);
|
||||
return kID;
|
||||
}
|
||||
|
||||
DoMenu(key keyID, integer iAuth) {
|
||||
string sPrompt = "\n"+SUBMENU_BUTTON;
|
||||
list lMyButtons;
|
||||
if (g_iCaptureOn){
|
||||
sPrompt += "ON";
|
||||
lMyButtons += "OFF";
|
||||
} else {
|
||||
lMyButtons += "ON";
|
||||
sPrompt += "OFF";
|
||||
}
|
||||
if (g_iLimitDistance) {
|
||||
lMyButtons += TICKED+"LimitDistance";
|
||||
} else {
|
||||
lMyButtons += UNTICKED+"LimitDistance";
|
||||
}
|
||||
if (g_iTakeMeForce) {
|
||||
lMyButtons += TICKED+"ForceTake";
|
||||
} else {
|
||||
lMyButtons += UNTICKED+"ForceTake";
|
||||
}
|
||||
if (llGetListLength(g_lRequests) > 0) {
|
||||
sPrompt += "\nThere are "+ (string)llGetListLength(g_lRequests) +" requests for capture...\n\n";
|
||||
}
|
||||
if (llGetListLength(g_lTempOwners) > 0) {
|
||||
sPrompt += "\nCurrent Temp Owners: ";
|
||||
integer i;
|
||||
integer x = llGetListLength(g_lTempOwners);
|
||||
for (i=1;i<=x;++i){
|
||||
sPrompt+=llList2String(g_lTempOwners,i) + ", ";
|
||||
++i;
|
||||
}
|
||||
lMyButtons += ["Reset"];
|
||||
}
|
||||
|
||||
//fill in your button list and additional prompt here
|
||||
|
||||
if (llGetListLength(g_lRequests) > 0) {
|
||||
sPrompt += "\n"+llList2String(g_lRequests_Names,0) +" wants to capture you...";
|
||||
lMyButtons += ["Allow","Reject"];
|
||||
}
|
||||
|
||||
// and dispay the menu
|
||||
g_kMenuID = Dialog(keyID, sPrompt, lMyButtons, [UPMENU], 0, iAuth);
|
||||
}
|
||||
|
||||
DoMenuAlt(key keyID, integer iAuth) { //This is for force (outsider) capture dialogs
|
||||
string sPrompt = "\n"+SUBMENU_BUTTON;
|
||||
sPrompt += "\nDo you want to capture "+WEARERNAME+"?";
|
||||
list lMyButtons;
|
||||
lMyButtons += ["Yes","No"];
|
||||
// and dispay the menu
|
||||
g_kMenuID = Dialog(keyID, sPrompt, lMyButtons, [], 0, iAuth);
|
||||
}
|
||||
|
||||
integer UserCommand(integer iNum, string sStr, key kID, integer remenu) {
|
||||
sStr=llToLower(sStr);
|
||||
if (!(iNum >= COMMAND_OWNER && iNum <= COMMAND_WEARER)) {
|
||||
return FALSE;
|
||||
} else if (sStr == "takeme" || sStr == "menu takeme") {
|
||||
// an authorized user requested the plugin menu by typing the menus chat command
|
||||
DoMenu(kID, iNum);
|
||||
} else if (sStr == "takeme reset" ) {
|
||||
Notify(kID,"Temp owners list has been purged.",TRUE);
|
||||
g_lTempOwners=[];
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE, "auth_tempowner", "");
|
||||
llMessageLinked(LINK_SET, LM_SETTING_REQUEST, "auth_tempowner", "");
|
||||
} else if (sStr == "takeme on") {
|
||||
Notify(kID,"takeme game is ON!",TRUE);
|
||||
g_iCaptureOn=TRUE;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE,g_sScript+ "takeme=1", "");
|
||||
} else if (sStr == "takeme off") {
|
||||
Notify(kID,"takeme game is OFF!",TRUE);
|
||||
g_iCaptureOn=FALSE;
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE,g_sScript+ "takeme", "");
|
||||
} else if (sStr == "takeme limitdistance off") {
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE,g_sScript+ "limitdistance", "");
|
||||
g_iLimitDistance = FALSE;
|
||||
Notify(kID,"TakeMe limit distance disabled!",TRUE);
|
||||
} else if (sStr == "takeme limitdistance on") {
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE,g_sScript+ "limitdistance=3", "");
|
||||
g_iLimitDistance = 3;
|
||||
Notify(kID,"TakeMe limit distance now set to 3 meters!",TRUE);
|
||||
} else if (llSubStringIndex(sStr,"takeme limitdistance ") >= 0) {
|
||||
integer iTest = llList2Integer(llParseString2List(sStr,[" "],[]),2);
|
||||
if (iTest > 0) { //lets make sure we have a real number here (zero is not valid)
|
||||
Notify(kID,"TakeMe limit distance now set to "+(string)iTest+" meters!",TRUE);
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE,g_sScript+ "limitdistance="+(string)iTest, "");
|
||||
g_iLimitDistance = iTest;
|
||||
}
|
||||
else {
|
||||
Notify(kID,"<prefix>takeme limitdistance <distance in meters>",TRUE);
|
||||
}
|
||||
} else if (sStr == "takeme force on") {
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE,g_sScript+ "force=1", "");
|
||||
g_iTakeMeForce = TRUE;
|
||||
Notify(kID,"TakeMe will allow you to be forcefully captured!",TRUE);
|
||||
} else if (sStr == "takeme force off") {
|
||||
llMessageLinked(LINK_SET, LM_SETTING_DELETE,g_sScript+ "force", "");
|
||||
g_iTakeMeForce = FALSE;
|
||||
Notify(kID,"TakeMe will prompt you for all capture requests!",TRUE);
|
||||
}
|
||||
|
||||
if (remenu) {
|
||||
DoMenu(kID, iNum);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
default {
|
||||
|
||||
state_entry()
|
||||
{
|
||||
g_sScript = llStringTrim(llList2String(llParseString2List(llGetScriptName(), ["-"], []), 1), STRING_TRIM) + "_";
|
||||
g_kWearer = llGetOwner();
|
||||
WEARERNAME = llGetDisplayName(g_kWearer);
|
||||
if (WEARERNAME == "???" || WEARERNAME == "") WEARERNAME = llKey2Name(g_kWearer); //sanity check, fallback if necessary
|
||||
llMessageLinked(LINK_SET, LM_SETTING_REQUEST, "auth", "tempowner");
|
||||
}
|
||||
|
||||
on_rez(integer iParam) {
|
||||
if (llGetOwner()!=g_kWearer) llResetScript();
|
||||
}
|
||||
touch_start(integer num_detected)
|
||||
{
|
||||
key kToucher = llDetectedKey(0);
|
||||
if (kToucher == llGetOwner()) {return;}
|
||||
if (g_iLimitDistance) {
|
||||
float fDistance=llVecDist(llDetectedPos(0),llGetPos());
|
||||
if (fDistance > (float)g_iLimitDistance) {
|
||||
Notify(kToucher,"You are not close enough to "+WEARERNAME+" to take control of their "+CTYPE,FALSE);
|
||||
return;
|
||||
}
|
||||
}
|
||||
llMessageLinked(LINK_SET,0,"TempOwner~"+llDetectedName(0)+"~"+(string)kToucher,kToucher);
|
||||
}
|
||||
link_message(integer iSender, integer iNum, string sStr, key kID) {
|
||||
// llOwnerSay(sStr+" | "+(string)iNum+ "|"+(string)kID);
|
||||
if (iNum == MENUNAME_REQUEST && sStr == COLLAR_PARENT_MENU) {
|
||||
// our parent menu requested to receive buttons, so send ours
|
||||
llMessageLinked(LINK_THIS, MENUNAME_RESPONSE, COLLAR_PARENT_MENU + "|" + SUBMENU_BUTTON, "");
|
||||
}
|
||||
else if ((iNum == LM_SETTING_RESPONSE || iNum == LM_SETTING_DELETE)
|
||||
&& llSubStringIndex(sStr, "Global_WearerName") == 0 ) {
|
||||
integer iInd = llSubStringIndex(sStr, "=");
|
||||
string sValue = llGetSubString(sStr, iInd + 1, -1);
|
||||
//We have a broadcasted change to WEARERNAME to work with
|
||||
if (iNum == LM_SETTING_RESPONSE) WEARERNAME = sValue;
|
||||
else {
|
||||
g_kWearer = llGetOwner();
|
||||
WEARERNAME = llGetDisplayName(g_kWearer);
|
||||
if (WEARERNAME == "???" || WEARERNAME == "") WEARERNAME == llKey2Name(g_kWearer);
|
||||
}
|
||||
}
|
||||
else if (iNum == LM_SETTING_RESPONSE) {
|
||||
// response from setting store have been received, parse the answer
|
||||
list lParams = llParseString2List(sStr, ["="], []);
|
||||
string sToken = llList2String(lParams, 0);
|
||||
string sValue = llList2String(lParams, 1);
|
||||
|
||||
// and check if any values for use are received
|
||||
if (sToken == g_sScript+"takeme") {
|
||||
if (sValue == (string)1) { g_iCaptureOn = TRUE; }
|
||||
}
|
||||
else if (sToken == g_sScript+"limitdistance") {
|
||||
g_iLimitDistance = (integer)sValue;
|
||||
}
|
||||
else if (sToken == g_sScript+"force") {
|
||||
g_iTakeMeForce = (integer)sValue;
|
||||
}
|
||||
else if (sToken == "auth_tempowner") {
|
||||
g_lTempOwners = llParseString2List(sValue, [","], []); //store tempowners list
|
||||
}
|
||||
else if (sToken == "Global_CType") CTYPE = sValue;
|
||||
}
|
||||
else if (iNum == COMMAND_SAFEWORD) {
|
||||
// Safeword has been received, release any restricitions that should be released
|
||||
UserCommand(COMMAND_OWNER,"takeme reset",g_kWearer,FALSE);
|
||||
UserCommand(COMMAND_OWNER,"takeme off",g_kWearer,FALSE);
|
||||
}
|
||||
else if (UserCommand(iNum, sStr, kID, FALSE)) {
|
||||
// do nothing more if TRUE
|
||||
}
|
||||
else if (iNum == COMMAND_EVERYONE && g_iCaptureOn) {
|
||||
if (llSubStringIndex(sStr,"TempOwner") == 0) {
|
||||
list lSplit = llParseString2List(sStr, ["~"], []);
|
||||
string sName = llList2String(lSplit,1);
|
||||
key kKey = llList2Key(lSplit,2);
|
||||
// llOwnerSay(sName + " " +(string)kKey);
|
||||
if (llListFindList(g_lRequests,llList2List(lSplit,2,2)) >=0) {
|
||||
//do nothing
|
||||
} else {
|
||||
g_lRequests += llList2List(lSplit,2,2);
|
||||
g_lRequests_Names += llList2List(lSplit,1,1);
|
||||
if (g_iTakeMeForce) {
|
||||
DoMenuAlt(kID,COMMAND_EVERYONE);
|
||||
}
|
||||
else {
|
||||
DoMenu(g_kWearer,COMMAND_WEARER);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (iNum == DIALOG_RESPONSE) {
|
||||
if (kID == g_kMenuID) {
|
||||
//got a menu response meant for us, extract the values
|
||||
list lMenuParams = llParseStringKeepNulls(sStr, ["|"], []);
|
||||
key kAv = (key)llList2String(lMenuParams, 0); // avatar using the menu
|
||||
string sMessage = llList2String(lMenuParams, 1); // button label
|
||||
integer iPage = (integer)llList2String(lMenuParams, 2); // menu page
|
||||
integer iAuth = (integer)llList2String(lMenuParams, 3); // auth level of avatar
|
||||
// request to switch to parent menu
|
||||
if (sMessage == UPMENU) {
|
||||
//give av the parent menu
|
||||
llMessageLinked(LINK_THIS, iAuth, "menu "+COLLAR_PARENT_MENU, kAv);
|
||||
}
|
||||
|
||||
else if (sMessage == "Allow" || sMessage == "Yes") {
|
||||
if (g_iCaptureOn) {
|
||||
if (g_iTakeMeForce) { //this is coming from a captor, so lets find them in our queue
|
||||
integer iRequestIndex = llListFindList(g_lRequests,[(string)kAv]);
|
||||
if (iRequestIndex < 0) return; //we failed somehow...
|
||||
Notify(llList2Key(g_lRequests,iRequestIndex),llList2String(g_lRequests_Names,iRequestIndex)+" has captured "+WEARERNAME,TRUE);
|
||||
g_lTempOwners+=[llList2Key(g_lRequests,iRequestIndex),llList2String(g_lRequests_Names,iRequestIndex)];
|
||||
g_lRequests = llDeleteSubList(g_lRequests,iRequestIndex,iRequestIndex); //remove this from queue
|
||||
g_lRequests_Names = llDeleteSubList(g_lRequests_Names,iRequestIndex,iRequestIndex); //remove from queue
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, "auth_tempowner="+llDumpList2String(g_lTempOwners,","), "");
|
||||
llMessageLinked(LINK_SET, LM_SETTING_REQUEST, "auth_tempowner", "");
|
||||
} else {
|
||||
Notify(llList2Key(g_lRequests,0),llList2String(g_lRequests_Names,0)+" has captured "+WEARERNAME,TRUE);
|
||||
g_lTempOwners+=[llList2Key(g_lRequests,0),llList2String(g_lRequests_Names,0)];
|
||||
g_lRequests = llDeleteSubList(g_lRequests,0,0); //remove this from queue
|
||||
g_lRequests_Names = llDeleteSubList(g_lRequests_Names,0,0); //remove from queue
|
||||
llMessageLinked(LINK_SET, LM_SETTING_SAVE, "auth_tempowner="+llDumpList2String(g_lTempOwners,","), "");
|
||||
llMessageLinked(LINK_SET, LM_SETTING_REQUEST, "auth_tempowner", "");
|
||||
DoMenu(g_kWearer,iAuth);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (sMessage == "Reject" || sMessage == "No") {
|
||||
if (g_iCaptureOn) {
|
||||
if (g_iTakeMeForce) {
|
||||
Notify(kAv,"You have decided to neglect the poor soul of "+WEARERNAME+". Shame on you...",FALSE);
|
||||
integer iRequestIndex = llListFindList(g_lRequests,[(string)kAv]);
|
||||
g_lRequests = llDeleteSubList(g_lRequests,iRequestIndex,iRequestIndex); //remove this from queue
|
||||
g_lRequests_Names = llDeleteSubList(g_lRequests_Names,iRequestIndex,iRequestIndex); //remove from queue
|
||||
return;
|
||||
}
|
||||
Notify(kAv,"You have rejected temporary ownership by "+llList2String(g_lRequests_Names,0),FALSE);
|
||||
g_lRequests = llDeleteSubList(g_lRequests,0,0); //remove this from queue
|
||||
g_lRequests_Names = llDeleteSubList(g_lRequests_Names,0,0); //remove from queue
|
||||
DoMenu(g_kWearer,iAuth);
|
||||
}
|
||||
}
|
||||
else if (sMessage == "OFF") {
|
||||
UserCommand(iAuth,"takeme reset",kAv,FALSE);
|
||||
UserCommand(iAuth,"takeme off",kAv,TRUE);
|
||||
}
|
||||
else if (sMessage == "ON") {
|
||||
UserCommand(iAuth,"takeme on",kAv,TRUE);
|
||||
}
|
||||
else if (sMessage == "Reset") {
|
||||
UserCommand(iAuth,"takeme reset",kAv,TRUE);
|
||||
}
|
||||
else if (sMessage == TICKED+"LimitDistance") {
|
||||
UserCommand(iAuth,"takeme limitdistance off",kAv,TRUE);
|
||||
}
|
||||
else if (sMessage == UNTICKED+"LimitDistance") {
|
||||
UserCommand(iAuth,"takeme limitdistance on",kAv,TRUE);
|
||||
}
|
||||
else if (sMessage == TICKED+"ForceTake") {
|
||||
UserCommand(iAuth,"takeme force off",kAv,TRUE);
|
||||
}
|
||||
else if (sMessage == UNTICKED+"ForceTake") {
|
||||
UserCommand(iAuth,"takeme force on",kAv,TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
doc/AO_comparison.png
Normal file
BIN
doc/AO_comparison.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 85 KiB |
88
doc/First Steps.txt
Normal file
88
doc/First Steps.txt
Normal file
@@ -0,0 +1,88 @@
|
||||
Collar first steps:
|
||||
------------------
|
||||
|
||||
To tke advantage of all the functions of your new collar, make sure your RLV is turned on on your viewer.
|
||||
For example in Firestorm go to the menu Advanced and select the option RestrainedLove API, then restart the viewer.
|
||||
(If you don't see the menu Advanced, go to preferences (Ctrl P) tab Advanced and check "Show Advanced Menu").
|
||||
|
||||
|
||||
The Beginning:
|
||||
|
||||
|
||||
1. Adjusting the collar to your avatar:
|
||||
---------------------------------------
|
||||
|
||||
Wear the collar, right click on it and adjust the position and size to match your avatar, when you're satisfied, take it off and put it on again.
|
||||
|
||||
|
||||
2. Adding an owner/trusted/blocked people:
|
||||
------------------------------------------
|
||||
|
||||
Now you can add an owner, trusted person or even block people from using your collar, to do so you need to invoke the menu.
|
||||
|
||||
To do so type the first two letters of your name followed by "menu", for example if your name is Jane Doe type "jamenu" or "ja menu", alternatively simply click on the collar.
|
||||
|
||||
Click on the option Access and to add an owner just click on the button "+ Owner". Make sure the person you select as owner is near you in the same sim.
|
||||
The name of the owner candidate will appear listed on the menu, just click on the name to register him/her as owner and allow access and control of your collar.
|
||||
|
||||
Same procedure with trusted people and to manage the block list.
|
||||
|
||||
If you wish to own your own collar instead just pick your name from the list.
|
||||
|
||||
|
||||
3. Setting up the poses:
|
||||
------------------------
|
||||
|
||||
The collar comes with a series of poses, you may need to adjust them for the height of your avatar.
|
||||
|
||||
Call the menu and select Animations, then Pose, for the following steps remove your shoes and layer shoes, and turn off your AO.
|
||||
|
||||
Press on BeautyStand, your avatar will assume the position, check your feet, if you're sunk in the ground or floating above it you will need to adjust it, to do so simply press the up or down arrow untiliN your feet are just on the ground.
|
||||
|
||||
Click on the next animation and repeat the process, at the end of the list you will also find animations that start with a curly symbol "~" those are for different plugins and functions of your collar, you can adjust the height of those animations in the same way.
|
||||
|
||||
Once you cycled on the whole list you're done! Now it's time to save the settings.
|
||||
|
||||
Call the menu again go to Settings and Save.
|
||||
|
||||
(to save your settings make sure you're in a sim that allows to use such ossl function, if you get an error just press Settings and Print t get your settings list ready to be copied to a notecard.
|
||||
|
||||
|
||||
4. Setting up the Label:
|
||||
------------------------
|
||||
|
||||
If you're already owned this must be performed by your owner, if you're not owned then you can do it yourself.
|
||||
|
||||
The label is a text that will appear on the side of the collar, depending on the model it can be bigger text or smaller and it's appearance may change.
|
||||
|
||||
Invoke the menu, press Apps and then Label, then press Set Label and input the text you want, depending on the collar model you have a limit of 8 to ~16 characters available. After you're done press Submit.
|
||||
|
||||
To make the new text visible press on "Show", you can also change the font, colours and set the text to scroll from this menu.
|
||||
|
||||
|
||||
5. Setting up the Titler:
|
||||
-------------------------
|
||||
|
||||
The titler is another app, this one can be setup by the collar wearer. The titler is an hovertext that will appear on top of the head of the collar wearer.
|
||||
|
||||
Invoke the menu and press Apps and then Titler.
|
||||
|
||||
Press Set Title to input your text, then press Submit. To make it appear press "Show", you may need to adjust the height of the text, you can do so by pressing the arrows up and down on the menu, by default the title may be too close inside the head of the collar wearer and so you need to move it up by pressing the up button several times.
|
||||
|
||||
You can also change the colour of the text from this menu.
|
||||
|
||||
|
||||
6. Setting up the leash:
|
||||
------------------------
|
||||
|
||||
The leash by default is the rope (ribbon type of particles), by invoking the menu and then option Leash -> Configure you can switch the particle type by select "Chain" instead, you can also change the colour and characteristics of the leash from this menu.
|
||||
|
||||
Your owner or trustees can click on the Leash menu too and press on the Give Holder button to get a leash holder they can wear. The chain/rope then will attach to the holder for a pleasing visuals.
|
||||
|
||||
_________________________________________________________________________________________
|
||||
|
||||
|
||||
That's it! If you read so far congratulations you will have a highly personalized collar that will cover your needs
|
||||
|
||||
For more information about all the available commands, invoke your menu and then select Help/About and press the button Help. You'll receive a notecard with all the commands the collar has and the descriptions for all the functions.
|
||||
|
||||
502
doc/OsCollar Help.txt
Normal file
502
doc/OsCollar Help.txt
Normal file
@@ -0,0 +1,502 @@
|
||||
=========================
|
||||
OsCollar Help Card
|
||||
=========================
|
||||
|
||||
This is only a short version of the manual, explaining the basic usage and lists all chat commands.
|
||||
|
||||
|
||||
==============================
|
||||
A word about OpenSim and script state loss
|
||||
==============================
|
||||
|
||||
Due to OpenSim bug #8366 (http://opensimulator.org/mantis/view.php?id=8366)
|
||||
scripts (so also this collar) can lose state in two ways:
|
||||
|
||||
1 Teleport from a YEngine region to a XEngine region
|
||||
2 Teleport to a hypergrid region
|
||||
|
||||
** BE SURE TO SAVE YOUR SETTINGS CARD AFTER ANY CHANGE OF SETTINGS!!! **
|
||||
That way the collar can recover after a script reset.
|
||||
|
||||
To save settings (easy):
|
||||
-> Open the collar menu, Click Settings, Click Save.
|
||||
|
||||
If saving is not supported in this region (advanced):
|
||||
-> Open the collar menu, click Unlock (if locked), click Settings, click Print
|
||||
-> Select and copy the settings below the cutline from local chat
|
||||
-> Edit the collar, and select the Settings link/prim
|
||||
(cycle between links with with Ctrl-. and Ctrl-, )
|
||||
-> Open the ".settings" notecard within and replace what's on the notecard
|
||||
(Ctrl-A followed by Ctrl-V)
|
||||
-> Save the notecard
|
||||
|
||||
==========
|
||||
The Very Basics
|
||||
==========
|
||||
|
||||
Making use of the many, many features in your collar can be done by touching your neck, by touching your collar directly, by using a remote or with individual chat commands.
|
||||
|
||||
-------------
|
||||
The Prefix:
|
||||
-------------
|
||||
|
||||
Your [prefix] are the first two letters of your username, not of your displayname
|
||||
|
||||
John Doe's prefix is: jo
|
||||
Loki (silvia.blep)'s prefix is: si
|
||||
|
||||
Your prefix is used to issue commands in the Nearby Chat.
|
||||
|
||||
[prefix] menu
|
||||
[prefix] kneel
|
||||
[prefix] stop
|
||||
|
||||
If you don’t like your prefix, you can change it. Only the owner can change the prefix, and the wearer if there is no owner set.
|
||||
|
||||
ws prefix wen
|
||||
wr prefix we
|
||||
js prefix sex
|
||||
|
||||
There are two special prefixes. * issues commands to everyone nearby and # issues commands to everyone except yourself.
|
||||
|
||||
*trauma
|
||||
#grab
|
||||
|
||||
------------
|
||||
Channels:
|
||||
------------
|
||||
|
||||
You can also issue commands on channel 1.
|
||||
|
||||
/1 [prefix] menu
|
||||
|
||||
Or if you don’t like channel 1 set a different channel.
|
||||
|
||||
[prefix] channel 2
|
||||
[prefix] channel 3
|
||||
[prefix] channel 69
|
||||
[prefix] channel 9001
|
||||
|
||||
If you are considerate about lag, you can also turn off the Nearby Chat listener.
|
||||
|
||||
[prefix] channel -1
|
||||
|
||||
Too much hassle to always type a slash after all?
|
||||
|
||||
/1 [prefix] channel 0
|
||||
|
||||
------------
|
||||
Safeword:
|
||||
------------
|
||||
|
||||
Your collar also has a safeword which you simply type in the nearby chat. This will lift all RLV restrictions, unpose and unleash you. It will also send your Owner a message to check for your well being. RED in capital letters is the default safeword.
|
||||
|
||||
RED
|
||||
/1RED
|
||||
((RED))
|
||||
|
||||
If that’s too hard to remember you can easily change it.
|
||||
|
||||
[prefix] safeword Mayday!
|
||||
[prefix] safeword taxi
|
||||
[prefix] safeword BANANA
|
||||
|
||||
This works only if your RLV relay is NOT in helpless mode. (Main Menu -> RLV -> Relay -> Helpless) if Helpless mode is on the safeword option will be disabled.
|
||||
|
||||
|
||||
===============
|
||||
List of Chat Commands
|
||||
===============
|
||||
|
||||
Alright, many asked for this and here it is, the ultimate list of nerdy chat commands for those of you who prefer them over menus, touch or HUDs! Assumed here is that you know what a prefix is. We will indicate each prefix with a hash key. Why hash key? Cause waffles!
|
||||
|
||||
NOTE: Wearers have to use the first two letters of their username instead of the hash key.
|
||||
|
||||
-----------------------
|
||||
General Commands:
|
||||
-----------------------
|
||||
|
||||
# menu
|
||||
|
||||
# lock
|
||||
# unlock
|
||||
|
||||
# apps
|
||||
|
||||
# channel [positive number]
|
||||
# channel -1
|
||||
# channel 0
|
||||
|
||||
# prefix [custom prefix]
|
||||
|
||||
RED
|
||||
/1RED
|
||||
((RED))
|
||||
|
||||
# safeword [custom safeword]
|
||||
|
||||
CustomSafeword
|
||||
/1CustomSafeword
|
||||
((CustomSafeword))
|
||||
|
||||
--------------
|
||||
Bookmarks:
|
||||
--------------
|
||||
|
||||
# bookmarks
|
||||
# tp
|
||||
|
||||
# tp [name of bookmark]
|
||||
|
||||
# tp save
|
||||
# tp print
|
||||
# tp remove
|
||||
|
||||
-------
|
||||
Titler:
|
||||
-------
|
||||
|
||||
# menu titler
|
||||
|
||||
# title [a fancy title]
|
||||
|
||||
# title on
|
||||
# title off
|
||||
|
||||
# title color <x, y, z>
|
||||
|
||||
------
|
||||
Bell:
|
||||
------
|
||||
|
||||
# menu bell
|
||||
|
||||
# bell on
|
||||
# bell off
|
||||
|
||||
# bell show
|
||||
# bell hide
|
||||
|
||||
----------------------------------
|
||||
Label (selected models only):
|
||||
----------------------------------
|
||||
|
||||
# menu label
|
||||
|
||||
# label box
|
||||
|
||||
# label [a fancy label]
|
||||
|
||||
# label on
|
||||
# label off
|
||||
|
||||
# label scroll on
|
||||
# label scroll off
|
||||
|
||||
# label font
|
||||
|
||||
--------------
|
||||
Animations:
|
||||
--------------
|
||||
|
||||
# animations
|
||||
|
||||
# posture on
|
||||
# posture off
|
||||
|
||||
# ao menu
|
||||
|
||||
# ao on
|
||||
# ao off
|
||||
|
||||
# antislide
|
||||
|
||||
# antislide on
|
||||
# antislide off
|
||||
|
||||
# mv anims
|
||||
|
||||
# rm pose [name of pose]
|
||||
|
||||
----------------------------
|
||||
Poses (stock selection):
|
||||
----------------------------
|
||||
|
||||
# pose
|
||||
|
||||
# BeautyStand
|
||||
# Bendover
|
||||
# Bracelets
|
||||
# Cutie
|
||||
# Display
|
||||
# Doggie
|
||||
|
||||
# Nadu
|
||||
# NaduWide
|
||||
# Plead
|
||||
# Shy
|
||||
# Sleep
|
||||
# Squirm
|
||||
|
||||
# Submit
|
||||
# Table
|
||||
# Tower
|
||||
|
||||
(The following animations prefixed with a curly symbol ~ are animations used by the couples or plugins,
|
||||
they're listed here to allow you to adjust the height for your avatar, so when the couple pose is called
|
||||
it will display properly for you)
|
||||
|
||||
# ~crawl (used when the collar wearer is on a kneel pose and starts to walk or is dragged by the leash)
|
||||
# ~good (submissive part of the "Pet" couple animation)
|
||||
# ~jump-botto (submissive part of the "Jump" couple animation)
|
||||
# ~jump-top (dominant part of the "Jump" couple animation)
|
||||
# ~pet (dominant part of the "Pet" couple animation)
|
||||
# ~run (used when the collar wearer is on a pose and start running)
|
||||
# ~shock (used by the shocker plugin)
|
||||
# ~stiff (used to freeze the neck for posture collars)
|
||||
|
||||
-------------------------------------------
|
||||
Couple Animations (stock selection):
|
||||
-------------------------------------------
|
||||
|
||||
# couples
|
||||
|
||||
# Pet
|
||||
# Jump
|
||||
|
||||
# stop couples
|
||||
|
||||
----------
|
||||
Capture:
|
||||
----------
|
||||
|
||||
# capture
|
||||
|
||||
# capture on
|
||||
# capture off
|
||||
|
||||
# capture risky on
|
||||
# capture risky off
|
||||
|
||||
# capture info on
|
||||
# capture info off
|
||||
|
||||
# capture release
|
||||
|
||||
-------
|
||||
Leash:
|
||||
-------
|
||||
|
||||
# menu leash
|
||||
|
||||
# leash
|
||||
# grab
|
||||
# yank
|
||||
# unleash
|
||||
|
||||
# Give Holder Will give a leash holder to owners and trusted or everyone if the "Public" option is enabled.
|
||||
# follow
|
||||
# beckon Chat option only, it doesn't have a menu button.
|
||||
# unfollow Chat option only, it doesn't have a menu button.
|
||||
|
||||
# stay Chat option only, it doesn't have a menu button.
|
||||
# move Chat option only, it doesn't have a menu button.
|
||||
|
||||
# anchor
|
||||
# park This will rez a balloon and leash the collar wearer to it, it's a command line option only.
|
||||
|
||||
# pass
|
||||
|
||||
# length
|
||||
|
||||
# leash configure
|
||||
|
||||
-----
|
||||
RLV:
|
||||
-----
|
||||
|
||||
# rlv
|
||||
|
||||
# rlv on
|
||||
# rlv off
|
||||
|
||||
# rlv handshakes
|
||||
|
||||
# terminal
|
||||
|
||||
# clear
|
||||
|
||||
-----------
|
||||
Force Sit:
|
||||
-----------
|
||||
|
||||
# sit
|
||||
# stand
|
||||
|
||||
# forbid stand
|
||||
# allow stand
|
||||
|
||||
---------
|
||||
Outfits:
|
||||
---------
|
||||
|
||||
# outfits
|
||||
|
||||
# wear [name of the outfit]
|
||||
|
||||
---------------
|
||||
Restrictions:
|
||||
---------------
|
||||
|
||||
# restrictions
|
||||
|
||||
# allow sendim
|
||||
# forbid sendim
|
||||
|
||||
# allow readim
|
||||
# forbid readim
|
||||
|
||||
# allow hear
|
||||
# forbid hear
|
||||
|
||||
# allow touch
|
||||
# forbid touch
|
||||
|
||||
# allow stray
|
||||
# forbid stray
|
||||
|
||||
# allow talk
|
||||
# forbid talk
|
||||
|
||||
# allow rummage
|
||||
# forbid rummage
|
||||
|
||||
# allow dress
|
||||
# forbid dress
|
||||
|
||||
# dazzle
|
||||
# undazzle
|
||||
|
||||
# daze
|
||||
# undaze
|
||||
|
||||
--------------
|
||||
RLV Folders:
|
||||
--------------
|
||||
|
||||
# folders
|
||||
|
||||
#+ foldername (wears it)
|
||||
#++ foldername (wears it and its subfolders)
|
||||
|
||||
#& foldername (adds it)
|
||||
#&& foldername (adds it and its subfolders)
|
||||
|
||||
#- foldername (removes it)
|
||||
#-- foldername (removes it and its subfolders)
|
||||
|
||||
# history
|
||||
|
||||
--------
|
||||
Relay:
|
||||
--------
|
||||
|
||||
# relay trusted
|
||||
# relay ask
|
||||
# relay auto
|
||||
|
||||
# relay off
|
||||
|
||||
# relay lite on
|
||||
# relay lite off
|
||||
|
||||
# relay smart on
|
||||
# relay smart off
|
||||
|
||||
# relay land on
|
||||
# relay land off
|
||||
|
||||
# relay pending
|
||||
|
||||
# relay access
|
||||
|
||||
# relay helpless on
|
||||
# relay helpless off
|
||||
|
||||
# relay safeword
|
||||
|
||||
---------
|
||||
Access:
|
||||
---------
|
||||
|
||||
# access
|
||||
|
||||
# add owner [UUID or name]
|
||||
# rm owner [name]
|
||||
|
||||
# add trust [UUID or name]
|
||||
# rm trust [name]
|
||||
|
||||
# add block [UUID or name]
|
||||
# rm block [name]
|
||||
|
||||
# public on
|
||||
# public off
|
||||
|
||||
# flavor
|
||||
|
||||
# vanilla on
|
||||
# vanilla off
|
||||
|
||||
# runaway
|
||||
|
||||
----------
|
||||
Settings:
|
||||
----------
|
||||
|
||||
# settings
|
||||
|
||||
# print settings
|
||||
# load url [url]
|
||||
|
||||
# fix
|
||||
# verify
|
||||
|
||||
# stealth
|
||||
|
||||
# themes
|
||||
# looks
|
||||
|
||||
--------------
|
||||
Help/About:
|
||||
--------------
|
||||
|
||||
# about
|
||||
|
||||
# help
|
||||
# license
|
||||
|
||||
# news
|
||||
# news on
|
||||
# news off
|
||||
|
||||
# version
|
||||
# info
|
||||
|
||||
# update
|
||||
|
||||
# reboot
|
||||
|
||||
--------------
|
||||
Commands without menu buttons:
|
||||
--------------
|
||||
|
||||
# heeloffset [number] This will change the shoe height compensator for the poses and couple anims.
|
||||
Example: aaheeloffset -0.2
|
||||
# heeloffset reset Will reset to the default offset of -0.1
|
||||
|
||||
# park It'll rez a baloon and automatically leash the collar owner to it.
|
||||
|
||||
# rm [Name of Plugin] Removes the plugin script from the collar.
|
||||
|
||||
|
||||
18
doc/opensim-patches.md
Normal file
18
doc/opensim-patches.md
Normal file
@@ -0,0 +1,18 @@
|
||||
Recommended patches for OpenSim
|
||||
|
||||
Often we get a "bug report" for what is actually a known bug in OpenSim itself. Unfortunately the core devs don't see the urgency to address these problems, so you'll have to patch the OpenSim sourcecode yourself!
|
||||
|
||||
Alternatively, run my own [OpenSim fork](https://github.com/lickx/opensim-lickx) in which this all is fixed
|
||||
|
||||
[Mantis 8366](http://opensimulator.org/mantis/view.php?id=8366)
|
||||
This fixes state being lost or even non-working scripts for any hypergrid visitors you receive at your sim. If you have been wondering why your collar (and other scripted attachments) lost any and all settings when hypergridding, this is it. The destination sim will have to apply these patches.
|
||||
|
||||
[Mantis 8366](http://opensimulator.org/mantis/view.php?id=8366) and [Mantis 9052](http://opensimulator.org/mantis/view.php?id=9052)
|
||||
After a TP to the hypergrid, your attachments won't be set to the active group tag for that grid, which is needed if you allow access from that group on the collar. The destination sim will have to apply these patches.
|
||||
|
||||
[Mantis 6311](http://opensimulator.org/mantis/view.php?id=6311)
|
||||
This affects RLVa, when declining a folder given to your shared #RLV folder by a scripted object/trap. Accepting works since OpenSim 0.9.2, decline will only work correctly after a patch is applied. Basically the object url in a inventory offer message HAS to start with http://slurl because RLVa is hardcoded like that. http://slurl.yourgrid.com is fine for example.
|
||||
|
||||
[Mantis 8250](http://opensimulator.org/mantis/view.php?id=8250)
|
||||
If your leashed sub has been bunny hopping or is stuck when walking up or down a hill, stairs, or other kind of slope, this patch fixes that leash weirdness.
|
||||
|
||||
18
news.md
18
news.md
@@ -1,18 +0,0 @@
|
||||
Final Release 3.998 - Built 160730.1
|
||||
|
||||
Hello, a release is finally ready!
|
||||
|
||||
OsGrid local teleport:
|
||||
secondlife://Oaks Woods/8/134/28
|
||||
|
||||
Hop teleport:
|
||||
hop://hg.osgrid.org:80/Oaks%20Woods/8/134/28
|
||||
|
||||
Hypergrid teleport:
|
||||
secondlife://hg.osgrid.org:80/Oaks Woods/8/134/28
|
||||
|
||||
V3 Hypergrid teleport:
|
||||
secondlife://http|!!hg.osgrid.org|80+Oaks+Woods
|
||||
|
||||
Manual (World Map):
|
||||
hg.osgrid.org:80:Oaks Woods
|
||||
21
res/anims/README.md
Normal file
21
res/anims/README.md
Normal file
@@ -0,0 +1,21 @@
|
||||
## Animations
|
||||
|
||||
###### In this place we are going to collaborate on animations.
|
||||
|
||||
For collaboration native QAvimator files (AVM) are preferred.
|
||||
The final format for animations will be Biovision Hierarchy (BVH).
|
||||
|
||||
Free software to create animations:
|
||||
* [Blender](http://www.blender.org/)
|
||||
* [QAvimator](http://qavimator.org/)
|
||||
|
||||
Free software for in-depth BVH Editing:
|
||||
* [bvhacker](http://www.bvhacker.com/)
|
||||
|
||||
Tutorials:
|
||||
* Qavimator for Beginners
|
||||
* [Part 1](http://www.youtube.com/watch?v=pOulVwCePxw)
|
||||
* [Part 2](http://www.youtube.com/watch?v=GQZDG0Wmcwc)
|
||||
|
||||
License:
|
||||
* All animations and binaries contributed to this repository are licensed under a [Creative Commons Attribution-ShareAlike 4.0 International Public License](https://creativecommons.org/licenses/by-sa/4.0/)
|
||||
482
res/anims/couples/Pet Female.bvh
Normal file
482
res/anims/couples/Pet Female.bvh
Normal file
@@ -0,0 +1,482 @@
|
||||
HIERARCHY
|
||||
ROOT mPelvis
|
||||
{
|
||||
OFFSET 0.000000 1.067000 -0.000000
|
||||
CHANNELS 6 Xposition Yposition Zposition Xrotation Yrotation Zrotation
|
||||
JOINT mTorso
|
||||
{
|
||||
OFFSET 0.000000 0.084000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mChest
|
||||
{
|
||||
OFFSET 0.000000 0.205000 -0.015000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mNeck
|
||||
{
|
||||
OFFSET 0.000000 0.251000 -0.010000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mHead
|
||||
{
|
||||
OFFSET 0.000000 0.076000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mSkull
|
||||
{
|
||||
OFFSET 0.000000 0.079000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT mEyeRight
|
||||
{
|
||||
OFFSET -0.036000 0.079000 0.098000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT mEyeLeft
|
||||
{
|
||||
OFFSET 0.036000 0.079000 0.098000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT HEAD
|
||||
{
|
||||
OFFSET 0.000000 0.070000 0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT NECK
|
||||
{
|
||||
OFFSET 0.000000 0.020000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT mCollarLeft
|
||||
{
|
||||
OFFSET 0.085000 0.165000 -0.021000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mShoulderLeft
|
||||
{
|
||||
OFFSET 0.079000 0.000000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mElbowLeft
|
||||
{
|
||||
OFFSET 0.248000 0.000000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mWristLeft
|
||||
{
|
||||
OFFSET 0.205000 0.000000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT L_HAND
|
||||
{
|
||||
OFFSET 0.050000 0.000000 0.010000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_LOWER_ARM
|
||||
{
|
||||
OFFSET 0.100000 0.000000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_UPPER_ARM
|
||||
{
|
||||
OFFSET 0.120000 0.010000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_CLAVICLE
|
||||
{
|
||||
OFFSET 0.000000 0.020000 0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT mCollarRight
|
||||
{
|
||||
OFFSET -0.085000 0.165000 -0.021000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mShoulderRight
|
||||
{
|
||||
OFFSET -0.079000 0.000000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mElbowRight
|
||||
{
|
||||
OFFSET -0.248000 0.000000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mWristRight
|
||||
{
|
||||
OFFSET -0.205000 0.000000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT R_HAND
|
||||
{
|
||||
OFFSET -0.050000 0.000000 0.010000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_LOWER_ARM
|
||||
{
|
||||
OFFSET -0.100000 0.000000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_UPPER_ARM
|
||||
{
|
||||
OFFSET -0.120000 0.010000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_CLAVICLE
|
||||
{
|
||||
OFFSET 0.000000 0.020000 0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT CHEST
|
||||
{
|
||||
OFFSET 0.000000 0.070000 0.028000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT LEFT_PEC
|
||||
{
|
||||
OFFSET 0.082000 0.042000 0.119000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT RIGHT_PEC
|
||||
{
|
||||
OFFSET -0.082000 0.042000 0.119000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT UPPER_BACK
|
||||
{
|
||||
OFFSET 0.000000 0.017253 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT BELLY
|
||||
{
|
||||
OFFSET 0.000000 0.040000 0.028000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT LOWER_BACK
|
||||
{
|
||||
OFFSET 0.000000 0.022848 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT mHipRight
|
||||
{
|
||||
OFFSET -0.129000 -0.041000 0.034000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mKneeRight
|
||||
{
|
||||
OFFSET 0.049000 -0.491000 -0.001000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mAnkleRight
|
||||
{
|
||||
OFFSET -0.000000 -0.468000 -0.029000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mFootRight
|
||||
{
|
||||
OFFSET 0.000000 -0.061000 0.112000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mToeRight
|
||||
{
|
||||
OFFSET 0.000000 0.000000 0.109000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_FOOT
|
||||
{
|
||||
OFFSET 0.000000 -0.041000 0.077000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_LOWER_LEG
|
||||
{
|
||||
OFFSET -0.000000 -0.200000 -0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_UPPER_LEG
|
||||
{
|
||||
OFFSET 0.050000 -0.220000 -0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT mHipLeft
|
||||
{
|
||||
OFFSET 0.127000 -0.041000 0.034000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mKneeLeft
|
||||
{
|
||||
OFFSET -0.046000 -0.491000 -0.001000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mAnkleLeft
|
||||
{
|
||||
OFFSET 0.001000 -0.468000 -0.029000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mFootLeft
|
||||
{
|
||||
OFFSET 0.000000 -0.061000 0.112000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mToeLeft
|
||||
{
|
||||
OFFSET 0.000000 0.000000 0.109000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_FOOT
|
||||
{
|
||||
OFFSET 0.000000 -0.041000 0.077000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_LOWER_LEG
|
||||
{
|
||||
OFFSET -0.000000 -0.200000 -0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_UPPER_LEG
|
||||
{
|
||||
OFFSET -0.050000 -0.220000 -0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT PELVIS
|
||||
{
|
||||
OFFSET -0.000000 -0.020000 -0.010000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT BUTT
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 -0.060000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
MOTION
|
||||
Frames: 112
|
||||
Frame Time: 0.022222
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.555755 -0.057458 -84.096424 -0.000000 0.000000 0.000001 0.879869 -0.033829 -4.403510 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -1.541243 15.193717 82.081778 0.000002 0.000000 0.000001 1.046036 0.047842 5.237183 -0.000001 -0.000001 -0.000000 0.000001 0.000000 0.000001 -0.000001 0.000000 0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.145395 -0.000000 -0.000000 0.100395 -0.000000 -0.000000 0.000002 0.000022 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 0.157401 0.000000 -0.555755 -0.057458 -84.096424 -0.000000 0.000000 0.000000 0.879869 -0.033829 -4.403510 0.000000 -0.000001 -0.000000 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 -0.000000 0.000000 -0.178437 -0.000000 -1.541243 15.193717 82.081778 0.000002 -0.000000 0.000001 1.210449 0.064107 6.063092 0.000002 0.000000 -0.000000 0.000002 -0.000000 0.000001 0.000001 -0.000000 0.000001 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.559283 -0.000000 -0.000000 0.386135 -0.000000 -0.000000 0.000002 0.000022 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.605468 0.000000 -0.555755 -0.057458 -84.096417 -0.000000 0.000000 0.000000 0.879869 -0.033829 -4.403510 0.000000 0.000001 0.000000 0.000000 0.000000 0.000001 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.686428 -0.000000 -1.541243 15.193715 82.081778 0.000001 -0.000000 -0.000001 1.356350 0.080549 6.797052 0.000004 -0.000001 0.000000 -0.000001 -0.000000 -0.000001 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 1.208283 -0.000000 -0.000000 0.834054 -0.000000 -0.000000 0.000002 0.000022 -179.999991 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 1.308064 0.000000 -0.555755 -0.057458 -84.096424 0.000000 -0.000000 0.000000 0.879869 -0.033829 -4.403511 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -1.483108 -0.000000 -1.541243 15.193718 82.081778 -0.000001 0.000000 -0.000000 1.484851 0.096603 7.444351 0.000001 0.000001 -0.000000 -0.000000 0.000000 0.000001 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 2.059028 -0.000000 -0.000000 1.420976 -0.000000 -0.000000 0.000003 0.000022 -179.999991 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 2.229064 0.000000 -0.555755 -0.057458 -84.096424 0.000000 -0.000000 0.000000 0.879869 -0.033830 -4.403510 -0.000000 -0.000001 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 -2.527640 -0.000000 -1.541244 15.193718 82.081778 -0.000001 -0.000000 -0.000000 1.597061 0.111829 8.010352 -0.000001 -0.000000 0.000000 -0.000000 0.000000 0.000001 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 3.078094 -0.000000 -0.000001 2.123713 -0.000000 -0.000000 0.000002 0.000022 -179.999991 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 3.332272 0.000000 -0.555755 -0.057458 -84.096424 0.000000 -0.000000 0.000000 0.879869 -0.033829 -4.403510 0.000000 -0.000001 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 -3.779076 -0.000000 -1.541243 15.193713 82.081778 -0.000000 -0.000000 -0.000001 1.694116 0.125909 8.500500 -0.000002 -0.000002 -0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 4.231947 -0.000001 -0.000001 2.919066 -0.000000 -0.000001 0.000002 0.000022 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 4.581364 0.000001 -0.555755 -0.057459 -84.096424 -0.000001 -0.000000 0.000000 0.879869 -0.033829 -4.403510 -0.000000 -0.000003 -0.000000 -0.000000 -0.000000 0.000001 -0.000001 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -5.196270 -0.000000 -1.541243 15.193715 82.081778 -0.000000 0.000000 0.000001 1.777143 0.138631 8.920283 0.000001 0.000003 -0.000000 0.000001 -0.000000 0.000000 0.000000 0.000000 0.000001 0.000000 -0.000001 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 5.486930 -0.000001 -0.000001 3.783815 -0.000000 -0.000001 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 5.939883 0.000001 -0.555755 -0.057459 -84.096424 -0.000000 -0.000000 0.000000 0.879869 -0.033829 -4.403510 0.000001 0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000001 0.000000 -0.000000 0.000000 -0.000001 -0.000000 0.000001 -6.737860 -0.000000 -1.541243 15.193715 82.081778 0.000001 0.000000 -0.000000 1.847269 0.149859 9.275211 -0.000001 -0.000000 -0.000000 0.000001 0.000000 -0.000001 0.000001 0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 6.809296 -0.000001 -0.000001 4.694758 -0.000001 -0.000001 0.000002 0.000022 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000001 7.371267 0.000001 -0.555755 -0.057459 -84.096424 0.000001 -0.000000 0.000000 0.879869 -0.033829 -4.403510 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000001 -0.000000 0.000001 -8.362298 -0.000000 -1.541244 15.193717 82.081778 -0.000000 0.000000 0.000001 1.905624 0.159544 9.570815 -0.000000 0.000001 -0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 8.165248 -0.000001 -0.000002 5.628710 -0.000001 -0.000001 0.000002 0.000022 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000001 8.838926 0.000001 -0.555755 -0.057458 -84.096424 0.000002 -0.000000 -0.000000 0.879869 -0.033830 -4.403510 0.000000 -0.000001 0.000000 0.000002 -0.000000 0.000000 0.000001 0.000000 -0.000000 0.000000 -0.000001 -0.000000 0.000001 -10.027969 -0.000000 -1.541244 15.193715 82.081778 0.000000 -0.000000 0.000000 1.953325 0.167691 9.812632 -0.000000 0.000001 -0.000000 0.000000 -0.000000 0.000000 0.000001 0.000000 0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 9.521022 -0.000001 -0.000002 6.562546 -0.000001 -0.000001 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000001 10.306330 0.000002 -0.555755 -0.057458 -84.096424 -0.000000 -0.000000 0.000000 0.879869 -0.033831 -4.403510 -0.000001 -0.000001 -0.000000 0.000000 -0.000000 0.000001 -0.000001 -0.000000 0.000000 0.000000 -0.000001 -0.000000 0.000001 -11.693313 -0.000000 -1.541244 15.193718 82.081778 0.000000 -0.000000 0.000002 1.991484 0.174357 10.006199 0.000000 0.000002 -0.000000 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000002 -0.000000 0.000001 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 10.842970 -0.000002 -0.000002 7.473206 -0.000001 -0.000001 0.000000 0.000022 -179.999991 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 11.737109 0.000002 -0.555755 -0.057459 -84.096424 -0.000001 -0.000000 0.000001 0.879869 -0.033829 -4.403510 0.000000 0.000001 -0.000000 0.000000 -0.000000 0.000000 -0.000001 -0.000000 0.000001 0.000000 -0.000001 -0.000000 0.000001 -13.316980 -0.000000 -1.541244 15.193717 82.081778 0.000000 0.000000 0.000001 2.021206 0.179641 10.157052 -0.000000 0.000001 -0.000000 -0.000000 -0.000000 0.000001 -0.000000 0.000000 0.000001 0.000000 0.000001 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 12.097618 -0.000002 -0.000002 8.337726 -0.000001 -0.000002 0.000002 0.000022 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000001 13.095140 0.000002 -0.555755 -0.057459 -84.096424 -0.000000 -0.000000 0.000000 0.879869 -0.033829 -4.403510 0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000001 -0.000000 0.000000 0.000000 -0.000001 -0.000000 0.000001 -14.857951 -0.000000 -1.541244 15.193715 82.081778 0.000000 -0.000000 -0.000000 2.043589 0.183674 10.270695 0.000000 0.000001 0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000001 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 13.251708 -0.000002 -0.000002 9.133227 -0.000001 -0.000002 0.000000 0.000022 -179.999991 -0.000002 -0.000000 0.000000 -0.000002 -0.000000 0.000000 -0.000002 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000001 14.344587 0.000002 -0.555755 -0.057459 -84.096424 -0.000000 0.000000 -0.000000 0.879867 -0.033829 -4.403510 0.000001 -0.000001 -0.000001 -0.000001 -0.000000 -0.000000 -0.000001 0.000000 -0.000000 0.000000 -0.000001 -0.000000 0.000001 -16.275624 -0.000000 -1.541243 15.193713 82.081778 -0.000000 -0.000000 -0.000001 2.059728 0.186612 10.352665 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 14.272214 -0.000002 -0.000003 9.836911 -0.000001 -0.000002 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000001 15.449905 0.000002 -0.555755 -0.057459 -84.096424 -0.000001 0.000000 0.000000 0.879868 -0.033830 -4.403509 -0.000000 -0.000001 -0.000001 0.000002 -0.000000 0.000001 -0.000001 0.000000 0.000001 0.000000 -0.000001 -0.000000 0.000001 -17.529797 -0.000000 -1.541243 15.193715 82.081778 -0.000000 -0.000000 -0.000001 2.070710 0.188623 10.408452 0.000000 0.000001 0.000000 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 0.000000 -0.000002 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 15.126282 -0.000002 -0.000003 10.426032 -0.000001 -0.000002 0.000002 0.000022 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000002 16.375761 0.000003 -0.555755 -0.057459 -84.096424 -0.000001 0.000000 -0.000000 0.879871 -0.033830 -4.403511 -0.000002 -0.000001 -0.000000 0.000002 0.000000 -0.000000 -0.000001 0.000000 0.000000 0.000000 -0.000001 -0.000000 0.000001 -18.580602 -0.000000 -1.541243 15.193715 82.081778 0.000000 0.000000 -0.000001 2.077619 0.189892 10.443552 0.000000 0.000004 -0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000004 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 15.781130 -0.000002 -0.000003 10.877821 -0.000001 -0.000002 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000002 -0.000000 0.000000 -0.000002 17.086878 0.000003 -0.555755 -0.057459 -84.096424 -0.000003 0.000000 0.000000 0.879868 -0.033829 -4.403510 0.000001 -0.000001 -0.000000 0.000000 0.000000 0.000000 -0.000002 0.000000 0.000000 0.000000 -0.000001 -0.000000 0.000001 -19.388286 -0.000000 -1.541244 15.193711 82.081778 -0.000001 -0.000000 -0.000001 2.081535 0.190617 10.463454 0.000000 0.000002 0.000000 0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 0.000000 -0.000002 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 16.203878 -0.000002 -0.000003 11.169445 -0.000002 -0.000002 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000002 -0.000000 0.000000 -0.000002 17.547866 0.000003 -0.555755 -0.057459 -84.096424 -0.000001 -0.000000 0.000000 0.879870 -0.033831 -4.403510 -0.000002 -0.000004 -0.000000 0.000002 0.000000 0.000001 -0.000001 -0.000000 0.000001 0.000000 -0.000001 -0.000000 0.000001 -19.912952 -0.000000 -1.541243 15.193711 82.081778 -0.000001 -0.000000 -0.000001 2.083540 0.190988 10.473643 0.000000 0.000003 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000001 -0.000000 -0.000002 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 16.361360 -0.000002 -0.000003 11.277867 -0.000001 -0.000002 0.000000 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000002 17.722907 0.000003 -0.555755 -0.057461 -84.096424 0.000001 -0.000000 -0.000000 0.879870 -0.033831 -4.403510 -0.000002 -0.000000 0.000000 0.000002 -0.000000 0.000000 -0.000001 0.000000 0.000000 0.000000 -0.000001 -0.000000 0.000001 -20.114142 -0.000000 -1.541244 15.193713 82.081778 -0.000001 -0.000000 0.000000 2.084716 0.191203 10.479613 -0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000001 -0.000000 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 0.999411 0.025898 0.020936 -0.000000 -0.000000 0.049707 -0.000268 -0.003627 -0.049322 0.000077 0.001964 16.264545 0.060169 -0.016577 11.243543 0.122438 -0.034831 -0.000000 0.000022 -179.999991 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.077782 17.654506 0.088358 -0.694010 -0.159613 -83.860598 -0.000001 -0.235233 0.000000 0.612298 -0.046123 -4.473096 -0.000001 -0.000002 0.000000 0.000002 -0.000000 0.000000 -0.000001 -0.000000 0.000000 0.000000 -0.000001 -0.000000 -0.003820 -19.985420 -0.058732 -1.595238 15.300204 81.855009 0.000000 0.260436 0.000000 1.831409 0.169994 10.533784 -0.000000 -0.000001 0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000002 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000001 -0.000001 0.000000 0.000001 -0.000001 0.000000 -0.045435 -0.004534 0.000082 0.276731 0.001023 -0.016981 0.191858 -0.001432 -0.020876 -0.000011 0.000015 -0.000034 -0.000000 0.000000 0.000000 -0.000011 0.000015 -0.000032 -0.000002 0.000000 0.000000 -0.000000 0.000003 0.000136 -0.044687 0.004186 0.000101 0.276321 0.001608 -0.017157 0.194092 0.016564 -0.004384 0.000013 -0.000014 0.000023 0.000000 0.000000 0.000000 0.000012 -0.000014 0.000021 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 0.802788 0.101237 0.081843 -0.000000 -0.000000 0.194771 -0.001064 -0.014212 -0.192821 0.000293 0.007677 15.956365 0.235660 -0.064334 11.126557 0.479377 -0.135836 0.000003 0.000022 -179.999991 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 -0.000001 0.000000 0.000000 -0.303555 17.416241 0.345022 -1.095706 -0.461453 -83.172682 0.000001 -0.921478 0.000000 -0.169404 -0.080175 -4.676689 -0.000003 -0.000001 -0.000000 0.000001 -0.000000 0.000001 0.000000 0.000000 0.000000 -0.000000 -0.000001 0.000000 -0.013609 -19.560613 -0.229875 -1.750568 15.612370 81.192706 -0.000001 1.020779 -0.000000 1.089470 0.106786 10.680561 0.000000 0.000001 0.000000 0.000000 0.000000 0.000001 -0.000000 0.000000 -0.000000 0.000000 -0.000002 0.000000 0.000000 0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -0.177621 -0.017727 0.000300 1.085128 0.003528 -0.067010 0.751531 -0.005317 -0.081327 -0.000009 0.000016 -0.000030 -0.000000 -0.000000 0.000000 -0.000011 0.000015 -0.000030 -0.000001 0.000001 0.000000 -0.000000 0.000003 0.000136 -0.174696 0.016365 0.000415 1.083510 0.005828 -0.067028 0.760186 0.064764 -0.017853 0.000007 -0.000013 0.000027 0.000000 0.000000 -0.000000 0.000009 -0.000013 0.000025 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 0.486347 0.222487 0.179865 -0.000000 -0.000000 0.429131 -0.002409 -0.031307 -0.423813 0.000610 0.016874 15.451163 0.519243 -0.139520 10.933550 1.055652 -0.297212 0.000001 0.000022 -179.999991 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.664790 17.017478 0.756310 -1.740355 -0.961868 -82.059894 0.000001 -2.031872 -0.000001 -1.437733 -0.129499 -5.007892 0.000000 -0.000002 -0.000001 0.000002 -0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.025644 -18.858554 -0.505580 -1.994904 16.122091 80.118638 0.000000 2.252860 -0.000001 -0.113530 0.001050 10.913204 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000001 0.000000 -0.000000 -0.000001 -0.000000 -0.000001 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 -0.390387 -0.038962 0.000588 2.396570 0.006089 -0.148231 1.656465 -0.011521 -0.178204 -0.000009 0.000014 -0.000031 0.000001 0.000000 0.000000 -0.000011 0.000014 -0.000031 -0.000001 0.000001 0.000000 -0.000000 0.000002 0.000135 -0.383966 0.035967 0.000979 2.392956 0.011176 -0.148040 1.675327 0.142349 -0.041332 0.000006 -0.000010 0.000022 -0.000001 0.000000 -0.000000 0.000007 -0.000010 0.000020 0.000000 0.000000 0.000000 0.000000 0.000002 -0.000100 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000
|
||||
0.000000 0.059306 0.386114 0.312150 -0.000000 -0.000000 0.746736 -0.004342 -0.054466 -0.735632 0.000979 0.029291 14.763252 0.903966 -0.237506 10.671604 1.836469 -0.512544 0.000001 0.000022 -179.999991 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -1.147683 16.466674 1.307378 -2.605896 -1.665984 -80.547492 -0.000000 -3.541816 0.000001 -3.169161 -0.184959 -5.461512 -0.000000 -0.000001 -0.000000 -0.000001 -0.000001 0.000001 -0.000001 -0.000000 0.000002 -0.000000 -0.000001 0.000000 -0.034932 -17.897732 -0.877803 -2.312978 16.824115 78.653030 0.000000 3.931758 0.000000 -1.752703 -0.149685 11.224572 0.000000 -0.000003 0.000000 0.000000 -0.000001 -0.000000 0.000000 0.000000 0.000001 0.000000 -0.000002 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.677577 -0.067627 0.000850 4.186522 0.006584 -0.259138 2.885427 -0.020439 -0.308461 -0.000006 0.000011 -0.000023 0.000000 -0.000000 0.000000 -0.000004 0.000011 -0.000024 -0.000001 -0.000000 0.000000 -0.000000 0.000003 0.000136 -0.666448 0.062424 0.001852 4.180115 0.015486 -0.258762 2.917927 0.246998 -0.076221 0.000005 -0.000010 0.000024 0.000000 -0.000000 -0.000000 0.000006 -0.000010 0.000023 0.000001 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000
|
||||
0.000000 -0.469118 0.588589 0.475846 -0.000000 -0.000000 1.141547 -0.006925 -0.083239 -1.121620 0.001342 0.044665 13.906955 1.382986 -0.353013 10.348064 2.807178 -0.775004 0.000004 0.000022 -179.999991 0.000003 -0.000000 0.000000 0.000003 -0.000000 0.000000 0.000003 -0.000000 0.000000 0.000000 0.000000 -0.000000 -1.737536 15.771837 1.982568 -3.668028 -2.583324 -78.659962 0.000001 -5.427957 -0.000000 -5.342414 -0.235117 -6.032780 -0.000001 -0.000001 0.000000 -0.000002 0.000000 0.000001 0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.035625 -16.696626 -1.338511 -2.686637 17.714808 76.813591 0.000000 6.034404 -0.000001 -3.804570 -0.349298 11.606886 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -1.033037 -0.103107 0.000977 6.432838 0.002304 -0.398255 4.417858 -0.032817 -0.469091 -0.000010 0.000014 -0.000027 0.000000 -0.000000 -0.000000 -0.000011 0.000013 -0.000025 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 -1.016101 0.095165 0.003115 6.422817 0.016006 -0.397807 4.467106 0.376241 -0.124265 0.000008 -0.000009 0.000023 0.000001 -0.000000 0.000000 0.000010 -0.000010 0.000021 0.000001 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 -1.089710 0.826379 0.668098 -0.000000 -0.000000 1.607526 -0.010228 -0.117175 -1.575120 0.001636 0.062730 12.896617 1.949414 -0.480336 9.970401 3.953065 -1.077546 0.000001 0.000022 -179.999991 -0.000002 -0.000000 0.000000 -0.000002 -0.000000 0.000000 -0.000002 -0.000000 0.000000 -0.000001 -0.000000 -0.000000 -2.419109 14.940858 2.765736 -4.899507 -3.725922 -76.422112 -0.000001 -7.667173 -0.000002 -7.936749 -0.266569 -6.716485 -0.000002 -0.000001 0.000000 -0.000001 0.000001 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 -0.000001 0.000000 -0.021397 -15.273963 -1.879885 -3.094876 18.790911 74.616408 -0.000000 8.538199 -0.000002 -6.245806 -0.602501 12.051452 0.000000 0.000000 -0.000000 0.000000 0.000001 0.000001 0.000000 0.000000 -0.000001 0.000000 -0.000001 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -1.450615 -0.144788 0.000845 9.114081 -0.009938 -0.563932 6.233357 -0.049620 -0.657057 -0.000002 0.000009 -0.000020 0.000000 0.000000 0.000000 -0.000002 0.000010 -0.000020 -0.000001 0.000001 -0.000000 -0.000000 0.000003 0.000135 -1.426881 0.133619 0.004853 9.099590 0.009504 -0.563635 6.302150 0.527390 -0.187431 0.000010 -0.000006 0.000017 0.000000 0.000000 -0.000000 0.000010 -0.000007 0.000017 0.000000 0.000000 0.000000 0.000000 0.000002 -0.000100 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000
|
||||
0.000000 -1.793252 1.095952 0.886053 -0.000000 -0.000000 2.138630 -0.014330 -0.155820 -2.089463 0.001797 0.083221 11.746667 2.596163 -0.613547 9.546057 5.259170 -1.413063 0.000002 0.000023 -179.999991 -0.000001 0.000001 0.000000 -0.000001 0.000001 0.000000 -0.000001 0.000001 0.000000 -0.000001 -0.000000 0.000000 -3.176959 13.981889 3.640569 -6.269573 -5.106282 -73.859999 -0.000001 -10.235633 -0.000001 -10.930245 -0.264363 -7.506136 -0.000000 -0.000003 0.000003 -0.000001 0.000000 0.000002 -0.000001 -0.000001 -0.000001 -0.000000 -0.000001 -0.000000 0.014232 -13.649021 -2.494485 -3.513798 20.048227 72.076609 -0.000001 11.419680 0.000000 -9.052016 -0.914304 12.548424 -0.000000 -0.000001 0.000000 -0.000000 -0.000003 -0.000000 -0.000000 -0.000000 0.000001 -0.000000 0.000001 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -1.924151 -0.192051 0.000326 12.207874 -0.033676 -0.754142 8.311125 -0.071896 -0.869206 -0.000002 0.000007 -0.000016 0.000004 0.000000 0.000000 -0.000004 0.000007 -0.000016 -0.000001 0.000001 0.000000 -0.000000 0.000003 0.000136 -1.892740 0.177212 0.007158 12.188035 -0.007611 -0.754343 8.401947 0.697477 -0.267766 0.000007 -0.000004 0.000014 -0.000002 0.000000 0.000000 0.000003 -0.000004 0.000014 0.000001 0.000001 0.000000 0.000000 0.000002 -0.000099 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 -2.570529 1.393778 1.126858 -0.000000 -0.000000 2.728806 -0.019308 -0.198717 -2.657970 0.001761 0.105871 10.471607 3.315834 -0.746688 9.082324 6.710120 -1.774543 -0.000000 0.000021 -179.999991 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000000 -0.000000 0.000000 -3.995757 12.903634 4.590875 -7.743584 -6.735202 -71.001490 -0.000000 -13.107913 0.000000 -14.298175 -0.212590 -8.393135 -0.000002 0.000002 0.000001 0.000001 0.000001 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000002 -0.000000 0.077614 -11.841830 -3.175368 -3.916768 21.480340 69.209105 0.000001 14.653264 -0.000004 -12.196671 -1.289359 13.086663 0.000000 0.000002 -0.000001 -0.000000 -0.000001 0.000002 0.000002 -0.000000 -0.000002 0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -2.447474 -0.244276 -0.000700 15.689298 -0.072618 -0.966300 10.629488 -0.100621 -1.102264 0.000003 0.000006 -0.000014 -0.000001 -0.000000 0.000000 0.000001 0.000006 -0.000015 -0.000002 -0.000000 0.000000 -0.000000 0.000003 0.000137 -2.407619 0.225369 0.010118 15.663207 -0.039121 -0.967475 10.744508 0.883214 -0.367293 0.000008 -0.000005 0.000012 -0.000003 0.000000 -0.000000 0.000007 -0.000004 0.000010 0.000001 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 -3.412322 1.716325 1.387655 -0.000000 -0.000000 3.371981 -0.025235 -0.245405 -3.273937 0.001467 0.130409 9.086061 4.100623 -0.873967 8.586254 8.290011 -2.155185 -0.000002 0.000022 -179.999991 -0.000003 0.000000 0.000000 -0.000003 0.000000 0.000000 -0.000003 0.000000 0.000000 0.000001 -0.000000 0.000000 -4.860565 11.715602 5.600841 -9.283065 -8.619437 -67.876508 0.000001 -16.256275 -0.000000 -18.011479 -0.095181 -9.366042 -0.000001 -0.000001 0.000001 0.000001 0.000001 -0.000003 -0.000000 -0.000001 0.000000 -0.000000 -0.000002 -0.000000 0.174751 -9.873368 -3.916150 -4.274705 23.077345 66.029105 -0.000000 18.210112 -0.000002 -15.650142 -1.731298 13.653703 -0.000000 0.000003 -0.000001 0.000003 -0.000001 0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000002 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -3.014406 -0.300840 -0.002351 19.529427 -0.130428 -1.197102 13.165471 -0.136585 -1.352771 0.000002 0.000002 -0.000007 0.000005 0.000000 -0.000000 0.000000 0.000002 -0.000007 -0.000002 0.000000 -0.000000 -0.000000 0.000003 0.000138 -2.965444 0.277509 0.013813 19.496194 -0.088788 -1.199861 13.306588 1.080961 -0.487814 0.000001 -0.000003 0.000003 -0.000003 0.000000 -0.000000 0.000008 -0.000003 0.000003 -0.000001 0.000000 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 -4.309415 2.060061 1.665591 -0.000000 -0.000000 4.062069 -0.032177 -0.295421 -3.930644 0.000865 0.156566 7.604764 4.942260 -0.989937 8.064584 9.982360 -2.548509 0.000001 0.000021 -179.999991 0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 0.000000 0.000000 0.000000 -0.000000 -5.757102 10.428251 6.655262 -10.846188 -10.759406 -64.516847 -0.000004 -19.650085 -0.000001 -22.035623 0.103044 -10.410117 -0.000000 -0.000005 -0.000001 0.000000 0.000002 -0.000002 -0.000000 0.000001 0.000002 -0.000000 -0.000001 -0.000000 0.311116 -7.765630 -4.711030 -4.556674 24.824753 62.552655 0.000001 22.057290 0.000001 -19.379026 -2.242071 14.235918 -0.000001 0.000006 -0.000001 0.000001 -0.000002 0.000000 -0.000001 0.000001 0.000003 0.000000 0.000001 0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000001 0.000000 0.000000 0.000000 0.000000 -0.000000 -3.618750 -0.361115 -0.004727 23.694135 -0.210447 -1.442438 15.894602 -0.180248 -1.617101 0.000017 0.000001 0.000000 0.000003 0.000000 0.000000 0.000010 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000000 0.000003 0.000137 -3.560126 0.333052 0.018310 23.652875 -0.160077 -1.447514 16.063311 1.286753 -0.630834 0.000007 -0.000003 0.000005 -0.000005 -0.000000 0.000000 0.000005 -0.000003 0.000003 -0.000001 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 -5.252592 2.421454 1.957808 -0.000000 -0.000000 4.792961 -0.040185 -0.348300 -4.621344 -0.000093 0.184067 6.042577 5.831996 -1.089671 7.523669 11.770013 -2.948423 0.000001 0.000020 -179.999991 -0.000001 -0.000002 0.000000 -0.000001 -0.000002 0.000000 -0.000001 -0.000002 0.000000 0.000000 0.000000 -0.000000 -6.671925 9.053103 7.739742 -12.388734 -13.147106 -60.955607 0.000001 -23.255471 -0.000001 -26.329806 0.395143 -11.507152 0.000001 0.000000 -0.000003 0.000001 0.000003 -0.000001 0.000001 -0.000001 -0.000001 -0.000000 0.000000 0.000000 0.491508 -5.541652 -5.554741 -4.730778 26.702645 58.797110 -0.000001 26.157044 -0.000004 -23.345759 -2.821321 14.818896 -0.000001 -0.000000 -0.000000 -0.000002 0.000002 -0.000005 -0.000002 -0.000002 -0.000002 -0.000000 -0.000001 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 -4.254297 -0.424470 -0.007911 28.143180 -0.315375 -1.697378 18.790591 -0.231620 -1.891494 0.000008 -0.000000 0.000003 0.000006 0.000000 0.000000 0.000010 -0.000000 0.000002 0.000002 0.000000 0.000000 -0.000000 0.000002 0.000136 -4.185560 0.391412 0.023661 28.093077 -0.255847 -1.705622 18.988049 1.496335 -0.797353 0.000002 0.000000 0.000002 -0.000005 -0.000000 0.000000 0.000002 -0.000000 0.000001 -0.000002 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 -6.232636 2.796974 2.261449 -0.000000 -0.000000 5.558533 -0.049298 -0.403575 -5.339270 -0.001440 0.212638 4.414510 6.760621 -1.168920 6.969483 13.635240 -3.349301 0.000002 0.000024 -179.999991 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -7.592625 7.602790 8.840813 -13.865484 -15.764584 -57.226289 -0.000001 -27.035190 -0.000005 -30.846852 0.790696 -12.635773 -0.000001 -0.000003 0.000001 0.000002 0.000005 0.000001 -0.000001 0.000001 -0.000002 -0.000000 0.000001 0.000000 0.719941 -3.225466 -6.442466 -4.765475 28.685306 54.781723 -0.000004 30.466684 0.000001 -27.508597 -3.465875 15.387982 -0.000000 0.000005 -0.000001 -0.000001 -0.000001 0.000000 -0.000002 -0.000002 0.000003 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 -4.914822 -0.490272 -0.011964 32.829871 -0.446955 -1.956304 21.825402 -0.290166 -2.172119 0.000007 -0.000005 0.000008 -0.000003 -0.000000 0.000000 0.000007 -0.000006 0.000009 -0.000004 0.000001 0.000000 0.000000 0.000002 0.000135 -4.835622 0.452004 0.029899 32.770199 -0.378025 -1.968646 22.052299 1.705265 -0.987820 0.000004 0.000003 -0.000001 -0.000002 -0.000000 -0.000000 0.000006 0.000003 -0.000003 0.000001 0.000001 0.000000 0.000001 0.000002 -0.000099 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000
|
||||
-0.000000 -7.240330 3.183088 2.573655 -0.000000 -0.000000 6.352636 -0.059528 -0.460776 -6.077633 -0.003198 0.242002 2.735712 7.718507 -1.224257 6.407574 15.559716 -3.746010 0.000002 0.000021 -179.999991 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000001 -0.000000 -8.507932 6.090996 9.946055 -15.231885 -18.583155 -53.361836 0.000000 -30.948916 0.000001 -35.533595 1.294643 -13.772275 0.000001 0.000000 -0.000001 0.000000 -0.000001 0.000000 -0.000001 0.000000 0.000003 -0.000001 0.000000 -0.000000 0.999546 -0.841945 -7.369706 -4.631200 30.741254 50.528264 -0.000001 34.938740 -0.000006 -31.821944 -4.169460 15.929055 -0.000001 0.000000 -0.000000 -0.000000 -0.000002 -0.000001 -0.000000 -0.000001 -0.000004 0.000000 0.000000 0.000001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -5.594094 -0.557888 -0.016924 37.701241 -0.605679 -2.213129 24.969331 -0.354708 -2.455144 0.000019 -0.000009 0.000015 -0.000003 -0.000000 0.000000 0.000016 -0.000009 0.000015 -0.000001 0.000000 0.000000 -0.000001 0.000003 0.000136 -5.504174 0.514239 0.037030 37.631412 -0.527315 -2.230545 25.225801 1.909031 -1.201983 0.000002 0.000007 -0.000010 0.000001 0.000000 0.000000 0.000000 0.000006 -0.000010 -0.000006 0.000001 -0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
-0.000000 -8.266456 3.576265 2.891570 -0.000000 -0.000001 7.169109 -0.070873 -0.519435 -6.829630 -0.005378 0.271883 1.021477 8.695714 -1.253197 5.843105 17.524662 -4.133937 0.000003 0.000024 -179.999991 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 -0.000001 0.000000 0.000000 -9.407760 4.532388 11.044117 -16.445958 -21.563715 -49.393681 0.000003 -34.953602 -0.000007 -40.332182 1.906323 -14.891810 0.000001 0.000002 -0.000000 -0.000003 0.000003 -0.000001 0.000002 0.000001 -0.000002 0.000000 0.000000 0.000000 1.332477 1.583407 -8.332133 -4.302399 32.834143 46.061932 0.000001 39.521612 -0.000002 -36.237080 -4.922672 16.429342 0.000001 0.000005 0.000002 0.000002 -0.000001 0.000000 0.000001 -0.000000 0.000001 -0.000000 -0.000000 -0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000001 0.000000 0.000000 0.000000 -0.000000 -0.000000 -6.285864 -0.626680 -0.022798 42.698928 -0.790599 -2.461665 28.191097 -0.423391 -2.736873 0.000015 -0.000011 0.000019 -0.000002 0.000000 -0.000000 0.000015 -0.000011 0.000019 -0.000000 0.000001 -0.000000 -0.000000 0.000003 0.000137 -6.185067 0.577533 0.045039 42.618485 -0.702987 -2.485121 28.476724 2.103204 -1.438861 -0.000004 0.000009 -0.000014 0.000000 0.000000 -0.000000 -0.000003 0.000008 -0.000016 0.000001 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
-0.000000 -9.301800 3.972974 3.212338 -0.000000 -0.000001 8.001787 -0.083303 -0.579086 -7.588450 -0.007975 0.302002 -0.712749 9.682090 -1.254295 5.280864 19.510949 -4.509021 0.000001 0.000024 -179.999991 -0.000001 0.000004 -0.000000 -0.000001 0.000004 -0.000000 -0.000001 0.000004 -0.000000 -0.000000 -0.000001 0.000000 -10.283280 2.942473 12.124762 -17.470155 -24.658095 -45.351230 -0.000002 -39.004284 -0.000006 -45.181708 2.619002 -15.970043 0.000001 -0.000001 0.000000 0.000000 -0.000001 0.000001 -0.000000 0.000001 -0.000001 0.000001 -0.000000 -0.000001 1.719829 4.024713 -9.325379 -3.759782 34.924137 41.412332 0.000002 44.160691 -0.000005 -40.703187 -5.713312 16.878306 0.000001 0.000000 -0.000000 0.000001 0.000000 0.000001 -0.000000 -0.000001 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -6.983886 -0.696016 -0.029567 47.760538 -0.999254 -2.696026 31.458383 -0.493659 -3.013857 0.000016 -0.000013 0.000028 -0.000001 -0.000000 0.000001 0.000015 -0.000013 0.000028 0.000000 0.000001 -0.000000 0.000000 0.000003 0.000136 -6.872143 0.641298 0.053883 47.669260 -0.902797 -2.726431 31.772025 2.283584 -1.696752 -0.000002 0.000012 -0.000021 -0.000000 -0.000000 -0.000000 -0.000000 0.000011 -0.000019 0.000002 0.000001 -0.000000 0.000001 0.000002 -0.000099 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
-0.000000 -10.337144 4.369683 3.533099 -0.000000 -0.000001 8.844494 -0.096764 -0.639268 -8.347271 -0.010970 0.332085 -2.451367 10.667397 -1.227207 4.725317 21.499264 -4.867738 0.000003 0.000020 -179.999991 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 0.000000 0.000000 -11.126868 1.337423 13.178788 -18.273114 -27.811456 -41.261661 -0.000001 -43.054965 -0.000001 -50.020361 3.420123 -16.984814 0.000002 0.000001 0.000000 -0.000000 0.000001 -0.000000 -0.000001 0.000005 0.000001 -0.000000 -0.000000 -0.000001 2.161540 6.456028 -10.344848 -2.992623 36.969956 36.614855 0.000003 48.799789 -0.000006 -45.168461 -6.526909 17.268282 -0.000000 0.000004 -0.000001 0.000000 -0.000000 -0.000001 0.000003 -0.000001 -0.000001 0.000000 -0.000000 -0.000001 -0.000000 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -7.681911 -0.765263 -0.037180 52.821623 -1.227767 -2.911078 34.738124 -0.562298 -3.283006 0.000014 -0.000016 0.000027 -0.000000 -0.000001 0.000000 0.000012 -0.000017 0.000031 0.000002 0.000001 0.000000 -0.000000 0.000003 0.000137 -7.559239 0.704954 0.063490 52.719467 -1.123073 -2.949225 35.077857 2.446411 -1.973253 -0.000001 0.000013 -0.000019 -0.000000 -0.000000 -0.000000 -0.000001 0.000013 -0.000018 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
-0.000000 -11.363271 4.762860 3.851000 -0.000000 -0.000001 9.691054 -0.111177 -0.699519 -9.099262 -0.014331 0.361856 -4.178629 11.641466 -1.172729 4.180660 23.470198 -5.207103 0.000002 0.000020 -179.999991 0.000000 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 0.000001 -0.000000 -11.932060 -0.266093 14.197978 -18.831305 -30.965387 -37.150693 0.000000 -47.059652 -0.000006 -54.787481 4.292048 -17.917675 -0.000000 -0.000002 0.000001 0.000001 0.000000 0.000000 0.000000 0.000004 -0.000000 0.000001 0.000000 -0.000002 2.656292 8.851669 -11.385460 -2.000939 38.931324 31.711783 0.000001 53.382655 -0.000014 -49.581538 -7.347586 17.595049 0.000002 0.000002 -0.000000 -0.000001 0.000000 -0.000002 0.000003 0.000005 -0.000004 0.000000 0.000001 -0.000002 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 -8.373690 -0.833791 -0.045556 57.817811 -1.471106 -3.102812 37.997022 -0.625480 -3.541677 0.000020 -0.000019 0.000032 -0.000000 -0.000000 0.000001 0.000018 -0.000019 0.000033 0.000001 0.000001 0.000000 -0.000001 0.000003 0.000137 -8.240183 0.767919 0.073764 57.704956 -1.358948 -3.149334 38.360105 2.588467 -2.265372 -0.000005 0.000015 -0.000024 -0.000000 -0.000000 -0.000000 -0.000004 0.000014 -0.000024 0.000002 0.000001 -0.000000 0.000001 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
-0.000000 -12.370965 5.148974 4.163186 -0.000001 -0.000001 10.535289 -0.126435 -0.759387 -9.837620 -0.018013 0.391042 -5.878637 12.594323 -1.092792 3.650869 25.404458 -5.524673 0.000002 0.000020 -179.999991 0.000000 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 0.000001 -0.000000 -12.693479 -1.851135 15.175014 -19.130417 -34.061272 -33.043461 -0.000003 -50.973388 -0.000008 -59.425535 5.213397 -18.754998 -0.000000 -0.000002 0.000003 -0.000002 0.000000 -0.000000 0.000000 0.000001 0.000000 -0.000001 0.000000 -0.000001 3.201407 11.186541 -12.441445 -0.797040 40.771585 26.753322 0.000006 57.854708 -0.000012 -53.892535 -8.158962 17.858016 -0.000003 -0.000002 -0.000000 -0.000000 -0.000002 0.000001 0.000002 0.000001 -0.000002 -0.000001 -0.000000 -0.000001 0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000001 -0.000001 0.000000 0.000001 -0.000001 0.000000 -9.052988 -0.900978 -0.054586 62.686930 -1.723459 -3.268609 41.202160 -0.678878 -3.787768 0.000018 -0.000022 0.000036 0.000000 0.000000 0.000000 0.000017 -0.000021 0.000037 0.000003 0.000002 -0.000000 0.000001 0.000002 0.000136 -8.908828 0.829621 0.084579 62.563713 -1.604728 -3.323938 41.584910 2.707215 -2.569663 -0.000008 0.000016 -0.000026 0.000001 0.000000 -0.000000 -0.000006 0.000016 -0.000027 0.000001 0.000001 0.000000 0.000001 0.000002 -0.000099 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
-0.000000 -13.351008 5.524494 4.466805 -0.000001 -0.000001 11.371060 -0.142407 -0.818429 -10.555533 -0.021951 0.419372 -7.535352 13.516301 -0.990428 3.139793 27.283016 -5.818518 0.000002 0.000021 -179.999991 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 -0.000000 0.000000 0.000000 -0.000000 -13.406729 -3.400658 16.103358 -19.166646 -37.043674 -28.966474 -0.000004 -54.753102 -0.000008 -63.881530 6.160630 -19.488582 0.000001 -0.000003 -0.000001 0.000000 0.000000 0.000000 0.000000 0.000001 0.000000 -0.000000 0.000000 -0.000000 3.792744 13.436435 -13.506106 0.593713 42.460090 21.798036 0.000002 62.164345 -0.000015 -58.054217 -8.945067 18.060108 -0.000000 0.000003 0.000000 0.000001 -0.000001 -0.000001 0.000000 0.000003 -0.000001 0.000000 -0.000001 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -9.713570 -0.966204 -0.064131 67.370889 -1.978652 -3.407346 44.321323 -0.717785 -4.019729 0.000018 -0.000024 0.000043 -0.000002 0.000000 0.000001 0.000017 -0.000025 0.000043 0.000000 0.000001 -0.000000 -0.000000 0.000003 0.000137 -9.559009 0.889493 0.095786 67.237844 -1.854317 -3.471700 44.719209 2.800869 -2.882395 -0.000008 0.000021 -0.000034 0.000000 -0.000000 -0.000000 -0.000004 0.000021 -0.000036 0.000001 -0.000000 -0.000000 -0.000001 0.000002 -0.000101 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
-0.000000 -14.294186 5.885888 4.759009 -0.000001 -0.000001 12.192217 -0.158939 -0.876206 -11.246227 -0.026074 0.446579 -9.132625 14.398172 -0.869700 2.651197 29.087170 -6.087205 0.000003 0.000024 -179.999991 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000001 -0.000000 -14.068291 -4.897686 16.977108 -18.947682 -39.863030 -24.949455 -0.000005 -58.358489 -0.000007 -68.108051 7.109719 -20.115710 0.000001 -0.000002 0.000002 -0.000000 -0.000000 -0.000001 -0.000000 0.000003 -0.000000 0.000000 0.000000 0.000002 4.424607 15.578263 -14.571590 2.133464 43.974124 16.912310 0.000005 66.264105 -0.000019 -62.022762 -9.691110 18.207353 -0.000002 0.000002 -0.000001 -0.000001 -0.000004 -0.000001 0.000002 0.000003 -0.000003 0.000000 -0.000000 0.000001 0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 -0.000002 -0.000001 0.000000 -0.000001 -0.000000 -0.000000 -10.349223 -1.028859 -0.074024 71.816973 -2.230596 -3.519350 47.323580 -0.737188 -4.236566 0.000019 -0.000025 0.000044 -0.000001 0.000000 0.000000 0.000021 -0.000025 0.000042 0.000000 0.000001 -0.000000 0.000000 0.000003 0.000136 -10.184596 0.946975 0.107209 71.674796 -2.101630 -3.592712 47.731097 2.868409 -3.199733 -0.000007 0.000019 -0.000030 -0.000001 0.000000 0.000000 -0.000008 0.000018 -0.000032 0.000000 0.000001 -0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
-0.000000 -15.191278 6.229623 5.036946 -0.000001 -0.000001 12.992646 -0.175848 -0.932292 -11.902918 -0.030298 0.472399 -10.654174 15.231184 -0.735606 2.188864 30.798658 -6.329773 0.000003 0.000021 -179.999991 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 -0.000000 -0.000001 0.000001 -0.000000 -14.675353 -6.325439 17.790889 -18.493516 -42.477701 -21.027588 -0.000008 -61.752287 -0.000008 -72.063345 8.037509 -20.638521 -0.000002 -0.000001 0.000005 -0.000000 -0.000001 -0.000000 0.000001 0.000005 0.000001 0.000001 0.000000 -0.000002 5.089664 17.590259 -15.628735 3.773736 45.299942 12.168782 0.000006 70.111263 -0.000014 -65.758124 -10.384030 18.308363 0.000001 -0.000000 0.000002 -0.000001 -0.000003 0.000000 -0.000000 0.000002 0.000000 0.000000 -0.000003 0.000001 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000001 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000001 0.000001 -0.000000 -10.953746 -1.088337 -0.084078 75.978847 -2.473622 -3.606197 50.179419 -0.731933 -4.437760 0.000013 -0.000025 0.000047 0.000000 -0.000001 -0.000000 0.000011 -0.000025 0.000046 -0.000000 0.000001 0.000001 0.000000 0.000003 0.000135 -10.779448 1.001512 0.118653 75.828303 -2.340968 -3.688338 50.590193 2.909570 -3.517887 -0.000007 0.000019 -0.000035 -0.000004 -0.000000 0.000001 -0.000005 0.000018 -0.000036 -0.000003 0.000001 -0.000000 -0.000000 0.000002 -0.000099 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
-0.000000 -16.033073 6.552170 5.297772 -0.000001 -0.000001 13.766258 -0.192934 -0.986271 -12.518869 -0.034530 0.496572 -12.083681 16.007151 -0.593935 1.756624 32.399737 -6.545716 0.000002 0.000021 -179.999991 0.000000 -0.000003 -0.000001 0.000000 -0.000003 -0.000001 0.000000 -0.000003 -0.000001 0.000000 -0.000000 -0.000000 -15.225731 -7.667484 18.539734 -17.836650 -44.855119 -17.243253 -0.000010 -64.900649 -0.000012 -75.711383 8.922844 -21.063293 -0.000003 0.000000 0.000003 -0.000001 -0.000002 0.000001 -0.000000 0.000001 0.000000 0.000002 0.000001 -0.000003 5.778956 19.452128 -16.666915 5.458481 46.433108 7.643803 0.000004 73.668139 -0.000023 -69.224322 -11.012771 18.373535 -0.000002 0.000003 -0.000001 -0.000000 0.000000 0.000000 0.000001 -0.000001 -0.000000 0.000002 0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000003 0.000000 0.000000 -0.000002 0.000000 0.000000 -11.520960 -1.144044 -0.094080 79.816484 -2.702733 -3.670446 52.861122 -0.696785 -4.623189 0.000020 -0.000028 0.000048 -0.000005 -0.000000 0.000000 0.000016 -0.000028 0.000049 0.000003 0.000002 -0.000000 -0.000001 0.000003 0.000136 -11.337457 1.052558 0.129901 79.658434 -2.567261 -3.760940 53.267969 2.924755 -3.833326 -0.000011 0.000020 -0.000033 0.000001 -0.000000 -0.000000 -0.000010 0.000020 -0.000033 0.000001 0.000001 0.000000 -0.000001 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
-0.000000 -16.810349 6.849995 5.538640 -0.000001 -0.000001 14.506992 -0.209976 -1.037736 -13.087358 -0.038666 0.518840 -13.404719 16.718370 -0.451127 1.358449 33.873155 -6.734907 0.000002 0.000021 -179.999991 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 0.000001 -0.000000 0.000000 -15.717659 -8.907746 19.218901 -17.021784 -46.972092 -13.647260 -0.000013 -67.772928 -0.000015 -79.021129 9.747187 -21.399242 0.000003 -0.000001 -0.000001 -0.000000 0.000005 -0.000002 -0.000000 0.000002 -0.000000 0.000003 0.000000 0.000003 6.481869 21.144980 -17.673970 7.127920 47.377665 3.414274 0.000009 76.901708 -0.000025 -72.389207 -11.568302 18.414397 -0.000000 -0.000004 -0.000001 0.000001 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 0.000001 -0.000001 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000000 0.000000 -0.000003 0.000000 -0.000000 -0.000002 0.000000 -0.000000 -12.044693 -1.195388 -0.103805 83.295899 -2.913730 -3.715315 55.342701 -0.626488 -4.792982 0.000019 -0.000025 0.000045 0.000002 -0.000001 -0.000001 0.000016 -0.000024 0.000044 0.000001 0.000002 -0.000000 -0.000001 0.000002 0.000136 -11.852528 1.099577 0.140725 83.131243 -2.776200 -3.813559 55.737615 2.914945 -4.142829 -0.000011 0.000020 -0.000032 -0.000002 -0.000000 0.000001 -0.000008 0.000020 -0.000034 0.000003 0.000002 -0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
-0.000000 -17.513891 7.119570 5.756707 -0.000001 -0.000001 15.208806 -0.226735 -1.086291 -13.601698 -0.042598 0.538952 -14.600909 17.357666 -0.314079 0.998456 35.202173 -6.897551 0.000002 0.000023 -179.999991 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 0.000000 -0.000000 -16.149697 -10.030578 19.823808 -16.104488 -48.814146 -10.299004 -0.000017 -70.341407 -0.000021 -81.965603 10.494797 -21.657485 -0.000003 -0.000003 -0.000002 0.000000 -0.000001 -0.000001 0.000000 0.000001 -0.000001 0.000001 -0.000001 0.000000 7.186308 22.651368 -18.636246 8.722409 48.144614 -0.445362 0.000012 79.783207 -0.000030 -75.224002 -12.043372 18.442861 0.000001 -0.000004 -0.000001 -0.000000 -0.000000 -0.000002 -0.000001 -0.000001 0.000000 0.000000 0.000000 0.000001 -0.000000 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -0.000000 -0.000004 -0.000001 0.000000 -0.000005 -0.000001 -0.000000 -12.518801 -1.241787 -0.113013 86.388253 -3.103208 -3.744367 57.599860 -0.515817 -4.947379 0.000008 -0.000024 0.000047 -0.000003 0.000000 0.000000 0.000006 -0.000024 0.000047 -0.000001 0.000001 0.000000 -0.000001 0.000003 0.000136 -12.318583 1.142034 0.150882 86.217895 -2.964258 -3.849618 57.974099 2.881576 -4.443644 -0.000007 0.000018 -0.000030 -0.000004 -0.000001 -0.000000 -0.000008 0.000018 -0.000032 0.000000 0.000001 0.000000 0.000001 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
-0.000000 -18.134481 7.357359 5.949129 -0.000001 -0.000001 15.865703 -0.242960 -1.131550 -14.055183 -0.046215 0.556654 -15.655825 17.918236 -0.189966 0.680972 36.370443 -7.034115 0.000002 0.000023 -179.999991 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000001 0.000001 0.000000 -0.000000 -16.520503 -11.020730 20.349843 -15.148876 -50.374219 -7.265631 -0.000025 -72.580623 -0.000021 -84.520797 11.152602 -21.849907 -0.000002 -0.000003 0.000002 0.000003 -0.000001 0.000000 0.000001 -0.000001 -0.000001 0.000000 0.000001 -0.000003 7.878873 23.955068 -19.538702 10.185709 48.749806 -3.865522 0.000027 82.286998 -0.000038 -77.702650 -12.432117 18.470694 0.000000 -0.000002 -0.000000 -0.000000 -0.000002 0.000000 0.000003 -0.000002 0.000000 -0.000000 -0.000001 0.000001 -0.000001 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -12.937133 -1.282662 -0.121457 89.068583 -3.268480 -3.761236 59.609786 -0.359578 -5.086504 0.000011 -0.000027 0.000050 0.000002 0.000000 -0.000000 0.000015 -0.000027 0.000050 0.000001 0.000002 -0.000000 -0.000001 0.000002 0.000137 -12.729546 1.179401 0.160125 88.893416 -3.128614 -3.872632 59.953946 2.826413 -4.733490 -0.000015 0.000021 -0.000035 -0.000004 -0.000001 0.000000 -0.000011 0.000021 -0.000035 -0.000001 0.000001 -0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
-0.000000 -18.662907 7.559834 6.113064 -0.000001 -0.000001 16.471694 -0.258387 -1.173135 -14.441149 -0.049404 0.571697 -16.553095 18.393556 -0.086019 0.410496 37.361975 -7.145203 0.000003 0.000024 -179.999991 0.000001 0.000001 -0.000001 0.000001 0.000001 -0.000001 0.000001 0.000001 -0.000001 -0.000000 0.000002 -0.000000 -16.828739 -11.863304 20.792332 -14.224361 -51.650867 -4.620067 -0.000008 -74.466759 -0.000019 -86.664521 11.709786 -21.988283 -0.000000 -0.000000 0.000002 0.000000 -0.000001 0.000001 0.000001 0.000002 0.000002 0.000001 -0.000000 -0.000000 8.545181 25.040824 -20.365123 11.467158 49.211704 -6.782747 0.000033 84.389644 -0.000066 -79.801021 -12.729521 18.508974 -0.000000 -0.000000 -0.000000 -0.000000 -0.000001 -0.000001 -0.000000 -0.000001 -0.000000 0.000000 -0.000002 -0.000000 -0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000001 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000001 -0.000002 0.000000 0.000001 -0.000001 0.000000 -13.293560 -1.317438 -0.128886 91.314411 -3.407424 -3.769398 61.350917 -0.152567 -5.210202 0.000016 -0.000027 0.000048 0.000001 0.000000 0.000000 0.000011 -0.000026 0.000049 0.000002 0.000002 -0.000000 -0.000000 0.000003 0.000137 -13.079362 1.211155 0.168204 91.135323 -3.267018 -3.885983 61.654854 2.751401 -5.010621 -0.000008 0.000020 -0.000033 -0.000003 -0.000000 0.000001 -0.000006 0.000019 -0.000035 0.000001 0.000001 -0.000001 0.000001 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
-0.000000 -19.089951 7.723461 6.245668 -0.000001 -0.000001 17.020826 -0.272746 -1.210676 -14.752958 -0.052053 0.583834 -17.276468 18.777242 -0.009300 0.191712 38.160923 -7.231421 0.000003 0.000024 -179.999991 0.000000 0.000000 0.000002 0.000000 0.000000 0.000002 0.000000 0.000000 0.000002 0.000001 -0.000001 0.000000 -17.072843 -12.543700 21.146361 -13.401547 -52.645681 -2.438088 -0.000020 -75.976716 -0.000028 -88.375039 12.157203 -22.083436 -0.000001 0.000002 0.000000 0.000003 -0.000000 -0.000001 -0.000000 -0.000002 -0.000000 0.000001 0.000000 0.000000 9.170324 25.894068 -21.098470 12.522637 49.548897 -9.139731 0.000066 86.068539 -0.000101 -81.495761 -12.930830 18.567757 -0.000000 0.000004 -0.000000 -0.000002 -0.000001 0.000000 0.000003 0.000001 -0.000000 -0.000000 0.000000 -0.000001 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000002 0.000000 0.000000 -13.581959 -1.345542 -0.135055 93.104180 -3.518303 -3.771992 62.802380 0.110448 -5.317809 0.000016 -0.000028 0.000047 0.000000 -0.000001 -0.000000 0.000015 -0.000027 0.000049 0.000001 0.000002 0.000000 0.000001 0.000003 0.000136 -13.361990 1.236773 0.174872 92.922053 -3.377619 -3.892734 63.055350 2.658584 -5.273803 -0.000006 0.000021 -0.000035 -0.000006 -0.000000 0.000000 -0.000008 0.000020 -0.000034 0.000001 0.000001 -0.000000 0.000001 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
-0.000000 -19.406389 7.844710 6.344093 -0.000001 -0.000001 17.507129 -0.285762 -1.243806 -14.983946 -0.054059 0.592816 -17.809729 19.062812 0.033525 0.029418 38.751553 -7.293232 0.000001 0.000026 -179.999991 -0.000001 0.000002 0.000000 -0.000001 0.000002 0.000000 -0.000001 0.000002 0.000000 0.000000 0.000001 -0.000000 -17.250867 -13.047484 21.406655 -12.747808 -53.360631 -0.795168 -0.000025 -77.087093 -0.000026 -89.629704 12.486692 -22.144554 -0.000003 0.000000 -0.000002 -0.000001 -0.000005 0.000001 0.000000 -0.000001 -0.000001 0.000000 0.000002 -0.000002 9.739395 26.500424 -21.721349 13.314299 49.777968 -10.884059 0.000096 87.300596 -0.000140 -82.763444 -13.030871 18.655760 -0.000000 -0.000000 -0.000001 -0.000000 0.000001 0.000001 -0.000000 -0.000001 -0.000000 0.000000 -0.000002 -0.000001 0.000002 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000002 0.000000 -0.000000 0.000002 0.000000 -0.000000 0.000003 0.000000 -0.000000 0.000002 -0.000000 -0.000000 -13.796179 -1.366396 -0.139729 94.415631 -3.599562 -3.771690 63.943671 0.434808 -5.407905 0.000010 -0.000026 0.000043 -0.000001 -0.000000 -0.000000 0.000009 -0.000025 0.000045 0.000001 0.000003 0.000000 -0.000000 0.000002 0.000136 -13.571366 1.255730 0.179894 94.231325 -3.458762 -3.895486 64.134172 2.549980 -5.522285 -0.000009 0.000020 -0.000033 -0.000001 -0.000000 0.000000 -0.000010 0.000019 -0.000032 0.000000 0.000001 0.000000 0.000001 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
-0.000000 -19.603014 7.920051 6.405492 -0.000001 -0.000001 17.924670 -0.297162 -1.272163 -15.127438 -0.055323 0.598391 -18.136838 19.243522 0.036449 -0.071517 39.117897 -7.330731 0.000002 0.000023 -179.999991 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000002 -0.000002 0.000000 -17.360251 -13.360312 21.567530 -12.322636 -53.795082 0.237035 -0.000015 -77.773329 -0.000030 -90.403776 12.690425 -22.178575 -0.000002 -0.000003 0.000000 0.000001 0.000001 0.000001 -0.000001 -0.000002 -0.000001 0.000001 0.000001 -0.000001 10.238136 26.845309 -22.216502 13.809692 49.911420 -11.966378 0.000141 88.060960 -0.000189 -83.579188 -13.023441 18.780051 0.000001 0.000004 -0.000000 0.000001 0.000001 0.000001 -0.000001 -0.000000 0.000000 -0.000002 0.000002 0.000000 0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000001 -0.000000 0.000002 -0.000001 -0.000000 -13.930080 -1.379422 -0.142691 95.224107 -3.649641 -3.770576 64.754032 0.825954 -5.478057 0.000009 -0.000026 0.000047 -0.000000 -0.000000 -0.000000 0.000009 -0.000028 0.000048 0.000001 0.000001 -0.000000 0.000000 0.000003 0.000136 -13.701451 1.267497 0.183048 95.038483 -3.508806 -3.896257 64.869851 2.427511 -5.755743 -0.000016 0.000019 -0.000032 -0.000002 0.000000 0.000000 -0.000017 0.000017 -0.000031 0.000000 0.000001 0.000001 -0.000001 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 6.427008 -0.000001 -0.000001 18.267472 -0.306676 -1.295383 -15.176755 -0.055761 0.600307 -18.241900 19.312145 -0.005607 -0.106232 39.243702 -7.343457 0.000003 0.000018 -179.999991 0.000000 -0.000002 0.000001 0.000000 -0.000002 0.000001 0.000000 -0.000002 0.000001 0.000000 0.000000 -0.000000 -17.397641 -13.467812 21.622673 -12.173119 -53.942652 0.593892 -0.000023 -78.008567 -0.000012 -90.668876 12.760272 -22.189580 -0.000001 -0.000003 -0.000002 0.000003 0.000002 -0.000000 -0.000001 -0.000001 0.000002 -0.000001 0.000000 0.000001 10.653656 26.913309 -22.567375 13.980522 49.955737 -12.338072 0.000039 88.321395 -0.000124 -83.915636 -12.900645 18.945729 -0.000000 -0.000000 -0.000001 -0.000000 -0.000001 -0.000000 0.000002 0.000000 0.000000 -0.000000 -0.000001 -0.000001 -0.000001 0.000000 -0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 0.000000 -0.000001 -0.000001 0.000000 -0.000001 -0.000000 0.000000 -13.977470 -1.384030 -0.143751 95.500873 -3.666780 -3.770031 65.211859 1.289493 -5.524522 0.000014 -0.000027 0.000050 -0.000001 -0.000000 0.000000 0.000013 -0.000028 0.000051 0.000001 0.000001 0.000000 0.000001 0.000003 0.000136 -13.746159 1.271528 0.184142 95.314791 -3.525937 -3.896358 65.240041 2.292975 -5.974295 -0.000010 0.000019 -0.000032 0.000001 0.000000 -0.000000 -0.000009 0.000018 -0.000031 0.000001 0.000001 0.000000 0.000002 0.000002 -0.000099 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
-0.000000 -19.670601 7.945948 6.339260 0.006938 0.311401 18.344976 -0.325047 -1.648091 -15.176757 -0.055761 0.600307 -18.218037 19.321468 -0.071658 -0.106232 39.243702 -7.343460 0.000004 0.000018 -179.999991 0.000001 -0.000002 0.000001 0.000001 -0.000002 0.000001 0.000001 -0.000002 0.000001 0.000001 -0.000001 -0.000000 -17.397643 -13.467815 21.622673 -12.173115 -53.942642 0.593891 -0.000031 -78.008567 -0.000016 -90.668876 12.760268 -22.189577 -0.000002 0.000005 0.000001 0.000001 -0.000002 0.000002 -0.000001 0.000000 0.000001 -0.000001 0.000002 -0.000002 11.024400 26.832326 -22.834033 13.980521 49.955734 -12.338068 0.000081 88.302325 -0.000123 -83.989948 -12.726649 19.159487 -0.000001 0.000003 0.000002 -0.000002 -0.000001 0.000002 0.000002 -0.000001 0.000000 0.000001 -0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000001 0.000000 0.000000 0.000001 0.000000 -0.000001 -0.000000 0.000000 -0.000002 -0.000000 0.000000 -13.888155 -1.366537 -0.489479 95.500873 -3.666779 -3.770031 65.469160 1.780270 -5.545077 0.000007 -0.000024 0.000045 0.000002 0.000000 0.000000 0.000006 -0.000024 0.000044 0.000001 0.000001 0.000000 -0.000001 0.000003 0.000136 -13.655079 1.268625 -0.028850 95.314791 -3.525937 -3.896359 65.406602 2.144349 -6.180046 -0.000009 0.000019 -0.000032 -0.000001 -0.000000 -0.000001 -0.000009 0.000019 -0.000034 0.000001 0.000001 -0.000000 0.000001 0.000002 -0.000099 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 6.251457 0.013400 0.622884 18.422385 -0.343901 -2.000874 -15.176757 -0.055760 0.600307 -18.170055 19.329471 -0.137808 -0.106233 39.243706 -7.343459 0.000003 0.000020 -179.999991 0.000000 -0.000002 0.000001 0.000000 -0.000002 0.000001 0.000000 -0.000002 0.000001 0.000001 -0.000003 -0.000000 -17.397639 -13.467817 21.622676 -12.173117 -53.942642 0.593889 -0.000031 -78.008574 -0.000018 -90.668876 12.760270 -22.189577 0.000001 0.000003 0.000000 0.000003 0.000001 0.000001 -0.000002 -0.000001 0.000001 -0.000000 -0.000001 0.000001 11.395702 26.741639 -23.087008 13.980519 49.955734 -12.338079 0.000093 88.246823 -0.000133 -84.040410 -12.571417 19.423038 -0.000000 -0.000001 0.000001 -0.000001 0.000000 -0.000002 0.000002 -0.000000 0.000000 -0.000001 0.000002 -0.000002 -0.000001 0.000000 -0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000001 0.000001 -0.000000 0.000001 0.000000 -0.000000 -13.798713 -1.349578 -0.835326 95.500873 -3.666777 -3.770031 65.693989 2.249817 -5.541668 0.000010 -0.000020 0.000036 -0.000003 -0.000000 -0.000000 0.000013 -0.000021 0.000038 0.000000 0.000001 0.000000 0.000001 0.000002 0.000138 -13.563997 1.265384 -0.241860 95.314791 -3.525938 -3.896358 65.547898 1.979626 -6.375102 -0.000010 0.000023 -0.000043 0.000001 -0.000000 0.000000 -0.000006 0.000023 -0.000043 0.000000 0.000000 0.000000 0.000001 0.000002 -0.000102 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
|
||||
-0.000000 -19.670601 7.945948 6.163602 0.019387 0.934440 18.499694 -0.363235 -2.353724 -15.176759 -0.055760 0.600307 -18.099711 19.336184 -0.203895 -0.106233 39.243712 -7.343459 0.000004 0.000020 -179.999991 0.000000 -0.000001 0.000002 0.000000 -0.000001 0.000002 0.000000 -0.000001 0.000002 0.000000 -0.000001 0.000000 -17.397639 -13.467818 21.622676 -12.173119 -53.942645 0.593892 -0.000027 -78.008574 -0.000018 -90.668876 12.760272 -22.189580 -0.000001 0.000003 -0.000001 0.000003 -0.000000 -0.000000 -0.000000 -0.000002 0.000001 -0.000001 0.000000 -0.000002 11.766521 26.642118 -23.326462 13.980520 49.955737 -12.338071 0.000055 88.157532 -0.000086 -84.068618 -12.434021 19.732300 -0.000000 0.000004 -0.000000 -0.000001 0.000000 -0.000003 -0.000001 0.000000 0.000000 -0.000002 0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 0.000000 0.000001 0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000001 -0.000000 0.000000 -13.709146 -1.333155 -1.181287 95.500873 -3.666779 -3.770031 65.887918 2.698801 -5.515615 0.000009 -0.000018 0.000033 -0.000002 0.000000 0.000000 0.000008 -0.000019 0.000033 0.000001 0.000001 -0.000000 0.000001 0.000003 0.000137 -13.472924 1.261804 -0.454887 95.314791 -3.525937 -3.896359 65.665357 1.800403 -6.559807 -0.000015 0.000025 -0.000043 0.000002 -0.000000 0.000000 -0.000013 0.000025 -0.000046 0.000001 0.000001 -0.000000 0.000001 0.000002 -0.000100 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 6.075700 0.024897 1.246066 18.576906 -0.383049 -2.706633 -15.176757 -0.055760 0.600307 -18.008745 19.341636 -0.269758 -0.106233 39.243712 -7.343458 0.000003 0.000020 -179.999991 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000001 -0.000001 -0.000000 -17.397641 -13.467812 21.622673 -12.173118 -53.942648 0.593889 -0.000019 -78.008567 -0.000012 -90.668876 12.760272 -22.189577 0.000003 0.000003 0.000000 0.000001 0.000001 0.000001 -0.000001 0.000002 0.000002 0.000000 0.000002 -0.000003 12.135832 26.534660 -23.552574 13.980519 49.955734 -12.338072 0.000027 88.036992 -0.000131 -84.076111 -12.313472 20.083224 -0.000000 -0.000001 -0.000001 -0.000000 -0.000000 -0.000003 -0.000002 0.000000 -0.000001 -0.000000 0.000002 -0.000001 -0.000001 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000003 0.000000 0.000000 -0.000003 0.000000 -0.000000 -13.619460 -1.317269 -1.527352 95.500873 -3.666777 -3.770032 66.052492 3.127804 -5.468284 0.000009 -0.000013 0.000023 0.000002 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000001 0.000001 -0.000000 0.000001 0.000003 0.000138 -13.381855 1.257886 -0.667929 95.314784 -3.525937 -3.896360 65.760324 1.608255 -6.734529 -0.000011 0.000021 -0.000037 0.000002 -0.000000 -0.000000 -0.000010 0.000021 -0.000039 0.000001 0.000001 0.000001 -0.000000 0.000002 -0.000100 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000
|
||||
-0.000000 -19.670601 7.945948 5.987752 0.029929 1.557754 18.654012 -0.403344 -3.059594 -15.176759 -0.055760 0.600307 -17.898914 19.345877 -0.335235 -0.106233 39.243709 -7.343458 0.000003 0.000020 -179.999991 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000001 -0.000001 -0.000000 -17.397641 -13.467816 21.622675 -12.173116 -53.942652 0.593889 -0.000039 -78.008567 -0.000018 -90.668883 12.760270 -22.189577 -0.000001 0.000001 0.000001 -0.000001 0.000000 -0.000000 -0.000001 -0.000000 0.000001 -0.000000 -0.000001 -0.000002 12.502642 26.420155 -23.765551 13.980526 49.955741 -12.338072 0.000042 87.887855 -0.000098 -84.064377 -12.208739 20.471750 0.000000 -0.000000 -0.000002 0.000001 0.000001 0.000001 0.000003 -0.000001 -0.000000 -0.000000 -0.000000 -0.000001 -0.000000 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000000 0.000001 0.000000 -13.529662 -1.301922 -1.873514 95.500873 -3.666779 -3.770031 66.189266 3.537328 -5.401063 0.000008 -0.000010 0.000016 0.000001 0.000000 -0.000000 0.000007 -0.000010 0.000016 0.000001 0.000001 0.000000 -0.000000 0.000003 0.000136 -13.290793 1.253628 -0.880982 95.314791 -3.525938 -3.896360 65.834213 1.404714 -6.899618 -0.000019 0.000025 -0.000048 0.000004 0.000001 0.000000 -0.000017 0.000027 -0.000048 0.000000 0.000002 0.000000 0.000001 0.000002 -0.000100 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000
|
||||
-0.000000 -19.670601 7.945948 5.899764 0.034484 1.869499 18.730998 -0.424118 -3.412597 -15.176754 -0.055760 0.600307 -17.771966 19.348944 -0.400158 -0.106233 39.243712 -7.343457 0.000003 0.000020 -179.999991 0.000000 0.000000 0.000002 0.000000 0.000000 0.000002 0.000000 0.000000 0.000002 0.000000 -0.000000 -0.000000 -17.397643 -13.467816 21.622675 -12.173120 -53.942648 0.593892 -0.000019 -78.008574 -0.000014 -90.668876 12.760274 -22.189577 0.000002 -0.000000 -0.000002 -0.000001 0.000000 0.000000 -0.000001 -0.000000 0.000001 -0.000000 0.000000 -0.000001 12.865972 26.299512 -23.965623 13.980526 49.955737 -12.338071 0.000039 87.712681 -0.000123 -84.034898 -12.118765 20.893854 -0.000000 -0.000003 0.000001 -0.000000 0.000001 -0.000003 0.000007 -0.000000 -0.000001 -0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000001 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 -13.439759 -1.287115 -2.219768 95.500873 -3.666779 -3.770031 66.299813 3.927821 -5.315383 -0.000003 -0.000010 0.000017 -0.000000 -0.000000 0.000000 -0.000002 -0.000010 0.000019 0.000000 0.000000 -0.000000 0.000000 0.000002 0.000137 -13.199741 1.249031 -1.094046 95.314784 -3.525937 -3.896358 65.888369 1.191292 -7.055424 -0.000010 0.000028 -0.000048 0.000004 0.000001 0.000000 -0.000010 0.000027 -0.000051 0.000001 0.000001 -0.000001 0.000002 0.000002 -0.000100 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000
|
||||
-0.000000 -19.670601 7.945948 5.811742 0.038560 2.181296 18.807875 -0.445369 -3.765638 -15.176757 -0.055760 0.600307 -17.629652 19.350891 -0.464363 -0.106233 39.243716 -7.343459 0.000003 0.000022 -179.999991 0.000000 0.000001 0.000001 0.000000 0.000001 0.000001 0.000000 0.000001 0.000001 0.000001 -0.000002 -0.000000 -17.397643 -13.467815 21.622678 -12.173114 -53.942648 0.593893 -0.000023 -78.008567 -0.000018 -90.668876 12.760270 -22.189580 0.000001 -0.000002 -0.000003 0.000003 -0.000000 0.000001 -0.000001 0.000002 0.000001 0.000003 0.000001 -0.000001 13.224844 26.173599 -24.153038 13.980521 49.955737 -12.338071 0.000006 87.514080 -0.000073 -83.989136 -12.042500 21.345516 -0.000000 0.000002 -0.000000 -0.000001 0.000000 -0.000001 0.000004 -0.000001 0.000000 -0.000000 0.000004 -0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000004 0.000000 0.000000 -0.000004 0.000000 -0.000000 -13.349748 -1.272849 -2.566101 95.500873 -3.666778 -3.770031 66.385682 4.299668 -5.212712 0.000001 -0.000005 0.000008 -0.000001 -0.000000 -0.000000 -0.000001 -0.000005 0.000010 0.000001 -0.000001 -0.000000 -0.000000 0.000002 0.000137 -13.108696 1.244096 -1.307117 95.314791 -3.525938 -3.896359 65.924207 0.969499 -7.202291 -0.000020 0.000029 -0.000055 0.000005 0.000000 -0.000000 -0.000018 0.000030 -0.000055 0.000001 0.000001 0.000000 0.000001 0.000002 -0.000100 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 5.723687 0.042158 2.493139 18.884631 -0.467096 -4.118708 -15.176755 -0.055760 0.600307 -17.473724 19.351765 -0.527681 -0.106233 39.243712 -7.343460 0.000002 0.000020 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000001 -0.000000 -17.397643 -13.467812 21.622673 -12.173117 -53.942645 0.593891 -0.000027 -78.008567 -0.000020 -90.668876 12.760271 -22.189577 0.000000 0.000001 0.000001 -0.000001 -0.000002 0.000002 -0.000001 -0.000002 0.000001 0.000002 0.000001 -0.000002 13.578330 26.043342 -24.328077 13.980520 49.955737 -12.338072 0.000069 87.294660 -0.000103 -83.928524 -11.978862 21.822721 -0.000001 0.000000 -0.000000 -0.000000 0.000001 -0.000002 0.000002 -0.000001 -0.000001 -0.000001 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -13.259642 -1.259124 -2.912512 95.500873 -3.666778 -3.770031 66.448479 4.653206 -5.094551 0.000006 -0.000002 0.000003 0.000000 0.000000 0.000000 0.000006 -0.000001 0.000002 -0.000000 -0.000000 -0.000000 0.000001 0.000002 0.000138 -13.017666 1.238821 -1.520192 95.314791 -3.525938 -3.896360 65.943038 0.740785 -7.340562 -0.000015 0.000031 -0.000057 0.000003 0.000001 0.000000 -0.000014 0.000032 -0.000057 0.000001 0.000002 -0.000000 0.000000 0.000002 -0.000099 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 5.635603 0.045276 2.805022 18.961261 -0.489300 -4.471798 -15.176755 -0.055761 0.600307 -17.305918 19.351630 -0.589946 -0.106233 39.243709 -7.343459 0.000003 0.000020 -179.999991 0.000001 -0.000000 0.000001 0.000001 -0.000000 0.000001 0.000001 -0.000000 0.000001 0.000000 0.000002 -0.000000 -17.397641 -13.467813 21.622678 -12.173123 -53.942652 0.593896 -0.000027 -78.008567 -0.000010 -90.668876 12.760274 -22.189577 -0.000001 -0.000001 -0.000001 0.000002 0.000000 0.000000 -0.000001 0.000001 0.000003 0.000000 0.000000 0.000000 13.925478 25.909621 -24.491025 13.980520 49.955734 -12.338072 0.000022 87.057011 -0.000070 -83.854478 -11.926789 22.321441 -0.000000 0.000003 0.000001 -0.000000 -0.000000 -0.000001 0.000003 -0.000000 -0.000000 -0.000003 -0.000001 -0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000001 -0.000001 -0.000000 0.000001 -0.000001 -0.000000 -13.169439 -1.245943 -3.258987 95.500873 -3.666779 -3.770032 66.489815 4.988744 -4.962437 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 -0.000001 -0.000001 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000003 0.000137 -12.926656 1.233208 -1.733271 95.314791 -3.525938 -3.896358 65.946296 0.506640 -7.470559 -0.000016 0.000032 -0.000055 0.000004 -0.000001 0.000000 -0.000015 0.000031 -0.000058 0.000001 0.000002 -0.000001 -0.000001 0.000002 -0.000098 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 5.547493 0.047916 3.116939 19.037773 -0.511979 -4.824902 -15.176754 -0.055761 0.600307 -17.127990 19.350536 -0.650989 -0.106233 39.243712 -7.343459 0.000002 0.000023 -179.999991 -0.000000 0.000003 0.000002 -0.000000 0.000003 0.000002 -0.000000 0.000003 0.000002 0.000000 0.000000 -0.000000 -17.397638 -13.467813 21.622678 -12.173118 -53.942645 0.593891 -0.000015 -78.008567 -0.000012 -90.668876 12.760271 -22.189574 -0.000000 0.000000 0.000001 0.000002 0.000002 -0.000000 -0.000002 0.000001 0.000002 0.000000 0.000001 -0.000002 14.265385 25.773338 -24.642206 13.980524 49.955737 -12.338072 0.000013 86.803734 -0.000056 -83.768432 -11.885234 22.837685 0.000001 0.000005 -0.000000 0.000001 0.000001 -0.000003 0.000002 -0.000000 0.000000 0.000001 -0.000000 -0.000002 -0.000003 0.000000 0.000000 -0.000002 0.000000 -0.000000 -0.000002 0.000000 0.000000 -0.000001 0.000000 -0.000000 0.000004 -0.000000 0.000000 0.000004 -0.000000 -0.000000 -13.079153 -1.233306 -3.605525 95.500873 -3.666779 -3.770031 66.511317 5.306528 -4.817950 -0.000004 0.000005 -0.000011 0.000001 0.000000 0.000000 -0.000008 0.000005 -0.000009 0.000000 -0.000001 -0.000000 0.000001 0.000003 0.000137 -12.835659 1.227256 -1.946351 95.314791 -3.525937 -3.896360 65.935299 0.268509 -7.592591 -0.000016 0.000036 -0.000062 0.000002 0.000000 0.000001 -0.000015 0.000035 -0.000063 0.000000 0.000002 -0.000000 0.000001 0.000002 -0.000098 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
|
||||
-0.000000 -19.670601 7.945948 5.459367 0.050076 3.428885 19.114138 -0.535130 -5.178011 -15.176755 -0.055760 0.600307 -16.941711 19.348572 -0.710642 -0.106233 39.243712 -7.343457 0.000002 0.000023 -179.999991 -0.000000 0.000001 0.000001 -0.000000 0.000001 0.000001 -0.000000 0.000001 0.000001 0.000000 -0.000002 0.000001 -17.397636 -13.467811 21.622673 -12.173118 -53.942648 0.593891 -0.000027 -78.008567 -0.000006 -90.668876 12.760270 -22.189580 -0.000000 -0.000001 0.000001 0.000002 -0.000001 0.000001 -0.000001 0.000001 0.000003 0.000000 0.000001 -0.000002 14.597149 25.635389 -24.781960 13.980520 49.955734 -12.338071 0.000033 86.537418 -0.000059 -83.671819 -11.853163 23.367431 0.000001 0.000004 -0.000000 -0.000000 0.000001 -0.000002 0.000000 0.000000 0.000000 -0.000003 0.000001 -0.000001 -0.000001 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000001 0.000001 -0.000000 -0.000001 -0.000001 -0.000000 -0.000001 -0.000000 0.000000 -12.988781 -1.221214 -3.952114 95.500873 -3.666779 -3.770031 66.514602 5.606807 -4.662689 -0.000004 0.000006 -0.000011 0.000000 -0.000000 0.000000 -0.000007 0.000006 -0.000011 -0.000000 -0.000001 -0.000000 -0.000001 0.000002 0.000137 -12.744682 1.220966 -2.159429 95.314791 -3.525938 -3.896359 65.911421 0.027846 -7.706964 -0.000014 0.000035 -0.000057 0.000005 0.000001 0.000001 -0.000013 0.000034 -0.000063 0.000001 0.000001 -0.000000 0.000001 0.000002 -0.000100 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 5.371222 0.051756 3.740854 19.190364 -0.558753 -5.531121 -15.176759 -0.055761 0.600307 -16.748816 19.345799 -0.768736 -0.106233 39.243706 -7.343459 0.000002 0.000023 -179.999991 -0.000001 0.000002 0.000001 -0.000001 0.000002 0.000001 -0.000001 0.000002 0.000001 -0.000000 -0.000001 0.000000 -17.397641 -13.467814 21.622675 -12.173113 -53.942645 0.593895 -0.000031 -78.008567 -0.000022 -90.668876 12.760272 -22.189574 0.000001 0.000001 0.000001 0.000003 -0.000001 0.000001 -0.000001 -0.000002 0.000000 0.000001 -0.000000 0.000001 14.919870 25.496657 -24.910615 13.980519 49.955737 -12.338074 0.000043 86.260692 -0.000054 -83.566080 -11.829591 23.906683 0.000000 0.000001 0.000001 -0.000000 0.000001 -0.000001 0.000004 0.000000 0.000000 -0.000000 0.000002 -0.000001 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000004 -0.000001 -0.000000 -0.000003 -0.000001 -0.000000 -12.898327 -1.209668 -4.298747 95.500873 -3.666779 -3.770031 66.501345 5.889790 -4.498317 -0.000010 0.000013 -0.000024 -0.000001 -0.000000 0.000000 -0.000012 0.000013 -0.000024 -0.000000 -0.000002 -0.000000 0.000001 0.000002 0.000137 -12.653725 1.214338 -2.372502 95.314791 -3.525938 -3.896359 65.876041 -0.213912 -7.813943 -0.000021 0.000035 -0.000062 0.000006 -0.000000 0.000000 -0.000020 0.000035 -0.000064 0.000002 0.000002 -0.000001 0.000002 0.000002 -0.000099 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000
|
||||
-0.000000 -19.670601 7.945948 5.283066 0.052956 4.052840 19.266458 -0.582849 -5.884219 -15.176754 -0.055760 0.600307 -16.551051 19.342298 -0.825103 -0.106233 39.243712 -7.343459 0.000002 0.000023 -179.999991 0.000000 -0.000001 0.000001 0.000000 -0.000001 0.000001 0.000000 -0.000001 0.000001 -0.000001 0.000003 0.000001 -17.397641 -13.467815 21.622676 -12.173113 -53.942648 0.593891 -0.000035 -78.008567 -0.000020 -90.668876 12.760269 -22.189577 0.000002 0.000003 0.000003 0.000002 -0.000001 0.000002 -0.000001 0.000000 0.000000 0.000002 0.000002 -0.000002 15.232667 25.358040 -25.028571 13.980515 49.955737 -12.338074 0.000040 85.976140 -0.000057 -83.452665 -11.813533 24.451444 -0.000001 -0.000000 -0.000000 0.000000 0.000000 -0.000004 0.000002 -0.000000 -0.000000 -0.000002 -0.000001 -0.000001 0.000001 0.000000 0.000000 0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000002 -0.000000 0.000000 -0.000003 -0.000001 0.000000 -12.807805 -1.198669 -4.645414 95.500873 -3.666781 -3.770032 66.473211 6.155673 -4.326507 -0.000008 0.000015 -0.000026 -0.000001 -0.000000 0.000000 -0.000008 0.000015 -0.000026 -0.000000 -0.000002 -0.000000 0.000001 0.000003 0.000136 -12.562798 1.207371 -2.585569 95.314791 -3.525938 -3.896359 65.830504 -0.455328 -7.913799 -0.000020 0.000036 -0.000066 0.000004 0.000000 -0.000001 -0.000019 0.000036 -0.000066 0.000001 0.000002 -0.000000 -0.000000 0.000002 -0.000099 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000
|
||||
-0.000000 -19.670601 7.945948 5.194902 0.053676 4.364837 19.342402 -0.607412 -6.237306 -15.176759 -0.055760 0.600307 -16.350175 19.338154 -0.879578 -0.106233 39.243716 -7.343458 0.000002 0.000021 -179.999991 -0.000000 -0.000002 0.000001 -0.000000 -0.000002 0.000001 -0.000000 -0.000002 0.000001 -0.000000 0.000002 0.000000 -17.397641 -13.467814 21.622678 -12.173116 -53.942648 0.593894 -0.000023 -78.008567 -0.000030 -90.668876 12.760276 -22.189579 0.000002 -0.000003 0.000001 0.000000 0.000000 -0.000001 -0.000000 -0.000001 -0.000002 0.000000 0.000001 -0.000002 15.534664 25.220409 -25.136199 13.980520 49.955737 -12.338075 0.000009 85.686369 -0.000058 -83.333007 -11.804077 24.997695 0.000002 0.000010 0.000001 -0.000000 -0.000000 -0.000002 0.000002 -0.000000 -0.000001 -0.000000 0.000002 -0.000001 -0.000000 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000002 -0.000001 0.000000 -0.000001 -0.000001 0.000000 -12.717212 -1.188217 -4.992116 95.500873 -3.666779 -3.770032 66.431950 6.404648 -4.148994 -0.000013 0.000015 -0.000030 -0.000000 0.000000 -0.000000 -0.000015 0.000016 -0.000029 -0.000001 -0.000001 -0.000000 -0.000001 0.000003 0.000136 -12.471888 1.200066 -2.798630 95.314791 -3.525937 -3.896359 65.776190 -0.694951 -8.006776 -0.000021 0.000041 -0.000067 0.000005 0.000000 -0.000000 -0.000020 0.000039 -0.000069 0.000001 0.000002 0.000000 0.000002 0.000002 -0.000099 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 5.106734 0.053916 4.676840 19.418195 -0.632445 -6.590366 -15.176759 -0.055761 0.600307 -16.147935 19.333462 -0.931995 -0.106233 39.243712 -7.343457 0.000002 0.000021 -179.999991 0.000000 -0.000002 -0.000000 0.000000 -0.000002 -0.000000 0.000000 -0.000002 -0.000001 0.000001 0.000003 0.000000 -17.397641 -13.467816 21.622678 -12.173120 -53.942645 0.593888 -0.000027 -78.008567 -0.000014 -90.668876 12.760272 -22.189574 0.000000 -0.000003 0.000000 0.000003 0.000002 -0.000001 0.000000 0.000000 0.000001 0.000001 0.000000 -0.000002 15.825002 25.084640 -25.233908 13.980517 49.955727 -12.338071 0.000019 85.394003 -0.000038 -83.208622 -11.800323 25.541458 0.000001 0.000009 0.000003 -0.000000 -0.000001 -0.000002 0.000001 0.000000 0.000000 -0.000000 -0.000001 -0.000001 0.000001 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000000 0.000000 -12.626556 -1.178313 -5.338837 95.500873 -3.666779 -3.770032 66.379207 6.636882 -3.967522 -0.000009 0.000018 -0.000033 -0.000002 0.000000 -0.000000 -0.000010 0.000018 -0.000032 -0.000001 -0.000002 -0.000000 0.000001 0.000003 0.000137 -12.381007 1.192423 -3.011678 95.314791 -3.525937 -3.896361 65.714445 -0.931352 -8.093101 -0.000025 0.000038 -0.000068 0.000002 0.000000 0.000001 -0.000023 0.000040 -0.000071 0.000001 0.000002 0.000001 -0.000001 0.000002 -0.000098 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 5.018565 0.053676 4.988843 19.493835 -0.657942 -6.943392 -15.176757 -0.055760 0.600307 -15.946082 19.328298 -0.982185 -0.106232 39.243712 -7.343459 0.000002 0.000022 -179.999991 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 -0.000000 0.000000 0.000001 -0.000000 -17.397638 -13.467817 21.622676 -12.173117 -53.942642 0.593887 -0.000027 -78.008567 -0.000014 -90.668876 12.760273 -22.189572 -0.000001 0.000001 0.000000 0.000002 0.000002 -0.000000 -0.000001 -0.000000 0.000002 0.000001 0.000000 -0.000002 16.102811 24.951612 -25.322108 13.980520 49.955734 -12.338071 0.000028 85.101637 -0.000031 -83.080973 -11.801441 26.078743 0.000000 0.000002 0.000001 0.000001 0.000000 -0.000000 0.000003 0.000000 0.000001 -0.000002 0.000002 -0.000001 0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000001 0.000000 -0.000000 -0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 -12.535847 -1.168958 -5.685572 95.500873 -3.666779 -3.770032 66.316786 6.852557 -3.783884 -0.000010 0.000019 -0.000037 -0.000004 -0.000000 -0.000000 -0.000012 0.000020 -0.000036 -0.000001 -0.000002 -0.000000 -0.000002 0.000003 0.000136 -12.290159 1.184442 -3.224714 95.314791 -3.525937 -3.896360 65.646676 -1.163087 -8.172972 -0.000019 0.000037 -0.000067 0.000003 0.000000 0.000000 -0.000020 0.000038 -0.000067 0.000002 0.000003 0.000000 -0.000000 0.000002 -0.000098 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 4.930401 0.052956 5.300842 19.569308 -0.683905 -7.296379 -15.176757 -0.055761 0.600307 -15.746366 19.322766 -1.029986 -0.106233 39.243709 -7.343458 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000002 -0.000000 0.000000 0.000000 -17.397638 -13.467814 21.622673 -12.173119 -53.942645 0.593892 -0.000031 -78.008574 -0.000026 -90.668876 12.760276 -22.189580 0.000000 -0.000004 -0.000002 0.000002 0.000002 -0.000002 -0.000001 0.000000 -0.000001 -0.000001 0.000001 -0.000002 16.367249 24.822174 -25.401231 13.980521 49.955737 -12.338068 0.000027 84.811880 -0.000043 -82.951589 -11.806608 26.605562 0.000001 0.000006 -0.000003 -0.000000 0.000001 -0.000002 0.000004 0.000001 -0.000000 -0.000000 0.000005 -0.000002 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 0.000000 0.000000 -0.000004 -0.000001 0.000000 -0.000004 -0.000001 0.000000 -12.445079 -1.160152 -6.032312 95.500873 -3.666780 -3.770031 66.246415 7.051860 -3.599902 -0.000010 0.000024 -0.000044 -0.000002 -0.000000 0.000000 -0.000013 0.000024 -0.000043 -0.000001 -0.000002 -0.000000 0.000001 0.000002 0.000137 -12.199340 1.176124 -3.437733 95.314791 -3.525937 -3.896360 65.574228 -1.388714 -8.246575 -0.000020 0.000042 -0.000069 0.000003 -0.000000 -0.000001 -0.000021 0.000040 -0.000070 0.000001 0.000002 0.000000 -0.000000 0.000002 -0.000098 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 4.842246 0.051756 5.612828 19.644623 -0.710332 -7.649320 -15.176755 -0.055760 0.600307 -15.550541 19.316969 -1.075235 -0.106234 39.243712 -7.343458 0.000002 0.000022 -179.999991 -0.000001 -0.000001 -0.000000 -0.000001 -0.000001 -0.000000 -0.000001 -0.000001 0.000000 -0.000001 -0.000000 0.000000 -17.397639 -13.467812 21.622671 -12.173115 -53.942652 0.593891 -0.000035 -78.008567 -0.000022 -90.668876 12.760273 -22.189577 -0.000001 0.000000 0.000000 0.000000 0.000002 -0.000000 -0.000001 0.000000 -0.000000 0.000002 0.000001 -0.000002 16.617435 24.697179 -25.471698 13.980521 49.955737 -12.338073 0.000003 84.527334 -0.000041 -82.821938 -11.815093 27.117946 0.000002 0.000003 0.000000 -0.000001 0.000000 -0.000003 0.000002 0.000001 -0.000001 -0.000002 0.000002 -0.000001 -0.000001 0.000000 0.000000 -0.000002 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 0.000000 0.000000 0.000001 -0.000001 0.000000 0.000001 -0.000000 -0.000000 -12.354266 -1.151895 -6.379053 95.500873 -3.666778 -3.770031 66.169896 7.234963 -3.417433 -0.000018 0.000027 -0.000049 0.000001 -0.000000 0.000000 -0.000019 0.000028 -0.000049 -0.000001 -0.000004 -0.000000 0.000000 0.000002 0.000137 -12.108553 1.167468 -3.650738 95.314791 -3.525937 -3.896360 65.498482 -1.606784 -8.314086 -0.000025 0.000047 -0.000083 0.000003 0.000000 0.000001 -0.000022 0.000046 -0.000085 0.000001 0.000002 0.000000 0.000002 0.000002 -0.000098 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000
|
||||
-0.000000 -19.670599 7.945948 4.754100 0.050076 5.924795 19.719769 -0.737222 -8.002210 -15.176752 -0.055759 0.600307 -15.360348 19.311016 -1.117771 -0.106233 39.243712 -7.343458 0.000002 0.000024 -179.999991 0.000000 0.000001 0.000001 0.000000 0.000001 0.000001 0.000000 0.000001 0.000001 0.000001 0.000001 0.000000 -17.397641 -13.467816 21.622675 -12.173113 -53.942645 0.593889 -0.000035 -78.008567 -0.000024 -90.668883 12.760271 -22.189580 0.000001 -0.000000 0.000001 0.000003 0.000003 0.000001 -0.000002 -0.000001 -0.000000 0.000001 -0.000000 -0.000004 16.852559 24.577509 -25.533981 13.980524 49.955737 -12.338079 0.000007 84.250602 -0.000035 -82.693599 -11.826200 27.611924 0.000001 0.000004 -0.000000 -0.000000 0.000000 -0.000001 0.000003 -0.000000 0.000000 -0.000002 0.000002 -0.000001 0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 -0.000001 0.000001 -0.000000 0.000001 0.000001 -0.000000 -12.263411 -1.144189 -6.725784 95.500873 -3.666780 -3.770031 66.088986 7.402073 -3.238351 -0.000017 0.000028 -0.000053 -0.000002 0.000000 0.000000 -0.000020 0.000029 -0.000051 -0.000001 -0.000002 -0.000000 -0.000000 0.000003 0.000136 -12.017804 1.158475 -3.863720 95.314791 -3.525937 -3.896360 65.420809 -1.815844 -8.375643 -0.000019 0.000043 -0.000078 0.000003 -0.000001 -0.000001 -0.000020 0.000044 -0.000080 0.000002 0.000002 0.000001 -0.000001 0.000002 -0.000097 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 4.665972 0.047916 6.236742 19.794737 -0.764569 -8.355031 -15.176755 -0.055760 0.600307 -15.177531 19.305000 -1.157433 -0.106234 39.243712 -7.343459 0.000002 0.000024 -179.999991 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000001 0.000001 0.000000 -17.397638 -13.467811 21.622676 -12.173121 -53.942648 0.593894 -0.000015 -78.008567 -0.000026 -90.668876 12.760276 -22.189577 -0.000001 -0.000000 0.000003 0.000001 0.000001 -0.000001 -0.000000 -0.000002 -0.000001 0.000002 0.000001 -0.000001 17.071749 24.463969 -25.588506 13.980519 49.955737 -12.338071 0.000023 83.984300 -0.000037 -82.568128 -11.839248 28.083550 0.000003 0.000000 -0.000002 0.000000 0.000001 -0.000004 0.000003 0.000000 -0.000000 -0.000003 0.000001 -0.000001 -0.000001 0.000001 -0.000000 -0.000002 0.000001 -0.000000 -0.000002 0.000001 -0.000000 -0.000001 0.000001 -0.000000 -0.000001 -0.000001 0.000000 -0.000001 -0.000001 0.000000 -12.172516 -1.137034 -7.072497 95.500873 -3.666781 -3.770032 66.005521 7.553375 -3.064559 -0.000019 0.000033 -0.000060 0.000001 0.000000 0.000000 -0.000020 0.000033 -0.000060 -0.000001 -0.000002 -0.000000 0.000000 0.000002 0.000136 -11.927089 1.149145 -4.076681 95.314791 -3.525937 -3.896360 65.342623 -2.014446 -8.431373 -0.000023 0.000046 -0.000082 0.000004 0.000000 -0.000000 -0.000023 0.000044 -0.000085 0.000001 0.000002 0.000000 0.000000 0.000002 -0.000098 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
|
||||
-0.000000 -19.670601 7.945948 4.577865 0.045277 6.548659 19.869536 -0.792377 -8.707791 -15.176757 -0.055759 0.600307 -15.003848 19.299032 -1.194060 -0.106234 39.243712 -7.343457 0.000002 0.000026 -179.999991 0.000000 0.000002 0.000001 0.000000 0.000002 0.000001 0.000000 0.000002 0.000002 -0.000000 0.000002 0.000000 -17.397639 -13.467812 21.622673 -12.173117 -53.942645 0.593894 -0.000027 -78.008567 -0.000018 -90.668883 12.760271 -22.189574 0.000000 -0.000002 -0.000001 0.000004 0.000002 -0.000000 0.000000 -0.000001 0.000001 0.000001 -0.000000 -0.000002 17.274156 24.357404 -25.635725 13.980522 49.955737 -12.338072 0.000006 83.731016 -0.000031 -82.447063 -11.853626 28.528875 0.000001 0.000006 -0.000000 -0.000000 -0.000000 -0.000000 -0.000001 -0.000000 0.000000 -0.000002 0.000004 -0.000002 0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000001 -0.000001 -0.000002 0.000001 -0.000001 -12.081590 -1.130428 -7.419187 95.500873 -3.666780 -3.770031 65.921325 7.689087 -2.897982 -0.000024 0.000036 -0.000066 0.000000 -0.000001 -0.000000 -0.000025 0.000035 -0.000067 -0.000002 -0.000004 -0.000000 -0.000000 0.000003 0.000136 -11.836421 1.139479 -4.289617 95.314791 -3.525936 -3.896361 65.265306 -2.201125 -8.481406 -0.000023 0.000046 -0.000083 0.000004 -0.000001 0.000000 -0.000023 0.000045 -0.000085 0.000001 0.000002 -0.000000 0.000000 0.000002 -0.000096 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 4.489782 0.042158 6.860541 19.944151 -0.820639 -9.060470 -15.176757 -0.055760 0.600307 -14.841040 19.293232 -1.227496 -0.106233 39.243709 -7.343457 0.000002 0.000024 -179.999991 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000001 -0.000001 -0.000002 0.000000 -17.397639 -13.467814 21.622676 -12.173120 -53.942645 0.593889 -0.000035 -78.008574 -0.000022 -90.668876 12.760270 -22.189580 -0.000001 -0.000001 -0.000001 0.000000 0.000001 0.000001 -0.000001 -0.000002 -0.000000 -0.000000 0.000000 -0.000000 17.458945 24.258650 -25.676121 13.980515 49.955734 -12.338069 0.000017 83.493359 -0.000034 -82.331988 -11.868739 28.943961 -0.000000 -0.000001 0.000000 -0.000000 0.000001 -0.000006 0.000003 0.000000 -0.000000 -0.000000 0.000002 -0.000001 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000000 -0.000000 0.000001 -0.000001 0.000000 0.000000 -0.000000 -0.000000 -11.990631 -1.124373 -7.765846 95.500873 -3.666782 -3.770031 65.838208 7.809441 -2.740580 -0.000025 0.000038 -0.000073 -0.000000 -0.000001 -0.000000 -0.000027 0.000039 -0.000073 -0.000001 -0.000003 -0.000000 0.000000 0.000002 0.000135 -11.745787 1.129476 -4.502529 95.314791 -3.525937 -3.896360 65.190194 -2.374417 -8.525831 -0.000020 0.000051 -0.000089 0.000001 0.000001 0.000001 -0.000019 0.000050 -0.000093 0.000002 0.000002 -0.000001 0.000002 0.000002 -0.000098 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 4.401725 0.038560 7.172383 20.018578 -0.849358 -9.413067 -15.176755 -0.055759 0.600307 -14.690856 19.287703 -1.257582 -0.106233 39.243712 -7.343459 0.000002 0.000023 -179.999991 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000001 -0.000000 0.000003 -0.000000 -17.397639 -13.467816 21.622678 -12.173117 -53.942645 0.593891 -0.000023 -78.008567 -0.000016 -90.668876 12.760273 -22.189577 -0.000001 0.000001 0.000003 0.000003 0.000003 -0.000001 -0.000000 -0.000004 0.000001 0.000001 0.000001 -0.000002 17.625247 24.168522 -25.710116 13.980526 49.955730 -12.338063 0.000017 83.273940 -0.000036 -82.224454 -11.884039 29.324871 -0.000000 -0.000004 -0.000002 -0.000000 0.000000 -0.000003 0.000002 0.000001 -0.000001 -0.000001 -0.000001 0.000001 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000003 0.000000 0.000000 -0.000002 0.000000 0.000000 -11.899659 -1.118870 -8.112468 95.500873 -3.666782 -3.770031 65.758008 7.914656 -2.594298 -0.000026 0.000043 -0.000081 0.000002 -0.000001 -0.000000 -0.000024 0.000042 -0.000079 -0.000002 -0.000003 -0.000000 -0.000000 0.000003 0.000136 -11.655194 1.119137 -4.715407 95.314791 -3.525937 -3.896359 65.118764 -2.532854 -8.564745 -0.000027 0.000052 -0.000095 0.000003 -0.000001 0.000000 -0.000023 0.000053 -0.000093 0.000001 0.000003 -0.000000 0.000002 0.000002 -0.000098 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 4.313703 0.034484 7.484181 20.092815 -0.878528 -9.765570 -15.176757 -0.055760 0.600307 -14.555031 19.282563 -1.284162 -0.106233 39.243709 -7.343456 0.000002 0.000023 -179.999991 0.000000 -0.000001 -0.000001 0.000000 -0.000001 -0.000001 0.000000 -0.000001 0.000000 0.000000 0.000001 0.000001 -17.397636 -13.467817 21.622680 -12.173124 -53.942645 0.593889 -0.000031 -78.008574 -0.000014 -90.668883 12.760271 -22.189575 0.000002 -0.000001 0.000000 0.000001 0.000002 0.000001 0.000001 0.000001 0.000002 0.000000 0.000001 -0.000003 17.772212 24.087832 -25.738186 13.980522 49.955730 -12.338075 0.000020 83.075345 -0.000035 -82.126099 -11.898990 29.667705 0.000000 0.000003 -0.000001 -0.000000 0.000000 -0.000002 0.000000 0.000001 -0.000001 0.000001 0.000001 -0.000001 -0.000000 -0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000001 -0.000000 0.000000 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000004 -0.000000 -0.000000 -11.808665 -1.113918 -8.459035 95.500873 -3.666782 -3.770031 65.682596 8.004991 -2.461112 -0.000028 0.000044 -0.000082 0.000002 0.000000 0.000000 -0.000028 0.000043 -0.000080 -0.000002 -0.000003 -0.000000 -0.000000 0.000002 0.000135 -11.564651 1.108463 -4.928259 95.314791 -3.525937 -3.896361 65.052354 -2.674962 -8.598223 -0.000020 0.000053 -0.000094 0.000001 0.000000 0.000001 -0.000022 0.000052 -0.000096 0.000002 0.000004 0.000001 0.000000 0.000002 -0.000097 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000
|
||||
-0.000000 -19.670601 7.945948 4.225715 0.029929 7.795926 20.166864 -0.908149 -10.117978 -15.176757 -0.055760 0.600307 -14.435326 19.277915 -1.307080 -0.106233 39.243716 -7.343458 0.000003 0.000022 -179.999991 0.000001 -0.000003 -0.000001 0.000001 -0.000003 -0.000001 0.000001 -0.000003 -0.000001 0.000000 0.000001 0.000000 -17.397643 -13.467813 21.622673 -12.173117 -53.942648 0.593894 -0.000003 -78.008567 -0.000014 -90.668883 12.760275 -22.189577 0.000001 0.000002 0.000003 0.000002 0.000001 0.000001 -0.000001 0.000000 0.000001 0.000001 0.000001 -0.000001 17.898982 24.017375 -25.760772 13.980528 49.955737 -12.338071 0.000019 82.900171 -0.000031 -82.038440 -11.913090 29.968534 0.000002 0.000003 -0.000003 -0.000001 -0.000001 0.000001 0.000003 -0.000000 0.000000 -0.000000 0.000004 -0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000001 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -11.717661 -1.109518 -8.805552 95.500873 -3.666783 -3.770032 65.613782 8.080693 -2.343008 -0.000032 0.000048 -0.000089 0.000001 -0.000000 -0.000000 -0.000035 0.000047 -0.000089 -0.000002 -0.000004 -0.000000 -0.000001 0.000003 0.000134 -11.474155 1.097453 -5.141076 95.314791 -3.525937 -3.896360 64.992358 -2.799268 -8.626350 -0.000029 0.000055 -0.000099 0.000002 -0.000000 0.000001 -0.000026 0.000053 -0.000102 0.000002 0.000003 0.000000 0.000001 0.000002 -0.000096 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001
|
||||
-0.000000 -19.670601 7.945948 4.137767 0.024897 8.107614 20.240714 -0.938219 -10.470275 -15.176757 -0.055760 0.600307 -14.333466 19.273872 -1.326180 -0.106233 39.243712 -7.343457 0.000001 0.000022 -179.999991 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 0.000000 0.000001 -17.397636 -13.467813 21.622678 -12.173126 -53.942652 0.593884 -0.000035 -78.008567 -0.000018 -90.668876 12.760274 -22.189574 0.000002 -0.000002 0.000001 0.000003 0.000002 -0.000000 -0.000001 0.000001 0.000001 0.000000 0.000000 -0.000004 18.004679 23.957971 -25.778314 13.980521 49.955730 -12.338071 0.000006 82.751034 -0.000017 -81.963151 -11.925816 30.223454 0.000000 -0.000000 -0.000001 0.000000 0.000000 -0.000004 0.000002 -0.000000 0.000001 0.000001 0.000001 -0.000002 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000005 0.000000 0.000000 0.000005 0.000001 0.000000 -11.626647 -1.105667 -9.152004 95.500873 -3.666784 -3.770032 65.553396 8.142036 -2.241961 -0.000026 0.000047 -0.000088 0.000001 0.000000 0.000000 -0.000027 0.000047 -0.000089 -0.000002 -0.000004 -0.000000 -0.000001 0.000002 0.000134 -11.383706 1.086108 -5.353855 95.314791 -3.525937 -3.896360 64.940182 -2.904294 -8.649186 -0.000027 0.000054 -0.000094 0.000002 0.000000 -0.000000 -0.000027 0.000053 -0.000093 0.000001 0.000003 0.000001 0.000001 0.000002 -0.000096 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001
|
||||
-0.000000 -19.670601 7.945948 4.049863 0.019387 8.419239 20.314362 -0.968737 -10.822462 -15.176757 -0.055761 0.600307 -14.251208 19.270545 -1.341307 -0.106234 39.243712 -7.343458 0.000002 0.000023 -179.999991 -0.000000 0.000001 0.000001 -0.000000 0.000001 0.000001 -0.000000 0.000001 0.000001 -0.000001 -0.000001 0.000000 -17.397641 -13.467813 21.622675 -12.173121 -53.942652 0.593890 -0.000023 -78.008567 -0.000018 -90.668883 12.760274 -22.189580 0.000002 0.000001 0.000003 -0.000001 -0.000000 0.000001 -0.000001 -0.000001 0.000001 -0.000001 -0.000000 -0.000002 18.088450 23.910399 -25.791254 13.980521 49.955737 -12.338072 0.000022 82.630508 -0.000033 -81.901796 -11.936671 30.428547 -0.000000 -0.000003 0.000001 0.000000 -0.000001 0.000001 0.000004 0.000000 -0.000000 -0.000001 0.000001 -0.000002 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000001 0.000000 0.000000 -0.000001 0.000000 -11.535638 -1.102368 -9.498390 95.500873 -3.666786 -3.770033 65.503297 8.189282 -2.159952 -0.000027 0.000051 -0.000094 -0.000002 -0.000000 -0.000000 -0.000027 0.000050 -0.000090 -0.000002 -0.000004 -0.000000 0.000000 0.000003 0.000133 -11.293312 1.074428 -5.566598 95.314791 -3.525936 -3.896360 64.897186 -2.988553 -8.666801 -0.000029 0.000056 -0.000102 0.000004 0.000001 -0.000000 -0.000031 0.000058 -0.000101 0.000002 0.000003 0.000000 -0.000000 0.000002 -0.000096 -0.000001 0.000000 0.000001 -0.000001 0.000000 0.000001
|
||||
-0.000000 -19.670601 7.945948 3.962010 0.013401 8.730798 20.387802 -0.999698 -11.174523 -15.176757 -0.055761 0.600307 -14.190291 19.268051 -1.352307 -0.106233 39.243709 -7.343457 0.000002 0.000023 -179.999991 0.000000 0.000001 0.000001 0.000000 0.000001 0.000001 0.000000 0.000001 0.000001 0.000000 0.000002 0.000000 -17.397638 -13.467811 21.622673 -12.173117 -53.942652 0.593889 -0.000023 -78.008567 -0.000022 -90.668883 12.760268 -22.189574 0.000001 0.000000 0.000001 0.000001 -0.000002 0.000002 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000001 18.149389 23.875452 -25.800000 13.980521 49.955730 -12.338069 0.000009 82.541211 -0.000023 -81.855992 -11.945124 30.579898 -0.000000 0.000000 -0.000003 -0.000001 -0.000001 -0.000002 -0.000000 -0.000000 0.000000 0.000001 -0.000001 -0.000002 0.000001 0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000001 0.000000 0.000000 0.000001 0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000002 -0.000001 -0.000000 -11.444627 -1.099620 -9.844693 95.500873 -3.666784 -3.770032 65.465294 8.222701 -2.098957 -0.000033 0.000052 -0.000097 0.000002 -0.000000 -0.000000 -0.000032 0.000053 -0.000098 -0.000002 -0.000003 -0.000000 0.000001 0.000002 0.000135 -11.202970 1.062414 -5.779301 95.314791 -3.525936 -3.896361 64.864797 -3.050570 -8.679275 -0.000025 0.000058 -0.000102 0.000001 -0.000001 0.000001 -0.000025 0.000058 -0.000103 0.000002 0.000004 0.000000 0.000001 0.000002 -0.000096 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 3.874207 0.006938 9.042280 20.461032 -1.031101 -11.526464 -15.176757 -0.055761 0.600307 -14.152463 19.266478 -1.359022 -0.106233 39.243716 -7.343457 0.000001 0.000026 -179.999991 -0.000000 0.000003 0.000000 -0.000000 0.000003 0.000000 -0.000000 0.000003 0.000000 -0.000000 0.000001 0.000000 -17.397641 -13.467814 21.622678 -12.173119 -53.942648 0.593890 -0.000023 -78.008567 -0.000026 -90.668883 12.760270 -22.189579 -0.000002 0.000000 0.000003 0.000000 -0.000003 0.000002 -0.000001 0.000002 -0.000001 0.000001 0.000001 -0.000002 18.186613 23.853910 -25.804960 13.980526 49.955737 -12.338072 0.000012 82.485702 -0.000026 -81.827326 -11.950635 30.673594 -0.000001 -0.000000 -0.000001 0.000000 0.000000 -0.000005 -0.000002 -0.000000 0.000000 0.000001 -0.000000 -0.000002 0.000001 0.000001 0.000000 -0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000001 0.000000 0.000000 -0.000001 0.000000 0.000001 -0.000001 0.000000 -11.353625 -1.097423 -10.190915 95.500873 -3.666785 -3.770032 65.441197 8.242557 -2.060935 -0.000036 0.000058 -0.000105 0.000001 0.000000 0.000000 -0.000037 0.000057 -0.000104 -0.000003 -0.000005 -0.000000 0.000000 0.000003 0.000133 -11.112678 1.050066 -5.991963 95.314791 -3.525936 -3.896361 64.844368 -3.088864 -8.686687 -0.000028 0.000061 -0.000106 0.000003 -0.000001 -0.000000 -0.000031 0.000060 -0.000109 0.000001 0.000003 0.000000 0.000000 0.000002 -0.000095 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 3.786460 -0.000000 9.353680 20.534050 -1.062945 -11.878268 -15.176755 -0.055761 0.600307 -14.139467 19.265935 -1.361296 -0.106233 39.243709 -7.343458 0.000002 0.000024 -179.999991 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000003 0.000001 -17.397641 -13.467816 21.622678 -12.173115 -53.942648 0.593889 -0.000027 -78.008567 -0.000012 -90.668876 12.760273 -22.189575 0.000002 0.000002 0.000001 0.000001 0.000002 -0.000000 -0.000001 -0.000001 0.000002 0.000001 -0.000000 -0.000001 18.199222 23.846557 -25.806533 13.980526 49.955734 -12.338068 0.000002 82.466625 -0.000036 -81.817429 -11.952617 30.705710 0.000000 0.000001 -0.000000 0.000000 -0.000001 -0.000001 -0.000001 0.000000 -0.000001 -0.000000 -0.000003 0.000001 -0.000001 -0.000000 -0.000000 -0.000001 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000001 -0.000000 0.000000 -0.000003 -0.000001 0.000000 -0.000005 -0.000001 0.000001 -11.262637 -1.095775 -10.537043 95.500873 -3.666787 -3.770032 65.432755 8.249123 -2.047835 -0.000036 0.000060 -0.000112 -0.000001 -0.000000 -0.000000 -0.000040 0.000061 -0.000112 -0.000002 -0.000005 -0.000000 -0.000001 0.000003 0.000132 -11.022449 1.037385 -6.204579 95.314791 -3.525936 -3.896361 64.837251 -3.101958 -8.689132 -0.000024 0.000062 -0.000109 0.000004 -0.000000 0.000000 -0.000026 0.000062 -0.000108 0.000001 0.000003 -0.000000 0.000001 0.000002 -0.000095 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001
|
||||
-0.000000 -19.670601 7.945948 3.874207 0.006938 9.042280 20.461032 -1.031101 -11.526464 -15.176755 -0.055760 0.600307 -14.152827 19.266230 -1.356886 -0.106233 39.243712 -7.343459 0.000002 0.000024 -179.999991 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 0.000000 0.000000 -0.000000 -17.397641 -13.467815 21.622678 -12.173118 -53.942648 0.593890 -0.000039 -78.008567 -0.000034 -90.668883 12.760272 -22.189579 -0.000001 0.000002 0.000003 -0.000001 0.000001 0.000001 0.000001 0.000000 -0.000002 0.000001 0.000001 -0.000002 18.175265 23.857151 -25.796841 13.980524 49.955734 -12.338074 0.000012 82.485702 -0.000023 -81.823890 -11.956362 30.667584 -0.000000 -0.000001 -0.000000 -0.000000 0.000002 -0.000004 0.000003 -0.000000 0.000000 -0.000000 0.000001 -0.000003 0.000001 0.000001 0.000000 -0.000001 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000001 0.000001 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -11.353625 -1.097422 -10.190915 95.500873 -3.666785 -3.770032 65.432727 8.226439 -2.059197 -0.000033 0.000056 -0.000104 0.000001 -0.000000 -0.000000 -0.000036 0.000056 -0.000104 -0.000003 -0.000005 -0.000000 -0.000000 0.000003 0.000133 -11.112678 1.050066 -5.991963 95.314791 -3.525936 -3.896361 64.838965 -3.084413 -8.680210 -0.000024 0.000060 -0.000102 0.000000 -0.000000 -0.000000 -0.000025 0.000058 -0.000105 0.000001 0.000004 0.000000 0.000000 0.000002 -0.000095 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 3.962010 0.013401 8.730798 20.387802 -0.999698 -11.174523 -15.176757 -0.055761 0.600307 -14.191704 19.267096 -1.344059 -0.106233 39.243709 -7.343457 0.000002 0.000027 -179.999991 -0.000001 0.000003 0.000001 -0.000001 0.000003 0.000001 -0.000001 0.000003 0.000001 -0.000000 0.000000 0.000000 -17.397638 -13.467811 21.622673 -12.173117 -53.942652 0.593889 -0.000023 -78.008567 -0.000022 -90.668883 12.760268 -22.189574 0.000001 0.000000 0.000001 0.000001 -0.000002 0.000002 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000001 18.105534 23.887950 -25.768629 13.980529 49.955737 -12.338072 0.000002 82.541211 -0.000026 -81.842721 -11.967267 30.556641 0.000000 0.000004 0.000000 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000000 0.000001 -0.000000 -0.000001 0.000001 0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000001 0.000000 0.000000 0.000001 0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000002 -0.000001 -0.000000 -11.444627 -1.099621 -9.844693 95.500873 -3.666784 -3.770032 65.432604 8.160459 -2.092253 -0.000031 0.000054 -0.000101 -0.000002 -0.000000 0.000000 -0.000035 0.000054 -0.000100 -0.000002 -0.000003 -0.000000 0.000001 0.000002 0.000135 -11.202970 1.062414 -5.779301 95.314791 -3.525936 -3.896361 64.843985 -3.033382 -8.654265 -0.000024 0.000057 -0.000101 -0.000000 -0.000001 -0.000000 -0.000023 0.000057 -0.000102 0.000002 0.000004 0.000000 0.000001 0.000002 -0.000096 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 4.049863 0.019387 8.419238 20.314362 -0.968736 -10.822462 -15.176757 -0.055761 0.600307 -14.254273 19.268471 -1.323412 -0.106232 39.243706 -7.343457 0.000002 0.000024 -179.999991 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -17.397641 -13.467813 21.622675 -12.173121 -53.942652 0.593890 -0.000027 -78.008567 -0.000018 -90.668883 12.760270 -22.189579 -0.000000 0.000005 0.000002 0.000001 0.000000 0.000003 -0.000002 -0.000001 0.000001 -0.000001 -0.000000 -0.000002 17.993252 23.937455 -25.723111 13.980520 49.955734 -12.338078 -0.000008 82.630502 -0.000036 -81.873075 -11.984740 30.378065 0.000003 0.000001 -0.000000 -0.000000 0.000000 -0.000001 -0.000001 0.000001 -0.000001 -0.000001 0.000002 -0.000004 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000001 0.000000 0.000000 -0.000001 0.000000 -11.535638 -1.102368 -9.498390 95.500873 -3.666786 -3.770033 65.432338 8.054262 -2.145446 -0.000027 0.000050 -0.000095 0.000001 -0.000000 -0.000000 -0.000029 0.000050 -0.000094 -0.000002 -0.000004 -0.000000 0.000000 0.000003 0.000132 -11.293312 1.074428 -5.566598 95.314791 -3.525936 -3.896360 64.852004 -2.951250 -8.612507 -0.000025 0.000055 -0.000098 0.000005 -0.000001 -0.000000 -0.000022 0.000054 -0.000098 0.000002 0.000003 0.000001 -0.000000 0.000002 -0.000096 -0.000001 -0.000000 0.000001 -0.000001 -0.000000 0.000001
|
||||
-0.000000 -19.670601 7.945948 4.137767 0.024897 8.107614 20.240714 -0.938219 -10.470275 -15.176757 -0.055760 0.600307 -14.338710 19.270294 -1.295547 -0.106233 39.243712 -7.343457 0.000002 0.000024 -179.999991 -0.000000 0.000001 0.000001 -0.000000 0.000001 0.000001 -0.000000 0.000001 0.000001 -0.000000 -0.000002 0.000000 -17.397636 -13.467813 21.622678 -12.173126 -53.942652 0.593884 -0.000035 -78.008567 -0.000018 -90.668876 12.760274 -22.189574 0.000002 -0.000002 0.000001 0.000003 0.000002 -0.000000 -0.000001 0.000001 0.000001 0.000000 0.000000 -0.000004 17.841557 24.004135 -25.661478 13.980524 49.955737 -12.338072 -0.000001 82.751034 -0.000040 -81.914145 -12.008168 30.136997 -0.000000 0.000001 -0.000006 0.000000 0.000000 -0.000004 -0.000001 -0.000000 -0.000001 -0.000001 0.000002 -0.000002 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000005 0.000000 0.000000 0.000005 0.000001 0.000000 -11.626647 -1.105667 -9.152004 95.500873 -3.666784 -3.770032 65.431805 7.910942 -2.217217 -0.000028 0.000048 -0.000089 -0.000000 -0.000000 -0.000000 -0.000029 0.000048 -0.000089 -0.000002 -0.000004 -0.000000 -0.000001 0.000002 0.000134 -11.383706 1.086108 -5.353855 95.314791 -3.525937 -3.896360 64.862741 -2.840391 -8.556181 -0.000027 0.000057 -0.000103 0.000003 -0.000001 -0.000000 -0.000026 0.000055 -0.000102 0.000001 0.000003 0.000001 0.000001 0.000002 -0.000096 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001
|
||||
-0.000000 -19.670601 7.945948 4.225715 0.029929 7.795927 20.166864 -0.908149 -10.117978 -15.176757 -0.055761 0.600307 -14.443203 19.272495 -1.261060 -0.106233 39.243712 -7.343457 0.000002 0.000024 -179.999991 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 -0.000000 0.000002 0.000000 -17.397643 -13.467812 21.622671 -12.173116 -53.942648 0.593894 -0.000027 -78.008567 -0.000022 -90.668876 12.760274 -22.189579 0.000001 -0.000001 -0.000001 -0.000001 0.000000 0.000000 -0.000001 -0.000001 -0.000000 0.000001 0.000001 -0.000001 17.653628 24.086447 -25.584902 13.980515 49.955737 -12.338077 0.000002 82.900164 -0.000038 -81.965125 -12.036944 29.838576 -0.000002 -0.000000 0.000003 0.000001 -0.000001 -0.000003 -0.000001 0.000001 -0.000002 -0.000002 0.000004 -0.000002 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000000 -0.000001 0.000000 -0.000001 -0.000000 -0.000000 -11.717661 -1.109518 -8.805550 95.500873 -3.666783 -3.770032 65.430904 7.733570 -2.305998 -0.000032 0.000048 -0.000089 -0.000000 -0.000000 -0.000000 -0.000034 0.000049 -0.000087 -0.000002 -0.000004 -0.000000 -0.000001 0.000003 0.000134 -11.474155 1.097453 -5.141075 95.314791 -3.525937 -3.896359 64.875869 -2.703193 -8.486511 -0.000026 0.000055 -0.000096 0.000003 -0.000001 -0.000000 -0.000023 0.000054 -0.000098 0.000002 0.000003 0.000000 0.000002 0.000002 -0.000097 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001
|
||||
-0.000000 -19.670601 7.945948 4.313703 0.034484 7.484181 20.092815 -0.878528 -9.765570 -15.176757 -0.055760 0.600307 -14.565923 19.275002 -1.220553 -0.106234 39.243709 -7.343457 0.000002 0.000022 -179.999991 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000001 -0.000000 0.000001 0.000000 -17.397636 -13.467817 21.622680 -12.173124 -53.942645 0.593889 -0.000031 -78.008574 -0.000014 -90.668883 12.760271 -22.189575 0.000002 -0.000001 0.000000 0.000001 0.000002 0.000001 0.000001 0.000001 0.000002 0.000000 0.000001 -0.000003 17.432586 24.182838 -25.494528 13.980519 49.955734 -12.338072 0.000013 83.075352 -0.000028 -82.025197 -12.070403 29.487955 0.000002 0.000007 -0.000001 0.000000 0.000001 -0.000006 0.000002 -0.000000 0.000000 -0.000002 0.000002 -0.000002 -0.000000 -0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000001 -0.000000 0.000000 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000004 -0.000000 -0.000000 -11.808665 -1.113918 -8.459035 95.500873 -3.666782 -3.770031 65.429490 7.525251 -2.410237 -0.000025 0.000043 -0.000079 -0.000001 -0.000000 0.000000 -0.000025 0.000044 -0.000080 -0.000002 -0.000003 -0.000000 -0.000000 0.000002 0.000135 -11.564651 1.108463 -4.928259 95.314791 -3.525937 -3.896361 64.891073 -2.542032 -8.404732 -0.000022 0.000052 -0.000093 0.000004 0.000001 0.000001 -0.000023 0.000050 -0.000093 0.000002 0.000004 0.000001 0.000000 0.000002 -0.000097 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000
|
||||
-0.000000 -19.670601 7.945948 4.401725 0.038560 7.172383 20.018578 -0.849358 -9.413067 -15.176755 -0.055759 0.600307 -14.705059 19.277751 -1.174620 -0.106233 39.243716 -7.343457 0.000002 0.000022 -179.999991 0.000000 -0.000001 -0.000001 0.000000 -0.000001 -0.000001 0.000000 -0.000001 0.000000 0.000000 0.000002 0.000000 -17.397639 -13.467816 21.622678 -12.173117 -53.942645 0.593891 -0.000023 -78.008567 -0.000016 -90.668876 12.760273 -22.189577 -0.000001 0.000001 0.000003 0.000003 0.000003 -0.000001 -0.000000 -0.000004 0.000001 0.000001 0.000001 -0.000002 17.181580 24.291735 -25.391489 13.980513 49.955734 -12.338072 0.000021 83.273933 -0.000029 -82.093594 -12.107920 29.090271 -0.000001 0.000002 0.000001 -0.000000 -0.000001 -0.000002 0.000003 -0.000000 0.000000 -0.000002 0.000002 -0.000003 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000003 0.000000 0.000000 -0.000002 0.000000 0.000000 -11.899659 -1.118870 -8.112468 95.500873 -3.666782 -3.770031 65.427434 7.289064 -2.528365 -0.000026 0.000042 -0.000078 0.000001 0.000000 0.000000 -0.000026 0.000042 -0.000076 -0.000002 -0.000003 -0.000000 -0.000000 0.000003 0.000136 -11.655194 1.119137 -4.715407 95.314791 -3.525937 -3.896359 64.908053 -2.359296 -8.312085 -0.000032 0.000053 -0.000094 0.000003 -0.000000 -0.000000 -0.000033 0.000053 -0.000093 0.000001 0.000003 -0.000000 0.000002 0.000002 -0.000098 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 4.489782 0.042158 6.860543 19.944151 -0.820639 -9.060470 -15.176757 -0.055760 0.600307 -14.858783 19.280659 -1.123863 -0.106234 39.243712 -7.343458 0.000002 0.000020 -179.999991 -0.000000 -0.000004 -0.000001 -0.000000 -0.000004 -0.000001 -0.000000 -0.000004 0.000000 -0.000000 0.000000 0.000000 -17.397639 -13.467814 21.622676 -12.173120 -53.942645 0.593889 -0.000035 -78.008574 -0.000022 -90.668876 12.760270 -22.189580 -0.000001 -0.000001 -0.000001 0.000000 0.000001 0.000001 -0.000001 -0.000002 -0.000000 -0.000000 0.000000 -0.000000 16.903723 24.411574 -25.276918 13.980520 49.955734 -12.338071 0.000006 83.493359 -0.000034 -82.169464 -12.148825 28.650666 0.000002 0.000004 -0.000002 0.000001 0.000001 -0.000003 0.000001 0.000000 0.000001 -0.000002 0.000001 -0.000002 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000000 -0.000000 0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -11.990631 -1.124373 -7.765845 95.500873 -3.666782 -3.770031 65.424586 7.028093 -2.658830 -0.000025 0.000041 -0.000074 0.000000 -0.000000 0.000000 -0.000025 0.000042 -0.000074 -0.000001 -0.000003 -0.000000 0.000000 0.000002 0.000135 -11.745787 1.129476 -4.502528 95.314791 -3.525936 -3.896360 64.926440 -2.157358 -8.209800 -0.000025 0.000049 -0.000088 0.000001 0.000000 0.000001 -0.000023 0.000051 -0.000089 0.000002 0.000002 -0.000000 0.000002 0.000002 -0.000098 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 4.577865 0.045277 6.548659 19.869536 -0.792376 -8.707791 -15.176757 -0.055759 0.600307 -15.025281 19.283668 -1.068883 -0.106234 39.243706 -7.343458 0.000002 0.000023 -179.999991 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000001 -0.000000 0.000003 0.000000 -17.397639 -13.467812 21.622673 -12.173117 -53.942645 0.593894 -0.000027 -78.008567 -0.000018 -90.668883 12.760271 -22.189574 0.000000 -0.000002 -0.000001 0.000004 0.000002 -0.000000 0.000000 -0.000001 0.000001 0.000001 0.000000 -0.000002 16.602180 24.540798 -25.151979 13.980521 49.955737 -12.338072 0.000003 83.731002 -0.000035 -82.252075 -12.192502 28.174327 0.000001 0.000000 0.000003 0.000000 -0.000000 0.000001 -0.000001 -0.000000 -0.000000 -0.000002 -0.000000 -0.000001 0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000001 -0.000000 -0.000002 0.000000 -0.000000 -12.081590 -1.130428 -7.419187 95.500873 -3.666780 -3.770031 65.420829 6.745431 -2.800069 -0.000021 0.000036 -0.000067 0.000000 -0.000000 0.000000 -0.000024 0.000037 -0.000068 -0.000002 -0.000004 -0.000000 -0.000000 0.000003 0.000136 -11.836421 1.139479 -4.289617 95.314791 -3.525936 -3.896361 64.945947 -1.938606 -8.099097 -0.000025 0.000048 -0.000085 0.000002 -0.000000 0.000001 -0.000023 0.000046 -0.000084 0.000001 0.000002 -0.000000 0.000000 0.000002 -0.000096 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 4.665972 0.047916 6.236741 19.794737 -0.764569 -8.355032 -15.176755 -0.055761 0.600307 -15.202727 19.286707 -1.010278 -0.106234 39.243712 -7.343458 0.000002 0.000023 -179.999991 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000001 -0.000001 0.000002 0.000001 -17.397638 -13.467811 21.622678 -12.173121 -53.942648 0.593894 -0.000011 -78.008567 -0.000026 -90.668876 12.760276 -22.189577 -0.000001 -0.000000 0.000003 0.000002 0.000001 -0.000001 0.000000 -0.000001 -0.000001 0.000001 0.000001 -0.000001 16.280108 24.677868 -25.017856 13.980517 49.955734 -12.338075 -0.000001 83.984300 -0.000033 -82.340512 -12.238307 27.666412 0.000001 0.000005 0.000001 0.000001 0.000001 -0.000001 0.000001 -0.000000 0.000000 -0.000000 0.000003 -0.000002 -0.000001 0.000001 -0.000000 -0.000002 0.000001 -0.000000 -0.000002 0.000001 -0.000000 -0.000001 0.000001 -0.000000 -0.000001 -0.000001 0.000000 -0.000001 -0.000001 0.000000 -12.172516 -1.137033 -7.072497 95.500873 -3.666781 -3.770032 65.416055 6.444185 -2.950548 -0.000019 0.000032 -0.000061 0.000000 0.000000 0.000000 -0.000019 0.000032 -0.000060 -0.000001 -0.000002 -0.000000 0.000000 0.000002 0.000136 -11.927089 1.149145 -4.076681 95.314791 -3.525937 -3.896360 64.966287 -1.705431 -7.981220 -0.000022 0.000046 -0.000079 0.000004 0.000000 0.000000 -0.000020 0.000045 -0.000080 0.000001 0.000002 0.000000 0.000000 0.000002 -0.000098 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
|
||||
-0.000000 -19.670599 7.945948 4.754100 0.050076 5.924795 19.719769 -0.737222 -8.002210 -15.176752 -0.055759 0.600307 -15.389302 19.289716 -0.948649 -0.106233 39.243709 -7.343457 0.000002 0.000021 -179.999991 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000001 -0.000001 0.000002 0.000001 -17.397641 -13.467816 21.622675 -12.173113 -53.942645 0.593889 -0.000035 -78.008567 -0.000024 -90.668883 12.760271 -22.189580 0.000001 -0.000000 0.000001 0.000003 0.000003 0.000001 -0.000002 -0.000001 -0.000000 0.000001 -0.000000 -0.000004 15.940707 24.821256 -24.875768 13.980520 49.955737 -12.338071 0.000016 84.250602 -0.000035 -82.433990 -12.285656 27.132121 0.000001 0.000005 0.000003 0.000000 0.000001 -0.000003 0.000002 0.000001 0.000000 0.000001 0.000001 -0.000001 0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 -0.000001 0.000001 -0.000000 0.000001 0.000001 -0.000000 -12.263411 -1.144189 -6.725784 95.500873 -3.666780 -3.770031 65.410188 6.127445 -3.108696 -0.000020 0.000029 -0.000054 -0.000000 0.000000 -0.000000 -0.000020 0.000029 -0.000054 -0.000001 -0.000002 -0.000000 -0.000000 0.000003 0.000136 -12.017804 1.158475 -3.863719 95.314791 -3.525937 -3.896360 64.987133 -1.460215 -7.857377 -0.000015 0.000044 -0.000079 0.000001 -0.000000 0.000000 -0.000015 0.000042 -0.000080 0.000002 0.000002 0.000001 -0.000001 0.000002 -0.000097 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 4.842246 0.051756 5.612828 19.644623 -0.710332 -7.649320 -15.176755 -0.055760 0.600307 -15.583181 19.292645 -0.884598 -0.106233 39.243712 -7.343457 0.000002 0.000022 -179.999991 -0.000000 -0.000001 -0.000001 -0.000000 -0.000001 -0.000001 -0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -17.397639 -13.467812 21.622671 -12.173115 -53.942652 0.593891 -0.000035 -78.008567 -0.000022 -90.668876 12.760273 -22.189577 -0.000001 0.000000 0.000000 0.000000 0.000002 -0.000000 -0.000001 0.000000 -0.000000 0.000002 0.000001 -0.000002 15.587170 24.969425 -24.726936 13.980521 49.955744 -12.338074 0.000007 84.527334 -0.000041 -82.531641 -12.333958 26.576650 0.000001 -0.000000 0.000002 -0.000000 0.000001 -0.000003 -0.000000 0.000000 0.000000 -0.000001 0.000002 -0.000000 -0.000001 0.000000 0.000000 -0.000002 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 0.000000 0.000000 0.000001 -0.000001 0.000000 0.000001 -0.000000 -0.000000 -12.354266 -1.151895 -6.379054 95.500873 -3.666778 -3.770031 65.403146 5.798314 -3.272976 -0.000018 0.000026 -0.000048 -0.000001 0.000000 0.000000 -0.000020 0.000025 -0.000049 -0.000001 -0.000003 -0.000000 0.000000 0.000002 0.000137 -12.108553 1.167468 -3.650737 95.314791 -3.525937 -3.896360 65.008245 -1.205357 -7.728794 -0.000021 0.000045 -0.000077 0.000003 0.000000 -0.000000 -0.000020 0.000046 -0.000078 0.000001 0.000002 0.000000 0.000002 0.000002 -0.000098 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 4.930401 0.052956 5.300842 19.569308 -0.683905 -7.296379 -15.176757 -0.055761 0.600307 -15.782535 19.295443 -0.818727 -0.106233 39.243716 -7.343457 0.000002 0.000022 -179.999991 0.000000 -0.000002 0.000001 0.000000 -0.000002 0.000001 0.000000 -0.000002 0.000002 -0.000001 0.000002 0.000001 -17.397638 -13.467814 21.622675 -12.173119 -53.942645 0.593892 -0.000031 -78.008574 -0.000026 -90.668876 12.760276 -22.189580 0.000000 -0.000004 -0.000002 0.000002 0.000002 -0.000002 -0.000001 0.000000 -0.000001 -0.000001 0.000001 -0.000002 15.222764 25.120937 -24.572668 13.980526 49.955737 -12.338072 0.000012 84.811880 -0.000048 -82.632564 -12.382666 26.005237 -0.000000 -0.000003 0.000001 -0.000001 -0.000000 -0.000004 0.000000 -0.000000 -0.000001 -0.000001 0.000001 -0.000003 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 0.000000 0.000000 -0.000004 -0.000001 0.000000 -0.000004 -0.000001 0.000000 -12.445079 -1.160152 -6.032313 95.500873 -3.666780 -3.770031 65.394936 5.459902 -3.441856 -0.000016 0.000022 -0.000042 -0.000002 0.000000 0.000000 -0.000016 0.000022 -0.000042 -0.000001 -0.000002 -0.000000 0.000001 0.000002 0.000137 -12.199340 1.176124 -3.437733 95.314791 -3.525937 -3.896360 65.029330 -0.943247 -7.596684 -0.000022 0.000045 -0.000079 0.000002 -0.000000 0.000000 -0.000021 0.000045 -0.000081 0.000001 0.000002 0.000000 -0.000000 0.000002 -0.000098 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 5.018565 0.053676 4.988843 19.493835 -0.657942 -6.943392 -15.176757 -0.055760 0.600307 -15.985547 19.298069 -0.751639 -0.106233 39.243712 -7.343457 0.000002 0.000024 -179.999991 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000002 0.000000 -17.397638 -13.467817 21.622676 -12.173117 -53.942642 0.593887 -0.000027 -78.008567 -0.000014 -90.668876 12.760273 -22.189572 -0.000001 0.000001 0.000000 0.000002 0.000002 -0.000000 -0.000001 -0.000000 0.000002 0.000001 0.000000 -0.000002 14.850740 25.274304 -24.414289 13.980520 49.955737 -12.338072 0.000008 85.101644 -0.000046 -82.735885 -12.431258 25.423117 0.000001 0.000002 0.000003 0.000001 0.000001 -0.000003 0.000004 -0.000000 -0.000000 -0.000000 0.000002 -0.000001 0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000001 0.000000 -0.000000 -0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 -12.535847 -1.168958 -5.685572 95.500873 -3.666779 -3.770032 65.385538 5.115305 -3.613779 -0.000017 0.000022 -0.000040 0.000002 0.000000 0.000000 -0.000016 0.000023 -0.000043 -0.000001 -0.000002 -0.000000 -0.000002 0.000003 0.000136 -12.290159 1.184442 -3.224714 95.314791 -3.525937 -3.896360 65.050203 -0.676287 -7.462266 -0.000021 0.000044 -0.000077 0.000001 0.000001 0.000000 -0.000021 0.000043 -0.000077 0.000002 0.000003 0.000000 -0.000000 0.000002 -0.000098 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 5.106734 0.053916 4.676840 19.418195 -0.632445 -6.590365 -15.176759 -0.055761 0.600306 -16.190393 19.300492 -0.683938 -0.106232 39.243712 -7.343458 0.000003 0.000025 -179.999991 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 -0.000000 0.000003 0.000000 -17.397641 -13.467816 21.622678 -12.173120 -53.942645 0.593888 -0.000027 -78.008567 -0.000020 -90.668876 12.760273 -22.189577 0.000002 0.000000 0.000001 0.000000 0.000002 0.000000 -0.000001 -0.000000 0.000000 0.000001 0.000000 -0.000002 14.474417 25.428091 -24.253153 13.980521 49.955737 -12.338072 0.000027 85.394017 -0.000044 -82.840639 -12.479235 24.835541 0.000002 0.000005 0.000001 0.000000 0.000000 -0.000006 0.000000 0.000001 -0.000000 0.000001 0.000003 -0.000001 0.000001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000002 -0.000000 -0.000000 -12.626556 -1.178313 -5.338837 95.500873 -3.666779 -3.770032 65.375026 4.767642 -3.787222 -0.000011 0.000016 -0.000030 0.000001 -0.000000 0.000000 -0.000010 0.000017 -0.000030 -0.000001 -0.000002 -0.000000 0.000001 0.000003 0.000137 -12.381007 1.192423 -3.011678 95.314791 -3.525937 -3.896361 65.070632 -0.406877 -7.326750 -0.000021 0.000038 -0.000069 0.000003 0.000000 0.000001 -0.000021 0.000038 -0.000070 0.000001 0.000002 0.000001 -0.000001 0.000002 -0.000098 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 5.194902 0.053676 4.364837 19.342402 -0.607412 -6.237306 -15.176759 -0.055760 0.600307 -16.395239 19.302683 -0.616226 -0.106233 39.243709 -7.343457 0.000001 0.000024 -179.999991 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -17.397641 -13.467814 21.622678 -12.173116 -53.942648 0.593894 -0.000023 -78.008567 -0.000030 -90.668876 12.760276 -22.189579 0.000002 -0.000003 0.000001 0.000000 0.000000 -0.000001 -0.000000 -0.000001 -0.000002 0.000000 0.000001 -0.000002 14.097136 25.580926 -24.090702 13.980521 49.955734 -12.338071 0.000041 85.686376 -0.000053 -82.945927 -12.526172 24.247762 -0.000001 -0.000003 -0.000000 0.000000 0.000000 -0.000002 -0.000000 -0.000000 -0.000000 -0.000002 -0.000000 -0.000001 -0.000000 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000002 -0.000001 0.000000 -0.000001 -0.000001 0.000000 -12.717212 -1.188217 -4.992116 95.500873 -3.666779 -3.770032 65.363449 4.420002 -3.960637 -0.000009 0.000017 -0.000031 0.000001 0.000000 0.000000 -0.000011 0.000016 -0.000030 -0.000001 -0.000001 -0.000000 -0.000001 0.000003 0.000136 -12.471888 1.200066 -2.798630 95.314791 -3.525938 -3.896359 65.090405 -0.137415 -7.191323 -0.000022 0.000038 -0.000066 0.000000 0.000000 0.000000 -0.000021 0.000037 -0.000067 0.000001 0.000002 0.000001 0.000002 0.000002 -0.000099 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 5.283066 0.052956 4.052840 19.266458 -0.582848 -5.884219 -15.176754 -0.055761 0.600307 -16.598273 19.304637 -0.549110 -0.106233 39.243709 -7.343460 0.000003 0.000020 -179.999991 0.000001 -0.000002 -0.000000 0.000001 -0.000002 -0.000000 0.000001 -0.000002 -0.000001 -0.000001 -0.000000 0.000000 -17.397641 -13.467815 21.622676 -12.173111 -53.942645 0.593891 -0.000027 -78.008567 -0.000020 -90.668876 12.760271 -22.189582 0.000003 0.000005 0.000003 0.000002 -0.000005 0.000003 -0.000000 0.000003 0.000000 0.000002 0.000002 -0.000002 13.722278 25.731445 -23.928405 13.980522 49.955737 -12.338067 0.000028 85.976133 -0.000050 -83.050756 -12.571644 23.665060 0.000000 -0.000000 0.000001 0.000000 -0.000001 0.000004 -0.000000 -0.000000 0.000000 0.000001 0.000002 -0.000001 0.000001 0.000000 0.000000 0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000002 -0.000000 0.000000 -0.000003 -0.000000 0.000000 -12.807805 -1.198669 -4.645415 95.500873 -3.666781 -3.770032 65.350943 4.075506 -4.132503 -0.000005 0.000013 -0.000026 0.000003 0.000000 -0.000000 -0.000009 0.000012 -0.000024 -0.000000 -0.000002 -0.000000 0.000001 0.000003 0.000136 -12.562798 1.207371 -2.585570 95.314791 -3.525937 -3.896359 65.109386 0.129683 -7.057196 -0.000017 0.000039 -0.000066 0.000002 0.000000 0.000001 -0.000018 0.000039 -0.000067 0.000001 0.000002 -0.000000 -0.000000 0.000002 -0.000099 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000
|
||||
-0.000000 -19.670601 7.945948 5.371222 0.051756 3.740854 19.190364 -0.558753 -5.531121 -15.176759 -0.055761 0.600307 -16.797655 19.306325 -0.483193 -0.106233 39.243702 -7.343458 0.000003 0.000022 -179.999991 0.000000 0.000002 0.000000 0.000000 0.000002 0.000000 0.000000 0.000002 -0.000000 0.000000 0.000000 0.000000 -17.397641 -13.467814 21.622675 -12.173113 -53.942645 0.593895 -0.000031 -78.008567 -0.000022 -90.668876 12.760272 -22.189574 0.000001 0.000001 0.000001 0.000003 -0.000001 0.000001 -0.000001 -0.000002 0.000000 0.000001 -0.000000 0.000001 13.353238 25.878306 -23.767754 13.980519 49.955734 -12.338077 0.000030 86.260686 -0.000048 -83.154193 -12.615277 23.092699 -0.000000 0.000000 -0.000002 0.000000 -0.000001 -0.000001 -0.000001 -0.000001 0.000000 0.000001 0.000005 -0.000003 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000004 -0.000001 -0.000000 -0.000003 -0.000001 -0.000000 -12.898327 -1.209668 -4.298747 95.500873 -3.666779 -3.770031 65.337665 3.737255 -4.301282 -0.000006 0.000010 -0.000020 0.000001 0.000000 -0.000000 -0.000007 0.000010 -0.000020 -0.000000 -0.000002 -0.000000 0.000001 0.000002 0.000137 -12.653725 1.214338 -2.372502 95.314791 -3.525938 -3.896359 65.127404 0.392026 -6.925568 -0.000018 0.000032 -0.000060 0.000002 0.000001 -0.000000 -0.000015 0.000033 -0.000059 0.000002 0.000002 -0.000001 0.000002 0.000002 -0.000099 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000
|
||||
-0.000000 -19.670601 7.945948 5.459367 0.050076 3.428885 19.114138 -0.535130 -5.178011 -15.176755 -0.055760 0.600307 -16.991567 19.307772 -0.419078 -0.106233 39.243712 -7.343459 0.000002 0.000022 -179.999991 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 0.000000 0.000002 0.000000 -17.397636 -13.467810 21.622675 -12.173117 -53.942648 0.593894 -0.000023 -78.008567 -0.000006 -90.668876 12.760267 -22.189580 -0.000001 0.000001 0.000001 0.000004 -0.000001 0.000001 0.000002 0.000002 0.000003 0.000000 0.000002 -0.000001 12.993473 26.020243 -23.610332 13.980519 49.955737 -12.338072 0.000022 86.537411 -0.000052 -83.255184 -12.656734 22.535956 -0.000001 -0.000001 0.000000 -0.000000 -0.000001 -0.000002 0.000003 0.000000 0.000000 -0.000002 0.000002 -0.000002 -0.000001 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000001 0.000001 -0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -12.988781 -1.221214 -3.952113 95.500873 -3.666779 -3.770031 65.323793 3.408338 -4.465429 -0.000005 0.000006 -0.000011 0.000001 -0.000000 -0.000000 -0.000006 0.000005 -0.000011 -0.000000 -0.000001 -0.000000 -0.000001 0.000002 0.000137 -12.744682 1.220966 -2.159429 95.314791 -3.525938 -3.896359 65.144384 0.647189 -6.797630 -0.000018 0.000033 -0.000060 -0.000001 0.000001 -0.000000 -0.000016 0.000033 -0.000062 0.000001 0.000001 -0.000001 0.000001 0.000002 -0.000100 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 5.547493 0.047916 3.116938 19.037771 -0.511979 -4.824902 -15.176754 -0.055761 0.600307 -17.178187 19.308965 -0.357373 -0.106232 39.243712 -7.343457 0.000002 0.000018 -179.999991 -0.000001 -0.000002 0.000000 -0.000001 -0.000002 0.000000 -0.000001 -0.000002 -0.000000 0.000000 -0.000001 0.000000 -17.397638 -13.467813 21.622678 -12.173118 -53.942645 0.593890 -0.000015 -78.008567 -0.000012 -90.668876 12.760271 -22.189574 -0.000000 0.000000 0.000001 0.000002 0.000002 -0.000000 -0.000002 0.000001 0.000002 0.000000 0.000001 -0.000002 12.646439 26.155977 -23.457725 13.980517 49.955734 -12.338074 0.000013 86.803727 -0.000064 -83.352780 -12.695724 22.000099 0.000000 0.000001 -0.000002 -0.000002 -0.000001 -0.000002 0.000005 -0.000000 -0.000000 -0.000002 0.000002 -0.000001 -0.000003 0.000000 0.000000 -0.000002 0.000000 -0.000000 -0.000002 0.000000 0.000000 -0.000001 0.000000 0.000000 0.000004 -0.000000 0.000000 0.000004 -0.000000 0.000000 -13.079153 -1.233306 -3.605525 95.500873 -3.666779 -3.770031 65.309559 3.091864 -4.623415 -0.000002 0.000003 -0.000007 0.000002 0.000000 -0.000000 -0.000001 0.000003 -0.000006 0.000000 -0.000001 -0.000000 0.000001 0.000003 0.000137 -12.835659 1.227256 -1.946351 95.314791 -3.525937 -3.896360 65.160169 0.892786 -6.674583 -0.000018 0.000032 -0.000057 0.000003 -0.000000 -0.000000 -0.000016 0.000033 -0.000058 0.000000 0.000002 -0.000000 0.000001 0.000002 -0.000098 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
|
||||
-0.000000 -19.670601 7.945948 5.635603 0.045276 2.805022 18.961261 -0.489300 -4.471798 -15.176755 -0.055761 0.600307 -17.355688 19.309923 -0.298679 -0.106233 39.243709 -7.343458 0.000002 0.000019 -179.999991 -0.000001 -0.000001 0.000001 -0.000001 -0.000001 0.000001 -0.000001 -0.000001 0.000001 -0.000000 -0.000001 -0.000000 -17.397641 -13.467813 21.622676 -12.173123 -53.942652 0.593896 -0.000027 -78.008567 -0.000010 -90.668876 12.760274 -22.189577 -0.000001 -0.000001 -0.000001 0.000002 0.000000 0.000000 -0.000001 0.000001 0.000003 0.000000 0.000000 0.000000 12.315660 26.284308 -23.311584 13.980521 49.955730 -12.338069 0.000022 87.056997 -0.000078 -83.445937 -12.731973 21.490395 0.000000 0.000008 -0.000000 -0.000001 -0.000001 0.000000 0.000004 -0.000001 -0.000000 -0.000002 0.000001 -0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000001 -0.000001 -0.000000 0.000001 -0.000001 -0.000000 -13.169438 -1.245943 -3.258988 95.500873 -3.666779 -3.770032 65.295208 2.790923 -4.773696 -0.000007 0.000001 -0.000005 0.000001 0.000000 0.000000 -0.000005 0.000002 -0.000004 -0.000000 0.000000 0.000000 -0.000000 0.000003 0.000137 -12.926656 1.233208 -1.733271 95.314791 -3.525938 -3.896358 65.174669 1.126394 -6.557600 -0.000020 0.000033 -0.000054 0.000001 0.000001 0.000000 -0.000018 0.000033 -0.000057 0.000001 0.000002 -0.000001 -0.000001 0.000002 -0.000098 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 5.723687 0.042158 2.493139 18.884631 -0.467097 -4.118708 -15.176755 -0.055760 0.600307 -17.522244 19.310666 -0.243602 -0.106232 39.243709 -7.343459 0.000002 0.000021 -179.999991 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 -0.000000 0.000001 0.000000 -0.000000 -17.397643 -13.467812 21.622673 -12.173117 -53.942645 0.593891 -0.000027 -78.008567 -0.000020 -90.668876 12.760271 -22.189577 0.000000 0.000001 0.000001 -0.000001 -0.000002 0.000002 -0.000001 -0.000002 0.000001 0.000002 0.000001 -0.000002 12.004629 26.404017 -23.173551 13.980520 49.955730 -12.338075 0.000033 87.294660 -0.000067 -83.533658 -12.765250 21.012111 0.000001 0.000005 -0.000000 -0.000001 -0.000000 -0.000001 0.000000 -0.000000 0.000000 -0.000002 0.000000 -0.000004 -0.000000 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -13.259642 -1.259124 -2.912512 95.500873 -3.666778 -3.770031 65.281036 2.508592 -4.914734 0.000001 -0.000002 0.000001 0.000002 -0.000000 0.000000 0.000002 -0.000002 0.000001 -0.000000 -0.000000 -0.000000 0.000001 0.000002 0.000138 -13.017666 1.238821 -1.520192 95.314791 -3.525938 -3.896360 65.187865 1.345616 -6.447876 -0.000018 0.000028 -0.000051 -0.000001 -0.000001 -0.000000 -0.000019 0.000028 -0.000053 0.000001 0.000002 -0.000000 0.000000 0.000002 -0.000099 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 5.811742 0.038560 2.181296 18.807875 -0.445369 -3.765638 -15.176757 -0.055761 0.600307 -17.676026 19.311218 -0.192746 -0.106233 39.243712 -7.343457 0.000002 0.000019 -179.999991 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 0.000000 0.000000 -0.000000 -17.397643 -13.467815 21.622678 -12.173114 -53.942648 0.593893 -0.000023 -78.008567 -0.000018 -90.668876 12.760270 -22.189580 0.000001 -0.000002 -0.000003 0.000003 -0.000000 0.000001 -0.000001 0.000002 0.000001 0.000003 0.000001 -0.000001 11.716894 26.513934 -23.045350 13.980520 49.955737 -12.338068 0.000026 87.514094 -0.000083 -83.614875 -12.795316 20.570488 -0.000000 0.000000 0.000001 -0.000001 -0.000001 -0.000002 0.000002 0.000001 0.000000 -0.000002 0.000000 -0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000004 0.000000 0.000000 -0.000004 0.000000 0.000000 -13.349748 -1.272849 -2.566101 95.500873 -3.666778 -3.770031 65.267348 2.247967 -5.044981 -0.000000 -0.000006 0.000010 0.000003 -0.000000 0.000000 0.000001 -0.000007 0.000011 0.000001 -0.000001 -0.000000 -0.000000 0.000002 0.000137 -13.108696 1.244096 -1.307117 95.314791 -3.525938 -3.896359 65.199681 1.548043 -6.346611 -0.000013 0.000028 -0.000048 0.000001 0.000000 0.000001 -0.000011 0.000027 -0.000050 0.000001 0.000001 0.000000 0.000001 0.000002 -0.000100 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 5.899764 0.034484 1.869499 18.730998 -0.424118 -3.412596 -15.176754 -0.055760 0.600307 -17.815222 19.311609 -0.146714 -0.106233 39.243712 -7.343459 0.000003 0.000021 -179.999991 -0.000000 0.000001 0.000001 -0.000000 0.000001 0.000001 -0.000000 0.000001 0.000001 0.000000 0.000001 -0.000000 -17.397641 -13.467817 21.622675 -12.173125 -53.942648 0.593890 -0.000027 -78.008574 -0.000012 -90.668876 12.760272 -22.189574 0.000002 -0.000001 0.000001 0.000004 -0.000000 0.000001 0.000001 -0.000001 0.000002 -0.000000 0.000001 -0.000003 11.456009 26.612924 -22.928691 13.980515 49.955734 -12.338067 0.000039 87.712681 -0.000080 -83.688580 -12.822006 20.170787 0.000000 0.000006 -0.000000 -0.000002 -0.000000 -0.000002 0.000002 0.000001 0.000000 -0.000001 0.000001 -0.000002 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -13.439759 -1.287115 -2.219768 95.500873 -3.666779 -3.770031 65.254439 2.012114 -5.162896 -0.000001 -0.000006 0.000011 0.000001 0.000000 0.000000 -0.000003 -0.000007 0.000011 0.000000 0.000000 -0.000000 0.000000 0.000002 0.000137 -13.199741 1.249031 -1.094047 95.314784 -3.525937 -3.896358 65.210049 1.731275 -6.254992 -0.000014 0.000028 -0.000046 0.000001 0.000000 -0.000000 -0.000015 0.000026 -0.000048 0.000001 0.000001 -0.000001 0.000002 0.000002 -0.000100 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000
|
||||
-0.000000 -19.670601 7.945948 5.987752 0.029929 1.557754 18.654013 -0.403345 -3.059593 -15.176759 -0.055760 0.600307 -17.938001 19.311863 -0.106110 -0.106232 39.243712 -7.343458 0.000003 0.000022 -179.999991 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000001 -0.000000 -0.000000 -17.397641 -13.467817 21.622673 -12.173115 -53.942652 0.593890 -0.000031 -78.008567 -0.000020 -90.668883 12.760270 -22.189580 -0.000001 0.000001 0.000001 0.000000 -0.000001 0.000001 -0.000001 0.000001 0.000000 0.000001 -0.000000 -0.000002 11.225536 26.699838 -22.825290 13.980520 49.955737 -12.338071 0.000060 87.887869 -0.000110 -83.753760 -12.845128 19.818234 -0.000000 0.000004 -0.000000 -0.000001 0.000000 -0.000003 0.000003 0.000000 0.000000 -0.000002 0.000003 -0.000001 -0.000001 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000000 0.000000 0.000000 -13.529662 -1.301922 -1.873514 95.500873 -3.666779 -3.770031 65.242643 1.804129 -5.266930 0.000007 -0.000013 0.000024 0.000000 0.000000 0.000000 0.000008 -0.000014 0.000024 0.000001 0.000001 0.000000 -0.000000 0.000003 0.000136 -13.290793 1.253628 -0.880983 95.314791 -3.525938 -3.896360 65.218956 1.892899 -6.174187 -0.000018 0.000027 -0.000050 0.000001 0.000000 -0.000000 -0.000016 0.000027 -0.000050 0.000000 0.000002 -0.000000 0.000001 0.000002 -0.000100 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000
|
||||
-0.000000 -19.670601 7.945948 6.075700 0.024897 1.246066 18.576906 -0.383049 -2.706633 -15.176757 -0.055760 0.600307 -18.042546 19.312015 -0.071536 -0.106233 39.243712 -7.343458 0.000003 0.000022 -179.999991 0.000000 0.000001 0.000001 0.000000 0.000001 0.000001 0.000000 0.000001 0.000001 0.000001 -0.000001 -0.000000 -17.397641 -13.467812 21.622673 -12.173118 -53.942648 0.593889 -0.000019 -78.008567 -0.000012 -90.668876 12.760272 -22.189577 0.000003 0.000003 0.000000 0.000001 0.000001 0.000001 -0.000001 0.000002 0.000002 0.000000 0.000002 -0.000003 11.029031 26.773534 -22.736885 13.980519 49.955737 -12.338068 0.000058 88.036992 -0.000106 -83.809351 -12.864504 19.518066 0.000001 0.000006 0.000001 -0.000000 -0.000001 -0.000001 0.000006 -0.000001 0.000000 0.000001 0.000002 -0.000001 -0.000001 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000001 0.000000 0.000000 -0.000003 0.000000 0.000000 -0.000003 0.000000 -0.000000 -13.619460 -1.317269 -1.527353 95.500873 -3.666777 -3.770032 65.232323 1.627057 -5.355527 0.000004 -0.000016 0.000028 0.000002 -0.000000 0.000000 0.000007 -0.000016 0.000028 0.000001 0.000001 -0.000000 0.000001 0.000003 0.000138 -13.381855 1.257886 -0.667929 95.314784 -3.525938 -3.896360 65.226374 2.030526 -6.105413 -0.000009 0.000025 -0.000040 -0.000003 0.000001 -0.000000 -0.000008 0.000023 -0.000040 0.000001 0.000001 0.000001 -0.000000 0.000002 -0.000100 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000
|
||||
-0.000000 -19.670601 7.945948 6.163602 0.019387 0.934440 18.499694 -0.363235 -2.353723 -15.176759 -0.055760 0.600307 -18.127030 19.312104 -0.043596 -0.106234 39.243702 -7.343458 0.000004 0.000021 -179.999991 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 0.000001 -0.000001 0.000000 -17.397639 -13.467818 21.622676 -12.173117 -53.942645 0.593893 -0.000019 -78.008574 -0.000020 -90.668876 12.760272 -22.189580 -0.000001 0.000003 -0.000001 0.000003 -0.000000 -0.000000 0.000000 -0.000001 0.000001 -0.000000 0.000001 -0.000002 10.870063 26.832904 -22.665196 13.980520 49.955737 -12.338072 0.000075 88.157532 -0.000113 -83.854362 -12.879948 19.275506 -0.000000 -0.000002 -0.000000 -0.000001 -0.000001 0.000000 -0.000000 -0.000000 0.000000 -0.000001 -0.000001 -0.000001 0.000001 -0.000000 -0.000000 0.000001 -0.000000 0.000000 0.000001 0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000001 -0.000000 0.000000 -13.709146 -1.333155 -1.181287 95.500873 -3.666779 -3.770031 65.223764 1.483990 -5.427136 0.000006 -0.000018 0.000032 0.000000 0.000000 0.000001 0.000006 -0.000019 0.000034 0.000001 0.000001 0.000000 0.000001 0.000003 0.000137 -13.472924 1.261804 -0.454887 95.314791 -3.525937 -3.896359 65.232241 2.141746 -6.049839 -0.000015 0.000021 -0.000039 -0.000000 0.000000 0.000001 -0.000013 0.000023 -0.000039 0.000001 0.000001 -0.000000 0.000001 0.000002 -0.000099 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 6.251457 0.013400 0.622884 18.422385 -0.343901 -2.000873 -15.176759 -0.055760 0.600307 -18.189630 19.312129 -0.022894 -0.106233 39.243712 -7.343457 0.000003 0.000021 -179.999991 0.000000 0.000002 0.000003 0.000000 0.000002 0.000003 0.000000 0.000002 0.000002 0.000001 0.000000 0.000000 -17.397641 -13.467817 21.622675 -12.173116 -53.942642 0.593889 -0.000039 -78.008567 -0.000022 -90.668876 12.760270 -22.189577 0.000002 0.000001 0.000000 -0.000001 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000001 0.000001 10.752161 26.876772 -22.611941 13.980522 49.955737 -12.338072 0.000051 88.246830 -0.000119 -83.887741 -12.891267 19.095783 -0.000000 -0.000007 -0.000000 -0.000001 -0.000001 -0.000003 -0.000002 0.000001 0.000000 0.000001 0.000003 -0.000000 -0.000001 0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000001 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -13.798713 -1.349578 -0.835326 95.500873 -3.666777 -3.770031 65.217330 1.377985 -5.480207 0.000007 -0.000022 0.000038 0.000000 0.000000 -0.000000 0.000011 -0.000022 0.000039 -0.000000 0.000001 -0.000000 0.000001 0.000002 0.000138 -13.563997 1.265384 -0.241859 95.314791 -3.525938 -3.896358 65.236523 2.224162 -6.008670 -0.000010 0.000020 -0.000033 -0.000003 -0.000000 -0.000000 -0.000009 0.000019 -0.000034 0.000000 0.000000 0.000000 0.000001 0.000002 -0.000102 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 6.339260 0.006938 0.311401 18.344976 -0.325047 -1.648091 -15.176757 -0.055761 0.600307 -18.228528 19.312145 -0.010029 -0.106232 39.243712 -7.343457 0.000004 0.000021 -179.999991 0.000001 0.000001 -0.000001 0.000001 0.000001 -0.000001 0.000001 0.000001 -0.000002 0.000001 -0.000001 -0.000000 -17.397643 -13.467815 21.622673 -12.173115 -53.942642 0.593891 -0.000031 -78.008567 -0.000016 -90.668876 12.760268 -22.189577 -0.000002 0.000005 0.000001 0.000001 -0.000002 0.000002 -0.000001 0.000000 0.000001 -0.000001 0.000002 -0.000002 10.678862 26.903975 -22.578789 13.980526 49.955737 -12.338074 0.000053 88.302318 -0.000123 -83.908505 -12.898252 18.984116 -0.000001 0.000000 0.000001 -0.000001 -0.000000 -0.000001 -0.000001 0.000000 0.000000 -0.000001 0.000002 -0.000002 -0.000000 0.000001 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000001 0.000000 0.000000 0.000001 0.000000 -0.000001 -0.000000 0.000000 -0.000002 -0.000000 0.000000 -13.888154 -1.366537 -0.489479 95.500873 -3.666779 -3.770031 65.213273 1.312131 -5.513185 0.000011 -0.000024 0.000044 -0.000001 0.000000 0.000000 0.000011 -0.000024 0.000043 0.000001 0.000001 0.000000 -0.000001 0.000003 0.000136 -13.655079 1.268625 -0.028851 95.314791 -3.525937 -3.896359 65.239153 2.275369 -5.983086 -0.000013 0.000019 -0.000030 -0.000002 0.000000 -0.000000 -0.000013 0.000018 -0.000030 0.000001 0.000001 -0.000000 0.000001 0.000002 -0.000099 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000
|
||||
-0.000000 -19.670601 7.945948 6.427008 -0.000001 -0.000001 18.267472 -0.306676 -1.295383 -15.176755 -0.055761 0.600307 -18.241900 19.312145 -0.005607 -0.106232 39.243702 -7.343457 0.000003 0.000018 -179.999991 0.000000 -0.000002 0.000001 0.000000 -0.000002 0.000001 0.000000 -0.000002 0.000001 0.000000 0.000000 -0.000000 -17.397641 -13.467812 21.622673 -12.173119 -53.942652 0.593892 -0.000023 -78.008567 -0.000012 -90.668876 12.760272 -22.189580 -0.000001 -0.000003 -0.000002 0.000003 0.000002 -0.000000 -0.000001 -0.000001 0.000002 -0.000001 0.000000 0.000001 10.653656 26.913309 -22.567375 13.980522 49.955737 -12.338072 0.000039 88.321395 -0.000124 -83.915636 -12.900645 18.945729 -0.000000 -0.000000 -0.000001 -0.000000 -0.000001 -0.000000 0.000002 0.000000 0.000000 -0.000000 -0.000001 -0.000001 -0.000001 0.000000 -0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 0.000000 -0.000001 -0.000001 0.000000 -0.000001 -0.000000 0.000000 -13.977470 -1.384030 -0.143751 95.500873 -3.666780 -3.770031 65.211859 1.289493 -5.524522 0.000014 -0.000027 0.000050 -0.000001 -0.000000 0.000000 0.000013 -0.000028 0.000051 0.000001 0.000001 0.000000 0.000001 0.000003 0.000136 -13.746159 1.271528 0.184142 95.314791 -3.525937 -3.896358 65.240041 2.292975 -5.974295 -0.000010 0.000019 -0.000032 0.000001 0.000000 -0.000000 -0.000009 0.000018 -0.000031 0.000001 0.000001 0.000000 0.000002 0.000002 -0.000099 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
-0.000000 -19.670601 7.945948 116.950460 -0.000022 -0.000000 18.267476 -0.306676 -1.295382 -15.176754 -0.055762 0.600307 -18.241900 19.312143 -0.005607 -0.106233 39.243712 -7.343459 0.000002 0.000022 -179.999991 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 -0.000000 0.000001 -0.000001 -0.000000 -17.397638 -13.467812 21.622678 -12.173119 -53.942645 0.593893 -0.000015 -78.008567 -0.000012 -90.668883 12.760272 -22.189577 -0.000000 0.000002 -0.000001 -0.000001 -0.000000 -0.000000 0.000002 -0.000001 -0.000000 -0.000000 0.000002 -0.000001 10.653656 26.913309 -22.567384 13.980526 49.955730 -12.338071 0.000111 88.321395 -0.000066 -83.915636 -12.900644 18.945727 -0.000000 0.000003 -0.000000 0.000002 -0.000000 -0.000002 0.000001 -0.000000 0.000002 0.000002 -0.000001 -0.000000 -0.000000 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000001 -0.000001 0.000000 0.000003 -0.000001 0.000000 -92.820365 -5.802719 -5.873975 95.500873 -3.666784 -3.770033 65.211873 1.289492 -5.524520 0.000008 -0.000013 0.000023 0.000000 0.000000 0.000000 0.000007 -0.000013 0.000024 -0.000001 0.000001 0.000000 -0.000003 0.000002 0.000135 -92.575742 5.213340 5.719398 95.314784 -3.525937 -3.896360 65.240041 2.292974 -5.974298 -0.000007 0.000012 -0.000019 -0.000000 -0.000000 -0.000000 -0.000005 0.000010 -0.000022 0.000002 -0.000001 0.000000 -0.000001 0.000002 -0.000100 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000
|
||||
482
res/anims/couples/Pet Male.bvh
Normal file
482
res/anims/couples/Pet Male.bvh
Normal file
@@ -0,0 +1,482 @@
|
||||
HIERARCHY
|
||||
ROOT mPelvis
|
||||
{
|
||||
OFFSET 0.000000 1.067000 -0.000000
|
||||
CHANNELS 6 Xposition Yposition Zposition Xrotation Yrotation Zrotation
|
||||
JOINT mTorso
|
||||
{
|
||||
OFFSET 0.000000 0.084000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mChest
|
||||
{
|
||||
OFFSET 0.000000 0.205000 -0.015000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mNeck
|
||||
{
|
||||
OFFSET 0.000000 0.251000 -0.010000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mHead
|
||||
{
|
||||
OFFSET 0.000000 0.076000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mSkull
|
||||
{
|
||||
OFFSET 0.000000 0.079000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT mEyeRight
|
||||
{
|
||||
OFFSET -0.036000 0.079000 0.098000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT mEyeLeft
|
||||
{
|
||||
OFFSET 0.036000 0.079000 0.098000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT HEAD
|
||||
{
|
||||
OFFSET 0.000000 0.060000 0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT NECK
|
||||
{
|
||||
OFFSET 0.000000 0.015000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT mCollarLeft
|
||||
{
|
||||
OFFSET 0.085000 0.165000 -0.021000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mShoulderLeft
|
||||
{
|
||||
OFFSET 0.079000 0.000000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mElbowLeft
|
||||
{
|
||||
OFFSET 0.248000 0.000000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mWristLeft
|
||||
{
|
||||
OFFSET 0.205000 0.000000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT L_HAND
|
||||
{
|
||||
OFFSET 0.050000 0.000000 0.010000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_LOWER_ARM
|
||||
{
|
||||
OFFSET 0.100000 -0.005000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_UPPER_ARM
|
||||
{
|
||||
OFFSET 0.120000 0.000000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_CLAVICLE
|
||||
{
|
||||
OFFSET 0.000000 0.020000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT mCollarRight
|
||||
{
|
||||
OFFSET -0.085000 0.165000 -0.021000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mShoulderRight
|
||||
{
|
||||
OFFSET -0.079000 0.000000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mElbowRight
|
||||
{
|
||||
OFFSET -0.248000 0.000000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mWristRight
|
||||
{
|
||||
OFFSET -0.205000 0.000000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT R_HAND
|
||||
{
|
||||
OFFSET -0.050000 0.000000 0.010000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_LOWER_ARM
|
||||
{
|
||||
OFFSET -0.100000 -0.005000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_UPPER_ARM
|
||||
{
|
||||
OFFSET -0.120000 0.000000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_CLAVICLE
|
||||
{
|
||||
OFFSET 0.000000 0.020000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT CHEST
|
||||
{
|
||||
OFFSET 0.000000 0.060000 -0.002000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT LEFT_PEC
|
||||
{
|
||||
OFFSET 0.052000 0.052000 0.127000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT RIGHT_PEC
|
||||
{
|
||||
OFFSET -0.052000 0.052000 0.127000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT UPPER_BACK
|
||||
{
|
||||
OFFSET 0.000000 0.017253 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT BELLY
|
||||
{
|
||||
OFFSET 0.000000 0.060000 -0.002000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT LOWER_BACK
|
||||
{
|
||||
OFFSET 0.000000 0.022848 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT mHipRight
|
||||
{
|
||||
OFFSET -0.129000 -0.041000 0.034000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mKneeRight
|
||||
{
|
||||
OFFSET 0.049000 -0.491000 -0.001000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mAnkleRight
|
||||
{
|
||||
OFFSET -0.000000 -0.468000 -0.029000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mFootRight
|
||||
{
|
||||
OFFSET 0.000000 -0.061000 0.112000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mToeRight
|
||||
{
|
||||
OFFSET 0.000000 0.000000 0.109000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_FOOT
|
||||
{
|
||||
OFFSET 0.000000 -0.041000 0.077000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_LOWER_LEG
|
||||
{
|
||||
OFFSET -0.000000 -0.200000 -0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_UPPER_LEG
|
||||
{
|
||||
OFFSET 0.050000 -0.220000 -0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT mHipLeft
|
||||
{
|
||||
OFFSET 0.127000 -0.041000 0.034000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mKneeLeft
|
||||
{
|
||||
OFFSET -0.046000 -0.491000 -0.001000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mAnkleLeft
|
||||
{
|
||||
OFFSET 0.001000 -0.468000 -0.029000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mFootLeft
|
||||
{
|
||||
OFFSET 0.000000 -0.061000 0.112000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mToeLeft
|
||||
{
|
||||
OFFSET 0.000000 0.000000 0.109000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_FOOT
|
||||
{
|
||||
OFFSET 0.000000 -0.041000 0.077000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_LOWER_LEG
|
||||
{
|
||||
OFFSET -0.000000 -0.200000 -0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_UPPER_LEG
|
||||
{
|
||||
OFFSET -0.050000 -0.220000 -0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT PELVIS
|
||||
{
|
||||
OFFSET -0.000000 -0.020000 -0.010000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT BUTT
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 -0.060000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
MOTION
|
||||
Frames: 112
|
||||
Frame Time: 0.022222
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 -179.999991 -0.000044 0.000003 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000001 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000137 -0.000000 -0.000001 0.000000 -0.000002 0.000017 -0.000034 0.000000 -0.000000 -0.000000 -0.000003 0.000017 -0.000032 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 0.000000 0.000000 0.000002 -0.000102 -0.000000 0.000002 -0.000000 0.000012 -0.000012 0.000028 -0.000000 0.000000 0.000000 0.000010 -0.000012 0.000026 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000102 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 -179.999991 -0.000044 0.000003 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000001 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000137 -0.000000 -0.000001 0.000000 -0.000002 0.000017 -0.000034 0.000000 -0.000000 -0.000000 -0.000003 0.000017 -0.000032 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 0.000000 0.000000 0.000002 -0.000102 -0.000000 0.000002 -0.000000 0.000012 -0.000012 0.000028 -0.000000 0.000000 0.000000 0.000010 -0.000012 0.000026 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000102 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.000080 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 -179.999991 -0.000044 0.000003 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000003 0.000004 -78.829932 -0.000000 -5.381533 0.000000 2.084715 -0.191204 -10.479614 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000001 0.000006 78.829932 -0.000000 5.381532 -0.000000 2.084716 0.191204 10.479615 0.000000 0.000001 -0.000000 0.000000 -0.000000 0.000001 0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000137 -0.000000 -0.000001 0.000000 -0.000002 0.000017 -0.000034 0.000000 -0.000000 -0.000000 -0.000003 0.000017 -0.000032 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 0.000000 0.000000 0.000002 -0.000102 -0.000000 0.000002 -0.000000 0.000012 -0.000012 0.000028 -0.000000 0.000000 0.000000 0.000010 -0.000012 0.000026 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000102 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.000316 -0.000718 0.000000 0.000000 0.005924 -0.000032 -0.000432 -0.013010 0.000021 0.000518 -0.008624 0.000000 -0.000000 0.000244 -0.000000 -0.000000 -179.999991 -0.000044 0.000003 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.052602 0.283906 -0.608567 -80.324964 -0.000000 -10.113599 -0.000000 1.478424 -0.242106 -10.449810 0.000000 -0.000002 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.035349 0.017752 0.004584 -0.004154 0.052280 78.780986 0.000000 9.739604 0.000000 2.527328 0.296271 12.974199 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000001 0.000000 0.000000 0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000008 0.000007 -0.004059 -0.001538 -0.000004 0.000231 0.000002 0.000001 -0.000003 -0.000009 0.000016 -0.000029 0.000000 -0.000000 -0.000000 -0.000008 0.000016 -0.000029 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.007394 0.078920 0.000156 -0.002946 -0.000015 0.000081 0.032866 -0.000052 0.005120 0.000007 -0.000014 0.000024 0.000000 0.000000 -0.000000 0.000007 -0.000014 0.000024 -0.000001 0.000000 0.000000 0.000000 0.000002 -0.000101 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.000702 -0.002833 0.000000 0.000000 0.022784 -0.000123 -0.001663 -0.050036 0.000079 0.001992 -0.033169 0.000000 -0.000000 0.001950 -0.000000 -0.000000 -179.999991 -0.000044 0.000003 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.202568 1.091277 -2.395169 -81.359936 -0.000000 -14.309028 -0.000001 -0.298112 -0.388571 -10.227155 0.000001 0.000002 -0.000000 0.000000 0.000001 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000000 -0.139432 0.070017 0.018145 -0.016131 0.206272 78.636842 0.000000 13.914490 -0.000001 2.861470 0.422135 15.401942 -0.000000 -0.000004 -0.000000 0.000000 -0.000002 0.000001 0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000032 0.000029 -0.016007 -0.006063 -0.000021 0.000511 0.000003 -0.000000 0.000000 -0.000007 0.000017 -0.000029 -0.000000 -0.000000 0.000000 -0.000007 0.000017 -0.000029 -0.000001 -0.000000 -0.000000 -0.000000 0.000003 0.000136 0.028437 0.303559 0.000543 -0.011574 -0.000066 0.000613 0.126411 -0.000192 0.019692 0.000010 -0.000012 0.000026 -0.000000 -0.000000 -0.000000 0.000010 -0.000013 0.000024 -0.000001 -0.000000 0.000000 0.000000 0.000002 -0.000102 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.001229 -0.006284 0.000000 0.000000 0.049212 -0.000265 -0.003591 -0.108079 0.000168 0.004303 -0.071644 -0.000000 -0.000000 0.006580 -0.000000 -0.000000 -179.999991 -0.000044 0.000003 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.438137 2.377584 -5.283631 -81.914220 0.000000 -17.999218 -0.000001 -3.141461 -0.636896 -9.835040 -0.000000 0.000001 -0.000000 0.000001 0.000001 0.000001 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.309343 0.155301 0.040484 -0.034864 0.457898 78.401447 0.000000 17.907293 -0.000001 3.089319 0.561206 17.761345 0.000001 0.000003 0.000000 -0.000001 0.000003 -0.000001 0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000072 0.000065 -0.035502 -0.013448 -0.000049 0.000968 -0.000001 -0.000002 0.000002 -0.000000 0.000016 -0.000029 -0.000000 -0.000000 0.000000 -0.000001 0.000016 -0.000028 -0.000002 0.000000 0.000000 -0.000000 0.000003 0.000136 0.061429 0.655752 0.000984 -0.025571 -0.000150 0.001476 0.273059 -0.000363 0.042539 0.000009 -0.000016 0.000028 -0.000000 -0.000000 -0.000000 0.000010 -0.000016 0.000027 -0.000001 0.000000 0.000000 0.000000 0.000002 -0.000102 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.001893 -0.011009 0.000000 0.000000 0.083844 -0.000453 -0.006118 -0.184133 0.000280 0.007331 -0.122059 0.000000 0.000000 0.015596 -0.000000 -0.000000 -179.999991 -0.000044 0.000003 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.747549 4.127859 -9.169473 -81.945598 -0.000002 -21.219151 -0.000000 -6.945349 -0.999926 -9.301992 -0.000000 0.000001 0.000000 0.000001 -0.000002 0.000001 -0.000001 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.542216 0.272099 0.071503 -0.058883 0.803247 78.078597 0.000001 21.720681 -0.000001 3.213759 0.706481 20.051373 -0.000001 -0.000004 0.000001 -0.000000 0.000001 -0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000126 0.000114 -0.062200 -0.023562 -0.000088 0.001594 -0.000000 -0.000001 0.000002 -0.000000 0.000014 -0.000023 0.000000 -0.000000 0.000000 -0.000003 0.000014 -0.000023 -0.000002 -0.000000 0.000000 -0.000000 0.000003 0.000136 0.104669 1.117339 0.001255 -0.044620 -0.000264 0.002652 0.465216 -0.000503 0.072488 0.000011 -0.000015 0.000032 0.000000 0.000000 0.000000 0.000009 -0.000014 0.000030 -0.000001 0.000000 0.000000 0.000000 0.000003 -0.000102 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.002687 -0.016948 0.000000 0.000000 0.125308 -0.000679 -0.009144 -0.275199 0.000411 0.010956 -0.182427 0.000000 0.000000 0.030461 -0.000000 -0.000000 -179.999991 -0.000044 0.000003 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -1.119040 6.357499 -13.911636 -81.393479 -0.000001 -24.005335 0.000000 -11.591583 -1.491953 -8.662840 0.000000 -0.000006 0.000000 0.000001 0.000001 -0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.835226 0.418891 0.111195 -0.086376 1.238532 77.672003 0.000000 25.358549 -0.000001 3.238284 0.851602 22.271398 -0.000001 -0.000001 0.000001 -0.000000 0.000001 0.000001 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 -0.000194 0.000176 -0.095758 -0.036275 -0.000137 0.002380 0.000000 0.000001 -0.000001 -0.000007 0.000016 -0.000029 -0.000000 -0.000000 0.000000 -0.000009 0.000016 -0.000027 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.156462 1.670151 0.001121 -0.068407 -0.000408 0.004120 0.695320 -0.000531 0.108334 0.000013 -0.000017 0.000034 0.000000 0.000000 -0.000000 0.000013 -0.000017 0.000033 -0.000001 0.000001 0.000000 0.000000 0.000002 -0.000101 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.003603 -0.024041 0.000000 0.000000 0.172244 -0.000939 -0.012568 -0.378273 0.000550 0.015061 -0.250753 0.000001 0.000000 0.052637 -0.000000 -0.000000 -179.999991 -0.000044 0.000003 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000001 -1.540845 9.112635 -19.324934 -80.180158 -0.000001 -26.394366 -0.000000 -16.942767 -2.123422 -7.958770 0.000001 0.000002 0.000001 0.000001 -0.000002 -0.000001 -0.000001 0.000000 -0.000000 0.000000 -0.000000 0.000000 -1.185572 0.594143 0.159621 -0.115240 1.760046 77.185249 0.000000 28.825755 -0.000001 3.166882 0.990874 24.421078 0.000002 0.000000 0.000000 -0.000001 0.000002 -0.000000 0.000000 0.000000 0.000001 0.000000 0.000000 0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000001 -0.000001 0.000000 0.000001 -0.000001 0.000000 -0.000275 0.000250 -0.135834 -0.051456 -0.000196 0.003319 0.000003 -0.000001 0.000002 -0.000002 0.000014 -0.000025 -0.000000 0.000000 -0.000000 -0.000004 0.000013 -0.000023 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000137 0.215120 2.295991 0.000366 -0.096616 -0.000579 0.005861 0.955776 -0.000391 0.148914 0.000013 -0.000020 0.000036 -0.000000 0.000000 -0.000000 0.000013 -0.000020 0.000035 -0.000001 0.000001 0.000000 0.000000 0.000002 -0.000102 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.004635 -0.032227 0.000000 0.000000 0.223278 -0.001224 -0.016292 -0.490353 0.000694 0.019524 -0.325050 -0.000000 0.000000 0.083586 -0.000000 -0.000000 -179.999991 -0.000044 0.000003 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -2.001197 12.468550 -25.177194 -78.211731 0.000000 -28.422091 0.000001 -22.838621 -2.895662 -7.235482 0.000000 -0.000003 0.000001 0.000003 -0.000001 -0.000001 0.000001 0.000001 0.000001 0.000000 -0.000000 -0.000000 -1.590479 0.796304 0.216897 -0.143131 2.364114 76.621834 0.000002 32.127875 -0.000002 3.003950 1.119276 26.500292 -0.000001 -0.000004 -0.000000 -0.000000 0.000002 -0.000001 0.000000 0.000000 0.000001 -0.000000 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000368 0.000335 -0.182085 -0.068976 -0.000264 0.004402 0.000001 0.000000 0.000001 -0.000004 0.000014 -0.000026 0.000000 0.000000 -0.000000 -0.000006 0.000014 -0.000026 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.278958 2.976635 -0.001184 -0.128934 -0.000775 0.007855 1.238997 -0.000033 0.193043 0.000015 -0.000022 0.000043 0.000000 0.000000 -0.000000 0.000015 -0.000023 0.000042 -0.000000 0.000000 0.000000 0.000000 0.000002 -0.000101 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.005776 -0.041445 0.000000 0.000000 0.277047 -0.001528 -0.020214 -0.608438 0.000836 0.024226 -0.403328 0.000000 0.000000 0.124769 -0.000000 -0.000000 -179.999991 -0.000044 0.000003 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000001 -2.488331 16.523221 -31.194444 -75.382681 0.000002 -30.123170 0.000000 -29.097224 -3.797041 -6.538988 -0.000001 0.000001 -0.000000 -0.000001 -0.000001 0.000001 0.000001 -0.000000 0.000000 0.000000 0.000000 -0.000000 -2.047184 1.023809 0.283180 -0.167503 3.047044 75.985144 0.000001 35.270889 -0.000005 2.754200 1.232424 28.509099 -0.000000 -0.000005 -0.000000 0.000000 -0.000004 0.000001 -0.000000 -0.000000 -0.000001 0.000000 0.000000 0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000473 0.000431 -0.234168 -0.088705 -0.000342 0.005624 -0.000001 0.000000 -0.000001 -0.000003 0.000014 -0.000028 -0.000000 -0.000000 0.000000 -0.000004 0.000014 -0.000026 -0.000002 -0.000000 0.000000 -0.000000 0.000003 0.000138 0.346292 3.693828 -0.003640 -0.165044 -0.000996 0.010084 1.537404 0.000581 0.239533 0.000013 -0.000020 0.000039 -0.000000 -0.000000 -0.000000 0.000011 -0.000021 0.000040 -0.000001 -0.000000 -0.000000 0.000000 0.000003 -0.000101 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.007021 -0.051634 0.000000 0.000000 0.332184 -0.001844 -0.024236 -0.729525 0.000973 0.029048 -0.483595 -0.000000 0.000000 0.177650 -0.000000 -0.000000 -179.999991 -0.000044 0.000003 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 -2.990485 21.380736 -37.076261 -71.589822 -0.000008 -31.530892 -0.000001 -35.521454 -4.801722 -5.909852 0.000000 -0.000001 0.000000 0.000001 -0.000001 -0.000000 -0.000002 -0.000000 -0.000001 0.000000 0.000000 0.000000 -2.552933 1.275072 0.358649 -0.185665 3.805084 75.278486 -0.000001 38.261152 -0.000002 2.422585 1.326652 30.447665 -0.000001 -0.000003 0.000001 0.000001 -0.000000 0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000590 0.000537 -0.291740 -0.110512 -0.000428 0.006971 0.000001 -0.000001 0.000002 -0.000002 0.000015 -0.000024 -0.000000 -0.000000 0.000000 -0.000003 0.000015 -0.000024 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.415437 4.429293 -0.007039 -0.204634 -0.001241 0.012525 1.843398 0.001463 0.287202 0.000020 -0.000024 0.000042 -0.000000 -0.000000 -0.000000 0.000020 -0.000024 0.000045 -0.000002 -0.000002 -0.000000 0.000000 0.000002 -0.000101 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.008361 -0.062734 0.000000 0.000000 0.387320 -0.002164 -0.028258 -0.850611 0.001098 0.033871 -0.563863 0.000000 0.000000 0.243691 -0.000000 -0.000000 -179.999991 -0.000044 0.000003 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 -3.495903 27.116416 -42.521110 -66.764457 -0.000006 -32.677271 0.000001 -41.909207 -5.871762 -5.377324 0.000001 -0.000001 0.000001 0.000001 0.000000 -0.000000 -0.000002 -0.000001 0.000001 0.000000 0.000000 -0.000000 -3.104975 1.548489 0.443501 -0.194808 4.634384 74.505049 0.000002 41.105141 -0.000003 2.014227 1.398858 32.316231 -0.000001 -0.000002 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 0.000000 0.000001 -0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000716 0.000652 -0.354459 -0.134270 -0.000522 0.008440 -0.000001 -0.000001 0.000002 -0.000006 0.000014 -0.000026 0.000000 0.000000 0.000000 -0.000007 0.000015 -0.000024 -0.000002 -0.000000 -0.000000 -0.000000 0.000003 0.000137 0.484698 5.164745 -0.011334 -0.247387 -0.001505 0.015163 2.149390 0.002600 0.334867 0.000022 -0.000028 0.000049 -0.000000 0.000000 -0.000000 0.000021 -0.000027 0.000048 -0.000001 -0.000000 -0.000000 0.000000 0.000003 -0.000101 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.009791 -0.074684 0.000000 0.000000 0.441088 -0.002480 -0.032179 -0.968694 0.001210 0.038574 -0.642140 0.000000 0.000000 0.324354 -0.000000 -0.000000 -179.999991 -0.000044 0.000003 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 -3.992840 33.717359 -47.260428 -60.929754 0.000002 -33.593135 0.000000 -48.064946 -6.962088 -4.955319 -0.000000 0.000001 0.000002 -0.000001 0.000000 -0.000000 0.000002 0.000001 0.000001 0.000000 0.000000 0.000000 -3.700555 1.842434 0.537927 -0.192053 5.530946 73.667955 0.000002 43.809311 -0.000001 1.534362 1.446581 34.115084 -0.000003 -0.000003 0.000000 0.000001 -0.000002 0.000000 0.000001 0.000000 0.000002 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 -0.000852 0.000777 -0.421980 -0.159846 -0.000625 0.010022 0.000001 0.000001 -0.000001 0.000000 0.000013 -0.000022 0.000000 0.000000 -0.000000 -0.000002 0.000014 -0.000022 -0.000002 0.000000 0.000000 -0.000000 0.000003 0.000137 0.552374 5.881906 -0.016387 -0.292988 -0.001790 0.017976 2.447790 0.003953 0.381343 0.000023 -0.000028 0.000054 -0.000000 -0.000000 -0.000000 0.000026 -0.000029 0.000052 -0.000001 -0.000001 -0.000000 0.000000 0.000002 -0.000101 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.011304 -0.087423 0.000000 0.000000 0.492124 -0.002782 -0.035901 -1.080774 0.001308 0.043038 -0.716437 0.000000 0.000000 0.421101 -0.000000 -0.000000 -179.999991 -0.000044 0.000003 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -4.469562 41.006618 -51.098527 -54.274517 -0.000003 -34.308382 0.000001 -53.809576 -8.026709 -4.641385 -0.000001 -0.000001 0.000001 0.000001 0.000001 0.000000 0.000001 -0.000001 0.000001 -0.000000 -0.000000 -0.000000 -4.336911 2.155264 0.642107 -0.174490 6.490612 72.770222 0.000002 46.380092 -0.000004 0.988288 1.467925 35.844570 0.000002 0.000001 -0.000000 0.000002 -0.000001 0.000000 0.000001 0.000000 0.000001 -0.000001 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -0.000997 0.000911 -0.493962 -0.187112 -0.000734 0.011707 0.000002 0.000000 0.000003 -0.000005 0.000011 -0.000023 0.000000 -0.000000 0.000000 -0.000008 0.000013 -0.000023 -0.000001 0.000001 0.000000 -0.000000 0.000003 0.000136 0.616745 6.562511 -0.021977 -0.341123 -0.002092 0.020947 2.731014 0.005463 0.425444 0.000023 -0.000029 0.000058 0.000000 -0.000000 0.000000 0.000024 -0.000029 0.000057 -0.000001 0.000001 0.000000 0.000000 0.000003 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.012894 -0.100891 0.000000 0.000000 0.539059 -0.003064 -0.039324 -1.183849 0.001391 0.047144 -0.784764 0.000001 0.000000 0.535395 -0.000000 -0.000000 -179.999991 -0.000044 0.000003 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000001 0.000001 -4.914358 48.592059 -53.950824 -47.203140 0.000001 -34.852246 0.000001 -58.986340 -9.024194 -4.418788 0.000001 0.000000 0.000001 0.000000 -0.000001 -0.000000 0.000003 0.000001 0.000001 0.000000 0.000000 0.000000 -5.011262 2.485317 0.756197 -0.139209 7.509018 71.814781 0.000004 48.823749 -0.000004 0.381319 1.461540 37.505033 -0.000000 -0.000001 0.000004 -0.000002 0.000000 -0.000001 0.000002 0.000000 0.000001 -0.000000 0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.001150 0.001052 -0.570061 -0.215937 -0.000851 0.013490 0.000003 -0.000000 0.000002 -0.000003 0.000012 -0.000019 0.000000 -0.000000 0.000000 -0.000002 0.000011 -0.000017 -0.000001 0.000001 0.000000 -0.000000 0.000003 0.000137 0.676076 7.188336 -0.027805 -0.391477 -0.002414 0.024052 2.991465 0.007044 0.465991 0.000023 -0.000032 0.000064 0.000000 -0.000001 -0.000000 0.000024 -0.000033 0.000063 -0.000001 -0.000001 -0.000000 0.000000 0.000001 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.014553 -0.115026 0.000000 0.000000 0.580524 -0.003315 -0.042348 -1.274917 0.001457 0.050772 -0.845131 0.000000 0.000000 0.668697 -0.000000 -0.000000 -179.999991 -0.000044 0.000003 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000001 0.000000 -5.315515 55.900631 -55.863895 -40.300292 0.000001 -35.253461 0.000000 -63.462061 -9.920800 -4.260615 -0.000001 -0.000000 0.000001 0.000002 -0.000001 -0.000000 0.000003 0.000001 0.000001 -0.000000 0.000000 0.000000 -5.720816 2.830914 0.880316 -0.083349 8.581574 70.804514 0.000002 51.146294 -0.000002 -0.281255 1.426583 39.096846 0.000000 0.000003 0.000002 -0.000000 0.000000 -0.000000 0.000001 -0.000001 0.000003 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.001310 0.001200 -0.649935 -0.246192 -0.000974 0.015362 0.000000 -0.000000 -0.000001 -0.000002 0.000010 -0.000019 -0.000000 0.000000 -0.000000 -0.000004 0.000010 -0.000019 -0.000002 -0.000000 -0.000000 -0.000000 0.000003 0.000138 0.728612 7.741180 -0.033505 -0.443735 -0.002749 0.027276 3.221558 0.008594 0.501812 0.000029 -0.000033 0.000063 0.000000 -0.000001 0.000000 0.000026 -0.000034 0.000063 -0.000002 -0.000001 -0.000000 0.000000 0.000001 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.016275 -0.129769 0.000000 0.000000 0.615154 -0.003526 -0.044873 -1.350978 0.001509 0.053801 -0.895549 -0.000000 0.000000 0.822470 -0.000000 -0.000000 -179.999991 -0.000044 0.000003 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -5.661339 62.310641 -56.999240 -34.198163 -0.000002 -35.540579 0.000001 -67.123691 -10.690951 -4.134499 -0.000000 -0.000001 0.000000 0.000001 0.000000 -0.000000 0.000001 -0.000001 0.000001 -0.000000 0.000000 -0.000000 -6.462753 3.190360 1.014538 -0.004121 9.703464 69.742201 0.000001 53.353531 -0.000001 -0.994191 1.362679 40.620416 0.000001 -0.000002 -0.000001 0.000000 0.000003 -0.000000 -0.000000 -0.000001 0.000004 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.001477 0.001355 -0.733241 -0.277745 -0.001104 0.017312 0.000003 0.000000 0.000001 0.000001 0.000010 -0.000019 0.000000 0.000000 0.000000 -0.000000 0.000010 -0.000017 -0.000001 0.000001 0.000000 -0.000000 0.000003 0.000137 0.772585 8.202880 -0.038662 -0.497582 -0.003094 0.030595 3.413719 0.009999 0.531720 0.000032 -0.000035 0.000065 -0.000000 -0.000000 -0.000000 0.000031 -0.000036 0.000063 -0.000002 -0.000001 -0.000000 0.000000 0.000003 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.018053 -0.145058 0.000000 0.000000 0.641583 -0.003688 -0.046800 -1.409028 0.001545 0.056114 -0.934027 0.000000 0.000000 0.998176 -0.000000 -0.000000 -179.999991 -0.000044 0.000003 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000001 0.000000 -5.940133 67.297335 -57.580646 -29.430414 -0.000001 -35.742073 -0.000001 -69.871326 -11.315307 -4.006797 -0.000000 -0.000000 -0.000003 0.000002 -0.000001 -0.000001 0.000001 -0.000003 -0.000001 0.000000 -0.000000 0.000000 -7.234231 3.561950 1.158881 0.101145 10.869630 68.630588 0.000003 55.450983 -0.000010 -1.752325 1.269873 42.076158 -0.000001 0.000005 0.000000 0.000000 0.000000 -0.000000 -0.000001 -0.000001 -0.000001 0.000001 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 -0.001650 0.001516 -0.819634 -0.310469 -0.001240 0.019336 -0.000000 -0.000000 0.000000 -0.000004 0.000011 -0.000019 0.000000 0.000000 0.000000 -0.000004 0.000011 -0.000017 -0.000002 -0.000000 -0.000000 -0.000000 0.000003 0.000138 0.806213 8.555298 -0.042845 -0.552703 -0.003455 0.033995 3.560360 0.011134 0.554540 0.000030 -0.000035 0.000069 0.000000 -0.000001 -0.000000 0.000030 -0.000035 0.000068 -0.000002 -0.000004 -0.000000 0.000000 0.000003 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.019881 -0.160833 0.000000 0.000000 0.658443 -0.003792 -0.048029 -1.446067 0.001567 0.057589 -0.958575 0.000001 0.000000 1.197274 -0.000000 -0.000000 -179.999991 -0.000044 0.000003 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000001 0.000001 -6.140197 70.490073 -57.828548 -26.374673 -0.000002 -35.886514 0.000001 -71.609076 -11.777328 -3.845803 -0.000001 0.000003 0.000002 0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -8.032366 3.943972 1.313301 0.234956 12.074767 67.472454 -0.000001 57.443851 -0.000008 -2.550582 1.148632 43.464534 0.000002 -0.000000 -0.000000 0.000004 0.000002 -0.000001 -0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 -0.001828 0.001682 -0.908773 -0.344232 -0.001381 0.021423 0.000003 -0.000001 0.000000 -0.000001 0.000009 -0.000018 0.000000 0.000000 0.000000 -0.000002 0.000008 -0.000018 -0.000001 0.000000 -0.000000 -0.000000 0.000002 0.000137 0.827712 8.780294 -0.045627 -0.608784 -0.003826 0.037452 3.653901 0.011893 0.569097 0.000027 -0.000038 0.000068 0.000000 0.000000 -0.000000 0.000026 -0.000037 0.000067 -0.000002 -0.000002 -0.000000 -0.000000 0.000000 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.021753 -0.177032 0.000000 0.000000 0.664366 -0.003829 -0.048461 -1.459094 0.001575 0.058108 -0.967204 -0.000000 0.000000 1.421226 -0.000000 -0.000000 -179.999991 -0.000044 0.000003 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000001 -0.000000 -6.249805 71.627169 -57.904404 -25.297574 -0.000003 -36.002665 0.000000 -72.234318 -12.058886 -3.624198 -0.000000 -0.000002 0.000001 -0.000000 -0.000001 0.000000 -0.000002 -0.000004 0.000001 0.000000 -0.000000 -0.000000 -8.854259 4.334715 1.477682 0.399628 13.313357 66.270470 0.000004 59.337016 -0.000007 -3.384018 0.999762 44.786100 -0.000002 0.000001 0.000002 0.000001 0.000002 0.000000 0.000001 -0.000002 0.000001 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 -0.002010 0.001853 -1.000315 -0.378905 -0.001528 0.023567 0.000003 -0.000000 0.000002 -0.000003 0.000010 -0.000018 0.000000 -0.000000 -0.000000 -0.000005 0.000009 -0.000017 -0.000000 0.000001 0.000000 -0.000000 0.000003 0.000138 0.835300 8.859727 -0.046629 -0.665509 -0.004202 0.040948 3.686765 0.012163 0.574209 0.000028 -0.000038 0.000068 -0.000000 0.000000 -0.000000 0.000028 -0.000037 0.000067 -0.000002 -0.000001 -0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.023660 -0.193596 0.000000 0.000000 0.664366 -0.003829 -0.048461 -1.413824 0.001548 0.056305 -0.911376 0.000000 0.000000 1.720455 -0.000000 -0.000000 -179.999991 -0.000044 0.000003 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.142217 0.014926 -6.307872 71.613304 -57.924273 -25.362944 -0.000001 -36.115964 -0.000002 -72.027698 -12.245589 -3.286686 -0.000001 0.000000 0.000002 -0.000001 -0.000001 0.000000 -0.000001 0.000000 -0.000001 0.000000 0.000000 -0.000000 -9.696970 4.732464 1.651827 0.597250 14.579640 65.027376 0.000011 61.135131 -0.000011 -4.247792 0.824398 46.041383 -0.000001 0.000002 -0.000002 0.000000 -0.000001 0.000000 0.000003 -0.000001 -0.000000 0.000001 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000001 0.000001 -0.000000 0.000001 0.000001 -0.000000 -0.002197 0.002028 -1.093914 -0.414357 -0.001679 0.025757 0.000000 -0.000001 0.000002 -0.000002 0.000006 -0.000013 -0.000000 0.000000 0.000000 -0.000003 0.000006 -0.000012 -0.000001 -0.000000 0.000000 -0.000000 0.000003 0.000137 0.835380 8.860240 -0.033083 -0.722592 -0.004585 0.044467 3.686762 0.012164 0.574209 0.000031 -0.000037 0.000068 0.000000 -0.000000 -0.000000 0.000032 -0.000036 0.000066 -0.000002 -0.000002 -0.000000 0.000000 0.000003 -0.000099 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.025598 -0.210464 0.000000 0.000000 0.664366 -0.003829 -0.048461 -1.282081 0.001463 0.051057 -0.748931 0.000000 0.000000 2.138493 -0.000000 -0.000000 -179.999991 -0.000044 0.000003 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.556406 0.058657 -6.361210 71.511971 -57.942851 -25.571552 0.000000 -36.232914 -0.000001 -71.363346 -12.434078 -2.796823 -0.000000 0.000001 -0.000001 -0.000001 0.000000 0.000000 0.000000 -0.000001 0.000000 -0.000000 0.000000 -0.000000 -10.557510 5.135518 1.835459 0.829625 15.867687 63.745964 0.000002 62.842440 -0.000013 -5.137192 0.623962 47.231062 -0.000000 -0.000003 0.000002 0.000003 0.000000 -0.000001 0.000002 0.000004 -0.000001 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 -0.002386 0.002207 -1.189232 -0.450458 -0.001834 0.027989 -0.000003 -0.000002 0.000002 0.000002 0.000007 -0.000011 0.000000 -0.000000 0.000000 0.000001 0.000007 -0.000011 -0.000001 -0.000000 0.000000 -0.000000 0.000003 0.000137 0.835505 8.860619 0.006341 -0.779856 -0.004973 0.047995 3.686766 0.012163 0.574213 0.000025 -0.000034 0.000068 0.000000 -0.000001 0.000000 0.000025 -0.000036 0.000067 -0.000002 -0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.027559 -0.227574 0.000000 0.000000 0.664366 -0.003829 -0.048461 -1.070003 0.001299 0.042609 -0.487420 0.000000 0.000000 2.666502 -0.000000 -0.000000 -179.999991 -0.000044 0.000003 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -1.224309 0.129593 -6.409615 71.328888 -57.959073 -25.914122 -0.000001 -36.353894 -0.000001 -70.264751 -12.616533 -2.159601 -0.000000 0.000002 0.000000 -0.000001 -0.000000 -0.000000 0.000001 -0.000002 0.000000 -0.000000 -0.000000 0.000001 -11.432874 5.542191 2.028210 1.098248 17.171440 62.429124 -0.000002 64.462957 -0.000009 -6.047659 0.400125 48.355888 0.000000 0.000003 0.000000 0.000003 0.000000 0.000001 -0.000000 0.000001 0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.002578 0.002388 -1.285921 -0.487081 -0.001993 0.030252 0.000004 -0.000001 0.000002 0.000001 0.000007 -0.000011 -0.000000 -0.000000 0.000000 -0.000000 0.000006 -0.000012 -0.000001 0.000000 -0.000000 -0.000000 0.000003 0.000137 0.835673 8.860880 0.069799 -0.837154 -0.005365 0.051527 3.686766 0.012167 0.574209 0.000032 -0.000036 0.000069 0.000000 0.000000 0.000000 0.000030 -0.000037 0.000068 -0.000002 -0.000001 -0.000000 0.000000 0.000003 -0.000101 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.029536 -0.244867 0.000000 0.000000 0.664366 -0.003829 -0.048461 -0.783720 0.001029 0.031207 -0.134369 -0.000000 -0.000000 3.295680 -0.000000 -0.000000 -179.999991 -0.000044 0.000003 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -2.128070 0.226079 -6.452567 71.069921 -57.971599 -26.381264 -0.000003 -36.479303 -0.000001 -68.752834 -12.782418 -1.379662 -0.000001 0.000000 0.000003 -0.000000 -0.000000 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000000 0.000001 -12.320002 5.950818 2.229622 1.404252 18.484683 61.079827 0.000011 66.000364 -0.000014 -6.974749 0.154779 49.416685 0.000001 0.000003 -0.000002 -0.000000 0.000000 -0.000000 0.000002 0.000002 0.000000 0.000001 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.002772 0.002572 -1.383640 -0.524093 -0.002155 0.032541 -0.000001 -0.000001 0.000000 0.000001 0.000006 -0.000010 -0.000000 0.000000 0.000000 -0.000000 0.000006 -0.000008 -0.000002 -0.000000 0.000000 -0.000000 0.000003 0.000137 0.835879 8.861023 0.155445 -0.894334 -0.005759 0.055050 3.686769 0.012165 0.574212 0.000031 -0.000036 0.000064 0.000000 -0.000002 0.000000 0.000032 -0.000036 0.000065 -0.000001 -0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.031524 -0.262280 0.000000 0.000000 0.664366 -0.003829 -0.048461 -0.429354 0.000617 0.017095 0.302705 -0.000000 -0.000000 4.017224 -0.000000 -0.000000 -179.999991 -0.000044 0.000003 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -3.250022 0.346376 -6.489320 70.741062 -57.978935 -26.963425 -0.000001 -36.609500 -0.000002 -66.847246 -12.918826 -0.462049 0.000000 -0.000004 0.000001 -0.000000 -0.000001 -0.000000 0.000000 -0.000004 -0.000001 -0.000000 0.000000 -0.000001 -13.215790 6.359761 2.439138 1.748368 19.801166 59.701222 0.000001 67.458056 -0.000017 -7.914134 -0.110004 50.414384 0.000001 0.000002 -0.000003 0.000006 -0.000001 -0.000000 -0.000002 -0.000001 -0.000001 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.002967 0.002757 -1.482045 -0.561364 -0.002320 0.034845 0.000002 -0.000001 0.000002 -0.000003 0.000005 -0.000009 -0.000000 0.000000 -0.000000 -0.000004 0.000005 -0.000009 -0.000000 0.000000 0.000000 -0.000000 0.000003 0.000137 0.836121 8.861060 0.261433 -0.951252 -0.006154 0.058556 3.686765 0.012168 0.574206 0.000028 -0.000036 0.000069 0.000000 0.000000 -0.000000 0.000027 -0.000035 0.000068 -0.000002 -0.000001 -0.000000 0.000000 0.000001 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.033514 -0.279755 0.000000 0.000000 0.664365 -0.003829 -0.048461 -0.013029 0.000020 0.000519 0.816287 -0.000000 -0.000000 4.822313 -0.000001 -0.000000 -179.999991 -0.000044 0.000003 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 0.000000 0.000000 0.000000 -0.000000 -4.572483 0.488640 -6.518979 70.348490 -57.979495 -27.650947 -0.000002 -36.744881 -0.000001 -64.567513 -13.010894 0.587063 -0.000001 0.000000 -0.000000 -0.000000 -0.000002 -0.000000 0.000000 -0.000003 0.000000 -0.000000 0.000000 -0.000000 -14.117122 6.767424 2.656112 2.130891 21.114611 58.296675 0.000020 68.839182 -0.000016 -8.861654 -0.391994 51.350011 -0.000000 0.000001 0.000003 0.000004 -0.000002 -0.000004 0.000001 -0.000002 0.000000 -0.000001 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 -0.003162 0.002944 -1.580794 -0.598766 -0.002487 0.037156 -0.000000 0.000000 0.000001 0.000003 0.000001 -0.000000 0.000000 -0.000000 -0.000000 0.000002 0.000001 0.000001 -0.000000 0.000001 -0.000000 -0.000000 0.000003 0.000136 0.836395 8.861000 0.385915 -1.007755 -0.006550 0.062038 3.686763 0.012162 0.574212 0.000024 -0.000031 0.000064 0.000000 0.000000 -0.000000 0.000026 -0.000033 0.000061 -0.000002 -0.000003 -0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.035502 -0.297230 0.000000 0.000000 0.664366 -0.003829 -0.048461 0.459122 -0.000801 -0.018274 1.398848 -0.000000 -0.000000 5.702079 -0.000001 -0.000000 -179.999991 -0.000044 0.000003 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -6.077570 0.650899 -6.540558 69.898544 -57.971586 -28.433949 0.000001 -36.885839 -0.000001 -61.934441 -13.042296 1.759552 -0.000000 -0.000003 -0.000001 -0.000000 0.000000 -0.000000 0.000001 0.000001 -0.000000 -0.000000 0.000000 -0.000001 -15.020824 7.172246 2.879794 2.551628 22.418805 56.869825 0.000017 70.146630 -0.000009 -9.813235 -0.688845 52.224736 0.000001 0.000004 -0.000000 -0.000000 0.000000 0.000000 0.000002 -0.000003 0.000003 0.000001 -0.000001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 -0.003357 0.003131 -1.679541 -0.636167 -0.002655 0.039467 0.000000 -0.000002 0.000002 0.000005 0.000003 -0.000004 0.000000 0.000000 -0.000000 0.000005 0.000004 -0.000004 -0.000002 -0.000000 -0.000000 -0.000000 0.000003 0.000137 0.836699 8.860846 0.527044 -1.063698 -0.006947 0.065484 3.686768 0.012164 0.574207 0.000027 -0.000034 0.000062 0.000001 0.000001 0.000000 0.000029 -0.000034 0.000061 -0.000002 -0.000003 -0.000000 0.000000 0.000002 -0.000100 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000
|
||||
0.000000 1.067000 0.037479 -0.314644 0.000000 0.000000 0.664366 -0.003829 -0.048461 0.980960 -0.001890 -0.039036 2.042838 0.000000 -0.000000 6.647603 -0.000001 -0.000000 -179.999991 -0.000044 0.000003 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -7.747052 0.831032 -6.553089 69.397755 -57.953561 -29.302318 -0.000000 -37.032760 -0.000001 -58.971170 -12.995909 3.044659 -0.000000 0.000001 0.000003 0.000001 0.000001 -0.000000 -0.000000 -0.000003 0.000000 -0.000000 -0.000000 0.000000 -15.923684 7.572720 3.109344 3.009859 23.707634 55.424554 0.000009 71.383024 -0.000010 -10.764923 -0.998107 53.039854 0.000001 -0.000002 -0.000002 -0.000004 -0.000000 -0.000002 0.000005 0.000002 0.000003 0.000001 -0.000000 0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 -0.003550 0.003317 -1.777948 -0.673438 -0.002824 0.041771 0.000005 -0.000002 0.000004 -0.000000 0.000004 -0.000007 0.000000 -0.000000 0.000000 -0.000003 0.000003 -0.000006 -0.000001 -0.000000 -0.000000 -0.000000 0.000003 0.000137 0.837029 8.860615 0.682970 -1.118932 -0.007339 0.068886 3.686763 0.012165 0.574210 0.000027 -0.000033 0.000062 -0.000000 0.000001 0.000000 0.000027 -0.000033 0.000061 -0.000001 -0.000000 -0.000000 0.000000 0.000004 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.039440 -0.331936 0.000000 0.000000 0.664366 -0.003829 -0.048461 1.546321 -0.003284 -0.061517 2.740680 -0.000000 -0.000000 7.649884 -0.000001 -0.000001 -179.999991 -0.000044 0.000003 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000000 0.000000 0.000000 -9.562214 1.026768 -6.555662 68.852938 -57.923843 -30.245816 0.000004 -37.186022 -0.000001 -55.704195 -12.854653 4.428378 -0.000002 -0.000006 0.000001 0.000002 0.000000 -0.000000 0.000003 -0.000002 0.000000 0.000001 -0.000000 0.000000 -16.822479 7.967396 3.343829 3.504308 24.975113 53.965130 0.000028 72.550761 -0.000028 -11.712852 -1.317287 53.796745 0.000000 -0.000002 0.000000 -0.000003 -0.000002 0.000000 0.000003 0.000003 -0.000003 -0.000000 -0.000001 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.003743 0.003503 -1.875667 -0.710450 -0.002994 0.044058 -0.000000 -0.000001 0.000002 -0.000001 0.000002 -0.000001 0.000000 -0.000000 0.000000 -0.000001 0.000002 0.000000 -0.000001 0.000000 -0.000000 -0.000000 0.000002 0.000137 0.837382 8.860303 0.851843 -1.173306 -0.007732 0.072235 3.686770 0.012164 0.574211 0.000028 -0.000032 0.000060 0.000001 0.000002 -0.000000 0.000026 -0.000032 0.000060 -0.000002 -0.000002 -0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.041378 -0.349046 0.000000 0.000000 0.664366 -0.003829 -0.048461 2.149037 -0.005013 -0.085467 3.484763 0.000000 -0.000000 8.699859 -0.000001 -0.000001 -179.999991 -0.000044 0.000002 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000001 -0.000000 0.000000 -11.503818 1.235688 -6.547515 68.270992 -57.880949 -31.253928 -0.000003 -37.346054 -0.000001 -52.164139 -12.602466 5.893106 -0.000001 -0.000001 0.000000 0.000002 0.000000 0.000000 0.000001 -0.000001 0.000000 -0.000001 0.000000 0.000000 -17.713932 8.354871 3.582219 4.033112 26.215530 52.496192 0.000009 73.652020 -0.000014 -12.653268 -1.643821 54.496925 0.000001 -0.000001 -0.000000 -0.000002 0.000001 0.000000 0.000003 -0.000000 0.000001 0.000001 -0.000001 0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 -0.003932 0.003686 -1.972356 -0.747072 -0.003163 0.046320 -0.000002 -0.000000 0.000000 0.000004 0.000002 0.000002 -0.000000 -0.000000 0.000000 0.000001 0.000001 0.000001 -0.000001 -0.000000 0.000000 -0.000000 0.000003 0.000137 0.837755 8.859929 1.031813 -1.226674 -0.008119 0.075521 3.686767 0.012164 0.574211 0.000020 -0.000029 0.000052 0.000000 0.000002 -0.000000 0.000020 -0.000028 0.000052 -0.000001 -0.000002 -0.000000 0.000000 0.000001 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.043285 -0.365914 0.000000 0.000000 0.664367 -0.003829 -0.048461 2.782909 -0.007103 -0.110635 4.267443 -0.000000 -0.000000 9.788394 -0.000001 -0.000001 -179.999991 -0.000044 0.000003 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -13.552004 1.455236 -6.528098 67.659089 -57.823548 -32.316033 0.000001 -37.513209 -0.000002 -48.386126 -12.225502 7.417673 -0.000001 0.000002 -0.000001 0.000002 -0.000001 -0.000000 0.000002 -0.000002 -0.000000 0.000001 0.000000 -0.000000 -18.594753 8.733818 3.823408 4.593791 27.423425 51.022842 0.000011 74.688788 -0.000009 -13.582483 -1.975154 55.142071 0.000002 -0.000001 -0.000000 -0.000002 0.000000 0.000001 0.000001 0.000002 0.000002 -0.000001 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 -0.004119 0.003868 -2.067673 -0.783174 -0.003331 0.048552 0.000002 -0.000002 0.000004 -0.000000 0.000000 -0.000001 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000002 -0.000001 -0.000001 0.000000 -0.000000 0.000003 0.000137 0.838146 8.859497 1.221029 -1.278887 -0.008499 0.078735 3.686766 0.012166 0.574210 0.000029 -0.000028 0.000051 -0.000000 0.000000 0.000000 0.000024 -0.000027 0.000049 -0.000002 -0.000003 -0.000000 0.000000 0.000004 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.045157 -0.382478 0.000000 0.000000 0.664366 -0.003829 -0.048461 3.441733 -0.009570 -0.136766 5.081046 -0.000001 -0.000000 10.906268 -0.000001 -0.000001 -179.999991 -0.000044 0.000002 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 -15.686371 1.682758 -6.497118 67.024489 -57.750527 -33.421345 0.000002 -37.687901 -0.000001 -44.409603 -11.713331 8.977676 0.000002 -0.000006 0.000003 0.000003 -0.000001 -0.000000 0.000002 -0.000000 0.000000 0.000000 0.000000 -0.000000 -19.461608 9.102976 4.066199 5.183232 28.593665 49.550560 0.000003 75.662841 -0.000017 -14.496865 -2.308712 55.733893 -0.000002 0.000000 -0.000000 -0.000001 0.000000 0.000000 0.000001 -0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 -0.004302 0.004047 -2.161273 -0.818626 -0.003498 0.050743 0.000001 -0.000001 0.000002 0.000005 0.000001 0.000000 -0.000000 -0.000000 0.000000 0.000004 0.000002 -0.000000 -0.000001 -0.000000 -0.000000 -0.000000 0.000003 0.000138 0.838551 8.859017 1.417639 -1.329795 -0.008873 0.081870 3.686765 0.012162 0.574213 0.000023 -0.000028 0.000049 0.000000 0.000001 -0.000000 0.000024 -0.000028 0.000048 -0.000002 -0.000002 -0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.046985 -0.398678 0.000000 0.000000 0.664366 -0.003829 -0.048461 4.119276 -0.012420 -0.163609 5.917872 -0.000001 -0.000000 12.044226 -0.000002 -0.000001 -179.999991 -0.000044 0.000003 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 0.000000 -0.000000 -0.000000 0.000000 -17.885969 1.915535 -6.454604 66.374508 -57.660962 -34.559029 0.000001 -37.870541 -0.000001 -40.277919 -11.060029 10.546387 -0.000000 0.000003 -0.000001 0.000001 0.000001 -0.000001 0.000003 -0.000003 0.000001 0.000000 -0.000000 -0.000000 -20.311178 9.461142 4.309330 5.797669 29.721500 48.085389 0.000002 76.575805 -0.000026 -15.392856 -2.641978 56.274263 -0.000001 0.000002 0.000000 -0.000000 -0.000002 -0.000003 0.000003 -0.000002 -0.000002 0.000000 0.000001 0.000001 0.000000 0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 0.000000 -0.004481 0.004222 -2.252814 -0.853298 -0.003662 0.052884 -0.000001 -0.000002 0.000002 0.000006 0.000001 0.000001 -0.000000 -0.000000 0.000000 0.000004 0.000001 0.000000 -0.000001 -0.000000 0.000000 -0.000000 0.000003 0.000137 0.838966 8.858492 1.619792 -1.379253 -0.009241 0.084913 3.686767 0.012163 0.574214 0.000021 -0.000028 0.000051 0.000000 -0.000000 -0.000000 0.000020 -0.000027 0.000050 -0.000001 -0.000002 -0.000000 0.000000 0.000001 -0.000102 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.048763 -0.414452 0.000000 0.000000 0.664366 -0.003829 -0.048461 4.809308 -0.015650 -0.190910 6.770185 -0.000001 -0.000001 13.192956 -0.000002 -0.000001 -179.999991 -0.000044 0.000003 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 0.000001 0.000000 0.000000 -20.129430 2.150832 -6.400933 65.716604 -57.554200 -35.718215 0.000004 -38.061502 -0.000002 -36.037086 -10.265110 12.095984 0.000002 0.000002 -0.000000 0.000002 -0.000002 -0.000001 0.000002 0.000000 -0.000000 0.000000 -0.000000 0.000000 -21.140093 9.807206 4.551465 6.432706 30.802569 46.633793 0.000014 77.429101 -0.000016 -16.266930 -2.972452 56.765139 0.000001 -0.000000 -0.000000 -0.000001 -0.000001 -0.000003 0.000002 0.000000 0.000001 -0.000001 0.000001 0.000001 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 -0.004655 0.004392 -2.341954 -0.887062 -0.003823 0.054970 -0.000000 -0.000003 0.000005 0.000003 0.000001 -0.000002 -0.000000 0.000000 -0.000000 0.000001 -0.000000 -0.000001 -0.000001 -0.000001 -0.000000 -0.000000 0.000003 0.000137 0.839389 8.857937 1.825637 -1.427108 -0.009597 0.087859 3.686765 0.012162 0.574212 0.000021 -0.000027 0.000046 0.000000 0.000001 -0.000000 0.000022 -0.000028 0.000046 -0.000002 -0.000003 -0.000000 0.000000 0.000004 -0.000102 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.050485 -0.429741 0.000000 0.000000 0.664366 -0.003829 -0.048461 5.505581 -0.019242 -0.218417 7.630247 -0.000001 -0.000001 14.343112 -0.000002 -0.000001 -179.999991 -0.000044 0.000003 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -22.395089 2.385960 -6.336851 65.058071 -57.429822 -36.888059 0.000001 -38.261183 -0.000002 -31.734633 -9.333963 13.599042 0.000000 -0.000003 0.000000 0.000002 0.000003 -0.000001 0.000003 -0.000001 -0.000000 0.000001 -0.000000 0.000000 -21.944988 10.140102 4.791206 7.083322 31.832985 45.202807 0.000015 78.224080 -0.000013 -17.115593 -3.297702 57.208589 -0.000001 0.000000 -0.000001 -0.000002 -0.000002 -0.000002 -0.000000 0.000002 0.000002 -0.000003 -0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.004823 0.004558 -2.428348 -0.919784 -0.003981 0.056991 0.000003 0.000001 -0.000001 0.000003 -0.000001 0.000004 0.000000 0.000000 -0.000000 0.000002 -0.000001 0.000004 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000137 0.839815 8.857353 2.033320 -1.473212 -0.009946 0.090697 3.686764 0.012162 0.574211 0.000018 -0.000027 0.000046 0.000000 -0.000001 -0.000000 0.000019 -0.000026 0.000045 -0.000002 -0.000003 -0.000000 0.000000 0.000002 -0.000101 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.052144 -0.444484 0.000000 0.000000 0.664366 -0.003829 -0.048461 6.201847 -0.023168 -0.245878 8.490306 -0.000000 -0.000001 15.485350 -0.000002 -0.000001 -179.999991 -0.000044 0.000003 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000001 0.000000 0.000000 -24.661081 2.618325 -6.263476 64.406116 -57.287713 -38.057879 -0.000000 -38.470026 -0.000002 -27.417867 -8.277919 15.030130 0.000000 0.000002 0.000003 0.000002 0.000001 -0.000000 0.000003 -0.000002 -0.000000 0.000001 0.000000 -0.000000 -22.722479 10.458850 5.027103 7.743895 32.809285 43.799882 -0.000002 78.961877 -0.000014 -17.935370 -3.615363 57.606744 -0.000001 0.000003 -0.000001 0.000001 -0.000001 0.000000 0.000001 -0.000001 0.000002 -0.000002 -0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 0.000000 -0.004985 0.004718 -2.511652 -0.951338 -0.004134 0.058941 0.000001 -0.000000 0.000000 0.000006 -0.000001 0.000003 -0.000000 0.000000 0.000000 0.000006 -0.000002 0.000002 -0.000001 -0.000000 -0.000000 -0.000000 0.000002 0.000137 0.840243 8.856748 2.240992 -1.517422 -0.010280 0.093417 3.686767 0.012163 0.574211 0.000020 -0.000024 0.000046 -0.000000 0.000000 -0.000000 0.000021 -0.000024 0.000048 -0.000001 -0.000002 -0.000001 0.000000 0.000003 -0.000101 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.053734 -0.458619 0.000000 0.000000 0.664366 -0.003829 -0.048461 6.891850 -0.027386 -0.273043 9.342605 -0.000001 -0.000001 16.610325 -0.000002 -0.000001 -179.999991 -0.000044 0.000003 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 0.000000 0.000000 -26.905582 2.845490 -6.182301 63.767889 -57.127982 -39.217133 -0.000001 -38.688404 -0.000002 -23.132519 -7.113712 16.367276 -0.000001 0.000002 0.000001 0.000002 0.000002 0.000000 -0.000001 -0.000001 -0.000001 -0.000000 -0.000000 -0.000000 -23.469191 10.762533 5.257664 8.408249 33.728475 42.432977 0.000017 79.643564 -0.000010 -18.722788 -3.923162 57.961812 -0.000001 0.000003 0.000001 -0.000003 0.000000 -0.000005 -0.000000 -0.000002 0.000003 -0.000001 -0.000002 -0.000001 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.005140 0.004871 -2.591526 -0.981593 -0.004281 0.060810 0.000001 -0.000000 0.000000 0.000003 -0.000003 0.000005 -0.000000 -0.000000 0.000000 0.000003 -0.000002 0.000006 -0.000001 0.000000 -0.000000 -0.000000 0.000003 0.000137 0.840668 8.856139 2.446801 -1.559582 -0.010602 0.096012 3.686770 0.012160 0.574212 0.000017 -0.000022 0.000042 0.000000 0.000001 -0.000000 0.000017 -0.000022 0.000042 -0.000001 -0.000002 -0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.055247 -0.472087 0.000000 0.000000 0.664366 -0.003829 -0.048461 7.569352 -0.031848 -0.299664 10.179413 -0.000001 -0.000001 17.708703 -0.000002 -0.000001 -179.999991 -0.000044 0.000003 -0.000002 0.000000 -0.000000 -0.000002 0.000000 -0.000000 -0.000002 0.000000 -0.000000 -0.000001 -0.000000 0.000000 -29.106909 3.065219 -6.095133 63.150167 -56.951019 -40.355524 0.000001 -38.916727 -0.000003 -18.921460 -5.862560 17.593118 -0.000007 -0.000001 0.000000 0.000002 -0.000001 -0.000002 0.000002 -0.000001 -0.000001 0.000002 -0.000000 0.000000 -24.181735 11.050284 5.481356 9.069714 34.587996 41.110410 0.000038 80.270091 -0.000041 -19.474389 -4.218897 58.276076 0.000001 0.000000 -0.000000 -0.000001 0.000003 0.000001 0.000000 -0.000002 -0.000002 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 -0.005288 0.005018 -2.667626 -1.010418 -0.004423 0.062591 0.000001 -0.000000 -0.000002 0.000008 -0.000003 0.000007 -0.000000 -0.000000 0.000000 0.000007 -0.000002 0.000007 -0.000001 -0.000001 -0.000000 -0.000000 0.000003 0.000137 0.841085 8.855525 2.648900 -1.599548 -0.010907 0.098471 3.686765 0.012162 0.574213 0.000021 -0.000021 0.000041 -0.000000 0.000001 -0.000000 0.000019 -0.000021 0.000040 -0.000002 -0.000003 -0.000000 0.000000 0.000002 -0.000101 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.056677 -0.484826 0.000000 0.000000 0.664367 -0.003829 -0.048461 8.228116 -0.036486 -0.325497 10.992985 -0.000001 -0.000001 18.771195 -0.000002 -0.000001 -179.999991 -0.000044 0.000002 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 -0.000001 -0.000000 -0.000000 -31.243635 3.275511 -6.004089 62.559560 -56.757438 -41.463077 0.000001 -39.155432 -0.000001 -14.823761 -4.548837 18.695572 -0.000001 -0.000003 0.000002 0.000002 -0.000002 -0.000002 0.000001 0.000001 0.000001 -0.000002 -0.000000 0.000000 -24.856723 11.321311 5.696622 9.721196 35.385728 39.840958 0.000013 80.842310 -0.000033 -20.186709 -4.500487 58.551865 0.000001 -0.000002 0.000001 -0.000000 -0.000002 0.000001 0.000001 -0.000002 0.000000 -0.000001 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.005427 0.005157 -2.739606 -1.037683 -0.004557 0.064274 0.000003 -0.000001 0.000002 0.000009 -0.000004 0.000008 -0.000000 -0.000000 0.000000 0.000005 -0.000004 0.000009 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 0.841493 8.854918 2.845437 -1.637170 -0.011197 0.100787 3.686768 0.012163 0.574213 0.000018 -0.000020 0.000034 0.000000 -0.000001 0.000000 0.000018 -0.000019 0.000033 -0.000001 -0.000002 -0.000000 0.000000 0.000002 -0.000099 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.058017 -0.496776 0.000000 0.000000 0.664366 -0.003829 -0.048461 8.861920 -0.041230 -0.350299 11.775638 -0.000001 -0.000001 19.788588 -0.000003 -0.000001 -180.000005 -0.000044 0.000003 -0.000003 -0.000000 -0.000000 -0.000003 -0.000000 -0.000000 -0.000003 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -33.294826 3.474629 -5.911533 62.002265 -56.548103 -42.530133 0.000002 -39.404936 -0.000002 -10.874247 -3.198651 19.668086 -0.000001 0.000003 -0.000002 0.000002 -0.000001 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -25.490788 11.574860 5.901881 10.355257 36.119949 38.633623 0.000031 81.361043 -0.000036 -20.856269 -4.765931 58.791529 -0.000001 0.000000 -0.000001 -0.000003 -0.000002 -0.000000 0.000002 -0.000002 0.000001 -0.000002 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.005558 0.005287 -2.807129 -1.063260 -0.004684 0.065853 -0.000000 -0.000001 0.000002 0.000007 -0.000005 0.000014 -0.000000 -0.000000 -0.000000 0.000006 -0.000005 0.000015 -0.000001 -0.000000 -0.000000 -0.000000 0.000002 0.000136 0.841887 8.854324 3.034564 -1.672301 -0.011469 0.102948 3.686770 0.012164 0.574212 0.000015 -0.000017 0.000031 0.000000 -0.000000 0.000000 0.000014 -0.000018 0.000032 -0.000001 -0.000001 0.000000 0.000000 0.000001 -0.000099 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.059262 -0.507876 0.000000 0.000000 0.664366 -0.003829 -0.048461 9.464554 -0.045994 -0.373832 12.519685 -0.000001 -0.000001 20.751691 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 0.000002 -0.000000 0.000000 0.000002 -0.000000 0.000000 0.000002 -0.000000 -0.000000 -0.000002 0.000000 -0.000000 -35.240020 3.661103 -5.820023 61.484086 -56.324001 -43.547428 0.000002 -39.665661 -0.000002 -7.103435 -1.838469 20.509424 0.000001 -0.000003 0.000000 0.000001 -0.000001 -0.000001 0.000002 -0.000001 -0.000000 0.000000 0.000000 -0.000000 -26.080539 11.810205 6.095543 10.964170 36.789229 37.497687 0.000039 81.826978 -0.000032 -21.479509 -5.013352 58.997460 0.000000 0.000003 -0.000000 -0.000002 -0.000000 0.000002 -0.000001 0.000001 0.000002 -0.000002 -0.000001 0.000000 -0.000000 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.005679 0.005408 -2.869847 -1.087017 -0.004803 0.067323 0.000001 -0.000002 0.000002 0.000009 -0.000005 0.000010 -0.000000 -0.000000 0.000000 0.000007 -0.000006 0.000011 -0.000001 -0.000001 -0.000000 -0.000000 0.000003 0.000138 0.842262 8.853750 3.214433 -1.704790 -0.011721 0.104947 3.686765 0.012164 0.574209 0.000015 -0.000020 0.000033 0.000000 -0.000001 0.000000 0.000016 -0.000018 0.000031 -0.000001 -0.000002 -0.000001 0.000000 0.000003 -0.000099 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.060403 -0.518065 0.000000 0.000000 0.664366 -0.003829 -0.048461 10.029835 -0.050687 -0.395859 13.217491 -0.000002 -0.000001 21.651396 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 0.000003 -0.000000 0.000000 0.000003 -0.000000 0.000000 0.000003 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -37.059374 3.833724 -5.732257 61.010603 -56.086331 -44.506083 -0.000002 -39.938035 -0.000001 -3.537689 -0.493779 21.223061 0.000001 0.000001 -0.000000 0.000001 -0.000002 0.000000 -0.000001 0.000001 0.000001 -0.000000 0.000000 -0.000001 -26.622628 12.026676 6.276019 11.540097 37.392478 36.442625 0.000041 82.240839 -0.000040 -22.052924 -5.240963 59.172053 0.000003 -0.000003 -0.000000 -0.000002 -0.000004 -0.000001 0.000000 -0.000002 -0.000001 -0.000001 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.005790 0.005520 -2.927419 -1.108825 -0.004913 0.068670 -0.000001 -0.000001 -0.000000 0.000013 -0.000007 0.000011 0.000000 -0.000000 0.000000 0.000011 -0.000007 0.000010 -0.000001 -0.000001 0.000000 -0.000000 0.000003 0.000138 0.842616 8.853208 3.383201 -1.734490 -0.011952 0.106773 3.686766 0.012163 0.574209 0.000011 -0.000017 0.000029 0.000000 -0.000001 -0.000001 0.000014 -0.000018 0.000030 -0.000001 -0.000003 -0.000000 0.000000 0.000003 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.061435 -0.527283 0.000000 0.000000 0.664366 -0.003829 -0.048461 10.551590 -0.055213 -0.416148 13.861442 -0.000002 -0.000001 22.478663 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -38.733552 3.991505 -5.651013 60.586783 -55.836370 -45.397628 -0.000003 -40.222509 -0.000003 -0.199746 0.811758 21.816423 -0.000001 -0.000001 -0.000001 0.000002 0.000002 0.000001 -0.000000 -0.000002 -0.000001 0.000001 -0.000000 0.000000 -27.113674 12.223586 6.441722 12.075121 37.928751 35.477895 0.000050 82.603317 -0.000062 -22.572908 -5.447069 59.317679 0.000001 -0.000001 0.000000 -0.000003 -0.000003 -0.000000 -0.000003 -0.000001 -0.000002 0.000001 -0.000002 0.000000 -0.000001 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.005891 0.005621 -2.979501 -1.128553 -0.005012 0.069886 0.000000 -0.000003 0.000003 0.000004 -0.000005 0.000007 0.000000 0.000000 0.000000 0.000004 -0.000006 0.000009 -0.000001 -0.000001 -0.000000 -0.000000 0.000003 0.000137 0.842943 8.852695 3.539017 -1.761253 -0.012163 0.108419 3.686763 0.012164 0.574210 0.000012 -0.000017 0.000033 0.000000 -0.000001 -0.000000 0.000012 -0.000017 0.000033 -0.000001 -0.000001 0.000000 0.000000 0.000001 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.062351 -0.535469 0.000000 0.000000 0.664367 -0.003829 -0.048461 11.023660 -0.059466 -0.434470 14.443974 -0.000002 -0.000001 23.224501 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 0.000002 -0.000000 -0.000000 0.000002 -0.000000 -0.000000 0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -40.243864 4.133658 -5.579118 60.217372 -55.575467 -46.213921 0.000001 -40.519530 -0.000000 2.890671 2.056975 22.299968 -0.000001 0.000002 0.000002 0.000001 -0.000001 0.000001 0.000001 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -27.550374 12.400305 6.591089 12.561383 38.397268 34.613001 0.000010 82.915006 -0.000065 -23.035831 -5.630100 59.436750 0.000003 -0.000002 -0.000003 0.000001 -0.000001 0.000001 0.000000 -0.000001 -0.000002 -0.000001 -0.000001 0.000000 0.000001 0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000000 0.000000 0.000000 0.000001 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.005980 0.005710 -3.025752 -1.146073 -0.005100 0.070969 0.000001 -0.000002 0.000002 0.000007 -0.000007 0.000010 0.000000 -0.000000 0.000000 0.000004 -0.000007 0.000011 -0.000001 -0.000001 0.000000 -0.000000 0.000003 0.000138 0.843240 8.852230 3.680040 -1.784928 -0.012349 0.109876 3.686764 0.012164 0.574211 0.000012 -0.000019 0.000030 0.000000 -0.000001 -0.000000 0.000012 -0.000018 0.000029 -0.000001 -0.000001 -0.000001 0.000000 0.000002 -0.000100 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.063145 -0.542562 0.000000 0.000000 0.664367 -0.003829 -0.048461 11.439914 -0.063341 -0.450595 14.957522 -0.000002 -0.000001 23.880008 -0.000003 -0.000001 -180.000005 -0.000044 0.000003 -0.000004 -0.000000 0.000000 -0.000004 -0.000000 0.000000 -0.000004 -0.000000 0.000000 -0.000000 0.000000 0.000000 -41.571998 4.259525 -5.519398 59.906688 -55.305032 -46.947302 0.000002 -40.829590 -0.000000 5.716148 3.223467 22.686224 0.000000 0.000001 0.000000 0.000003 0.000000 0.000000 0.000001 0.000001 0.000001 0.000000 -0.000000 -0.000000 -27.929333 12.556145 6.722568 12.991196 38.797223 33.857350 0.000004 83.176637 -0.000067 -23.438043 -5.788556 59.531539 -0.000001 0.000005 -0.000001 0.000001 -0.000005 -0.000001 -0.000002 -0.000001 -0.000002 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000001 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.006057 0.005788 -3.065829 -1.161255 -0.005178 0.071907 0.000001 -0.000000 0.000000 0.000008 -0.000006 0.000010 0.000000 -0.000000 0.000000 0.000007 -0.000006 0.000010 -0.000000 0.000000 0.000000 -0.000000 0.000003 0.000137 0.843503 8.851813 3.804426 -1.805370 -0.012509 0.111132 3.686767 0.012164 0.574213 0.000014 -0.000015 0.000027 -0.000000 -0.000001 -0.000001 0.000013 -0.000015 0.000024 -0.000001 -0.000002 -0.000001 0.000000 0.000003 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.063809 -0.548501 0.000000 0.000000 0.664366 -0.003829 -0.048461 11.794224 -0.066732 -0.464298 15.394568 -0.000002 -0.000001 24.436267 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -42.700055 4.368509 -5.474624 59.658642 -55.026418 -47.590340 -0.000002 -41.153116 -0.000002 8.260910 4.295556 22.988982 0.000003 -0.000004 0.000003 0.000002 0.000001 -0.000002 -0.000002 0.000000 -0.000000 -0.000002 -0.000000 0.000000 -28.247258 12.690427 6.834650 13.357143 39.127777 33.220152 0.000048 83.388864 -0.000077 -23.775772 -5.921027 59.604390 -0.000000 0.000002 -0.000002 -0.000000 -0.000003 -0.000002 0.000001 -0.000002 -0.000003 -0.000001 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.006122 0.005853 -3.099387 -1.173967 -0.005243 0.072692 0.000004 -0.000002 0.000002 0.000007 -0.000007 0.000014 0.000000 -0.000000 0.000000 0.000005 -0.000007 0.000014 -0.000001 -0.000001 -0.000000 -0.000000 0.000003 0.000138 0.843727 8.851460 3.910330 -1.822427 -0.012645 0.112182 3.686763 0.012163 0.574211 0.000012 -0.000017 0.000028 0.000000 -0.000001 -0.000000 0.000012 -0.000015 0.000027 -0.000001 -0.000002 -0.000001 0.000000 0.000001 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.064337 -0.553227 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.080454 -0.069533 -0.475353 15.747597 -0.000002 -0.000001 24.884391 -0.000003 -0.000001 -179.999991 -0.000044 0.000002 -0.000003 0.000000 0.000000 -0.000003 0.000000 0.000000 -0.000003 0.000000 0.000000 -0.000000 -0.000000 0.000000 -43.610314 4.460009 -5.447526 59.476987 -54.740947 -48.135946 0.000004 -41.490606 -0.000002 10.510121 5.260077 23.222479 -0.000002 -0.000000 0.000006 0.000004 0.000002 -0.000001 0.000001 0.000002 -0.000000 -0.000001 0.000000 0.000000 -28.500851 12.802441 6.925865 13.652193 39.387864 32.710319 0.000042 83.552454 -0.000071 -24.045269 -6.026181 59.657461 0.000002 -0.000002 0.000001 0.000001 -0.000001 0.000002 -0.000001 0.000000 -0.000003 -0.000001 0.000001 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 -0.006173 0.005905 -3.126085 -1.184080 -0.005294 0.073317 0.000003 -0.000001 0.000002 0.000010 -0.000006 0.000011 -0.000000 0.000000 -0.000000 0.000008 -0.000006 0.000011 -0.000000 -0.000001 -0.000000 -0.000000 0.000003 0.000138 0.843909 8.851170 3.995910 -1.835953 -0.012752 0.113013 3.686768 0.012162 0.574211 0.000011 -0.000012 0.000026 -0.000000 0.000000 0.000000 0.000012 -0.000012 0.000028 -0.000001 -0.000002 -0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.064722 -0.556677 0.000000 0.000000 0.664367 -0.003829 -0.048461 12.292503 -0.071643 -0.483534 16.009084 -0.000002 -0.000001 25.215542 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000001 0.000000 0.000000 -44.284983 4.533317 -5.440725 59.364999 -54.449817 -48.577347 -0.000004 -41.842572 -0.000003 12.449154 6.105877 23.400728 0.000004 -0.000000 -0.000002 0.000002 0.000000 0.000000 -0.000002 0.000001 -0.000001 0.000001 -0.000001 0.000001 -28.686788 12.891407 6.994794 13.869835 39.576141 32.336414 0.000043 83.668144 -0.000065 -24.242638 -6.102757 59.692937 0.000001 0.000001 -0.000002 0.000001 0.000001 -0.000000 -0.000002 0.000001 -0.000003 -0.000002 0.000000 0.000001 0.000000 0.000000 -0.000000 0.000001 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.006211 0.005943 -3.145579 -1.191465 -0.005332 0.073773 0.000005 -0.000001 0.000000 0.000007 -0.000006 0.000010 -0.000000 -0.000000 0.000000 0.000004 -0.000007 0.000010 -0.000001 -0.000001 -0.000000 -0.000000 0.000003 0.000138 0.844043 8.850952 4.059321 -1.845797 -0.012830 0.113619 3.686763 0.012160 0.574214 0.000009 -0.000013 0.000023 0.000000 -0.000001 0.000000 0.000009 -0.000015 0.000023 -0.000001 -0.000004 -0.000000 0.000000 0.000003 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.064958 -0.558792 0.000000 0.000000 0.664367 -0.003829 -0.048461 12.424240 -0.072971 -0.488612 16.171535 -0.000002 -0.000001 25.420810 -0.000003 -0.000001 -180.000005 -0.000043 0.000003 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000003 -0.000000 0.000000 -44.706156 4.587533 -5.456738 59.325889 -54.154060 -48.907863 0.000002 -42.209527 -0.000002 14.062881 6.823296 23.536986 -0.000001 0.000001 0.000003 0.000002 0.000000 0.000002 0.000006 0.000000 -0.000000 0.000001 -0.000000 0.000000 -28.801798 12.956502 7.040082 14.004149 39.690858 32.106599 0.000027 83.736862 -0.000058 -24.364004 -6.149548 59.712820 0.000004 0.000003 -0.000001 -0.000001 -0.000002 -0.000001 -0.000000 -0.000001 0.000000 -0.000003 0.000002 0.000000 0.000002 0.000000 -0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.006233 0.005966 -3.157526 -1.195991 -0.005355 0.074052 0.000003 -0.000001 0.000002 0.000007 -0.000007 0.000012 0.000000 -0.000000 0.000000 0.000006 -0.000007 0.000012 -0.000001 -0.000000 -0.000000 -0.000000 0.000003 0.000137 0.844127 8.850819 4.098721 -1.851813 -0.012879 0.113988 3.686765 0.012164 0.574214 0.000011 -0.000010 0.000022 -0.000000 0.000001 -0.000001 0.000010 -0.000011 0.000020 -0.000001 -0.000002 -0.000001 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.065038 -0.559510 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469515 -0.073429 -0.490356 16.227362 -0.000002 -0.000001 25.491236 -0.000003 -0.000001 -180.000005 -0.000044 0.000003 -0.000003 0.000000 -0.000000 -0.000003 0.000000 -0.000000 -0.000003 0.000000 -0.000000 -0.000004 0.000000 0.000000 -44.855389 4.621465 -5.497951 59.362608 -53.854498 -49.121033 0.000003 -42.591977 0.000001 15.335021 7.403495 23.643279 -0.000001 0.000003 0.000002 0.000004 0.000000 -0.000001 -0.000000 -0.000001 -0.000001 -0.000001 -0.000000 0.000000 -28.842577 12.996797 7.060441 14.049924 39.729701 32.028403 0.000114 83.759559 -0.000121 -24.405366 -6.165400 59.719035 0.000001 -0.000000 0.000001 -0.000000 -0.000006 -0.000004 -0.000001 0.000001 0.000000 -0.000001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.006240 0.005974 -3.161587 -1.197529 -0.005363 0.074147 0.000002 -0.000001 0.000000 0.000008 -0.000009 0.000014 0.000000 -0.000000 0.000000 0.000007 -0.000009 0.000015 -0.000000 -0.000001 0.000000 -0.000000 0.000003 0.000138 0.844156 8.850770 4.112264 -1.853852 -0.012895 0.114110 3.686764 0.012164 0.574211 0.000009 -0.000011 0.000022 -0.000000 -0.000002 -0.000000 0.000009 -0.000012 0.000020 -0.000000 -0.000001 0.000000 0.000000 0.000002 -0.000101 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.064986 -0.559064 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469514 -0.073430 -0.490356 16.227362 -0.000002 -0.000001 25.491241 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000002 0.000000 -0.000000 -0.000004 -0.000000 0.000000 -44.861874 4.643234 -5.557225 59.465341 -53.556172 -49.233195 0.000001 -42.990075 0.000001 16.397846 7.894723 23.716929 0.000001 0.000001 0.000002 -0.000001 -0.000002 0.000000 -0.000001 0.000001 -0.000000 -0.000001 0.000000 -0.000000 -28.806490 13.027199 7.058772 13.969171 39.663404 32.172261 0.000105 83.673294 -0.000119 -24.405364 -6.165400 59.719035 0.000001 -0.000001 0.000001 0.000002 -0.000003 -0.000003 0.000000 0.000000 -0.000002 -0.000000 0.000001 0.000001 -0.000001 0.000001 -0.000000 -0.000001 0.000000 -0.000000 -0.000002 0.000001 0.000000 -0.000002 0.000001 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -0.006240 0.005974 -3.161587 -1.196542 -0.005358 0.074085 0.000002 -0.000002 0.000004 0.000005 -0.000008 0.000012 -0.000000 -0.000000 0.000000 0.000005 -0.000007 0.000014 -0.000000 -0.000000 0.000000 -0.000000 0.000003 0.000137 0.844156 8.850768 4.112264 -1.852324 -0.012881 0.114017 3.686766 0.012163 0.574211 0.000009 -0.000015 0.000026 0.000000 0.000001 -0.000001 0.000009 -0.000014 0.000024 -0.000001 -0.000002 0.000000 0.000000 0.000001 -0.000099 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.064833 -0.557745 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469516 -0.073429 -0.490356 16.227363 -0.000002 -0.000001 25.491238 -0.000003 -0.000001 -180.000005 -0.000044 0.000003 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000004 -0.000000 -0.000000 -44.867468 4.662063 -5.625427 59.618939 -53.263892 -49.269272 0.000003 -43.402307 0.000001 17.397513 8.351381 23.750711 0.000002 0.000000 -0.000003 -0.000001 0.000001 0.000000 0.000000 -0.000002 -0.000001 0.000002 -0.000001 0.000000 -28.696569 13.062960 7.039558 13.735732 39.469512 32.589623 0.000086 83.422216 -0.000115 -24.405357 -6.165396 59.719028 0.000001 -0.000000 0.000001 -0.000002 -0.000001 -0.000001 -0.000001 -0.000002 -0.000002 -0.000001 0.000001 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 0.000000 -0.006240 0.005974 -3.161587 -1.193626 -0.005343 0.073906 0.000000 -0.000002 0.000004 0.000005 -0.000006 0.000013 0.000000 0.000000 0.000000 0.000006 -0.000007 0.000013 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000138 0.844156 8.850770 4.112265 -1.847811 -0.012848 0.113739 3.686766 0.012162 0.574213 0.000010 -0.000013 0.000023 -0.000000 -0.000001 0.000000 0.000009 -0.000012 0.000023 -0.000000 -0.000003 -0.000001 0.000000 0.000001 -0.000102 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.064582 -0.555583 0.000000 0.000000 0.664367 -0.003829 -0.048461 12.469516 -0.073430 -0.490356 16.227363 -0.000002 -0.000001 25.491241 -0.000003 -0.000001 -180.000005 -0.000044 0.000003 -0.000003 0.000000 0.000000 -0.000003 0.000000 0.000000 -0.000003 0.000000 0.000000 -0.000002 -0.000000 0.000000 -44.872198 4.678104 -5.701786 59.818168 -52.977812 -49.235620 -0.000001 -43.826841 0.000000 18.336997 8.774185 23.748392 0.000002 0.000001 -0.000001 -0.000003 0.000003 -0.000002 -0.000001 0.000001 -0.000001 0.000000 -0.000000 0.000001 -28.518007 13.103538 7.003936 13.364682 39.154264 33.257687 0.000102 83.017944 -0.000108 -24.405362 -6.165400 59.719035 0.000004 0.000002 -0.000000 0.000002 -0.000001 0.000001 0.000001 -0.000003 -0.000002 -0.000001 0.000000 -0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.006240 0.005974 -3.161586 -1.188846 -0.005319 0.073609 -0.000000 -0.000000 -0.000001 0.000006 -0.000007 0.000010 0.000000 0.000000 0.000000 0.000003 -0.000007 0.000010 -0.000001 -0.000001 -0.000000 -0.000000 0.000003 0.000136 0.844156 8.850769 4.112264 -1.840412 -0.012788 0.113284 3.686766 0.012162 0.574213 0.000010 -0.000012 0.000022 -0.000000 0.000000 -0.000000 0.000010 -0.000012 0.000023 -0.000001 -0.000004 -0.000001 0.000000 0.000003 -0.000101 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.064236 -0.552608 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469514 -0.073429 -0.490356 16.227360 -0.000002 -0.000001 25.491239 -0.000003 -0.000001 -180.000005 -0.000044 0.000003 -0.000002 0.000000 -0.000000 -0.000002 0.000000 -0.000000 -0.000002 0.000000 -0.000000 -0.000002 0.000000 0.000000 -44.876122 4.691512 -5.785536 60.058120 -52.698068 -49.138338 0.000001 -44.261695 -0.000001 19.219092 9.164042 23.713510 0.000002 -0.000002 0.000000 0.000005 0.000001 -0.000002 -0.000001 -0.000000 -0.000002 -0.000002 0.000000 0.000000 -28.276027 13.148381 6.953051 12.873080 38.722682 34.152237 0.000075 82.471816 -0.000113 -24.405359 -6.165399 59.719028 -0.000000 -0.000001 -0.000000 -0.000000 -0.000002 -0.000002 -0.000001 -0.000001 -0.000002 -0.000000 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.006240 0.005974 -3.161587 -1.182272 -0.005285 0.073204 -0.000000 0.000000 -0.000002 0.000011 -0.000006 0.000013 0.000000 0.000000 -0.000000 0.000012 -0.000006 0.000016 -0.000001 -0.000001 0.000000 -0.000000 0.000003 0.000137 0.844156 8.850769 4.112264 -1.830234 -0.012706 0.112659 3.686767 0.012160 0.574212 0.000009 -0.000012 0.000019 -0.000000 0.000000 -0.000000 0.000009 -0.000012 0.000020 -0.000000 -0.000004 -0.000001 0.000000 0.000003 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.063799 -0.548849 0.000000 0.000000 0.664367 -0.003829 -0.048461 12.469517 -0.073429 -0.490356 16.227362 -0.000002 -0.000001 25.491243 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 0.000000 0.000000 -44.879284 4.702443 -5.875914 60.333998 -52.424697 -48.983364 -0.000004 -44.705043 0.000002 20.046358 9.521950 23.649421 0.000003 -0.000006 0.000001 0.000001 -0.000001 0.000000 -0.000003 0.000001 0.000000 0.000001 0.000000 -0.000000 -27.975801 13.196873 6.888021 12.279294 38.179084 35.247963 0.000099 81.795313 -0.000091 -24.405359 -6.165397 59.719035 0.000002 -0.000003 -0.000000 0.000001 -0.000000 0.000001 -0.000003 -0.000003 -0.000001 -0.000000 -0.000000 0.000000 0.000002 0.000000 -0.000000 0.000002 -0.000000 -0.000000 0.000002 0.000000 0.000000 0.000002 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.006240 0.005974 -3.161586 -1.173966 -0.005243 0.072691 -0.000000 -0.000000 -0.000001 0.000010 -0.000007 0.000015 -0.000000 -0.000000 0.000000 0.000009 -0.000007 0.000018 -0.000001 -0.000000 0.000000 -0.000000 0.000003 0.000136 0.844156 8.850769 4.112264 -1.817377 -0.012605 0.111868 3.686762 0.012163 0.574209 0.000007 -0.000014 0.000026 -0.000000 0.000000 0.000000 0.000006 -0.000015 0.000025 -0.000001 -0.000004 -0.000000 0.000000 0.000001 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.063274 -0.544336 0.000000 0.000000 0.664367 -0.003829 -0.048461 12.469515 -0.073429 -0.490356 16.227356 -0.000002 -0.000001 25.491239 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 0.000002 0.000000 0.000000 0.000002 0.000000 0.000000 0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -44.881733 4.711044 -5.972144 60.641281 -52.157705 -48.776512 0.000004 -45.154930 0.000002 20.821169 9.849011 23.559254 0.000004 0.000000 0.000002 0.000003 0.000001 -0.000001 -0.000000 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -27.622555 13.248389 6.809980 11.602500 37.527634 36.519010 0.000068 80.999787 -0.000089 -24.405359 -6.165398 59.719028 0.000001 0.000001 0.000000 -0.000002 -0.000003 -0.000001 -0.000002 0.000001 -0.000002 0.000000 -0.000000 0.000000 -0.000001 0.000001 -0.000000 -0.000002 0.000000 -0.000000 -0.000001 0.000001 -0.000000 -0.000002 0.000001 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.006240 0.005974 -3.161587 -1.163999 -0.005192 0.072076 0.000004 -0.000000 -0.000001 0.000008 -0.000007 0.000016 -0.000000 0.000000 -0.000000 0.000007 -0.000007 0.000014 0.000000 -0.000000 0.000000 -0.000000 0.000003 0.000137 0.844156 8.850770 4.112264 -1.801947 -0.012483 0.110918 3.686766 0.012160 0.574212 0.000009 -0.000011 0.000019 -0.000000 0.000001 -0.000000 0.000009 -0.000012 0.000020 -0.000001 -0.000004 -0.000001 0.000000 0.000001 -0.000101 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.062665 -0.539098 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469517 -0.073430 -0.490356 16.227356 -0.000002 -0.000001 25.491246 -0.000003 -0.000001 -179.999991 -0.000044 0.000002 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000001 -0.000000 0.000000 -44.883543 4.717475 -6.073463 60.975510 -51.897092 -48.523371 0.000002 -45.609456 0.000002 21.545743 10.146401 23.445990 0.000000 -0.000003 0.000000 0.000003 -0.000002 -0.000001 -0.000001 -0.000000 -0.000001 -0.000002 -0.000000 0.000000 -27.221449 13.302287 6.720061 10.862073 36.772707 37.939338 0.000052 80.096693 -0.000070 -24.405359 -6.165400 59.719028 -0.000001 -0.000000 -0.000000 -0.000000 -0.000002 -0.000001 -0.000001 -0.000002 0.000000 0.000000 -0.000001 0.000000 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000002 0.000001 0.000000 -0.000002 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.006240 0.005974 -3.161587 -1.152434 -0.005133 0.071361 0.000002 -0.000001 0.000000 0.000008 -0.000007 0.000013 -0.000000 0.000000 0.000000 0.000007 -0.000007 0.000016 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000137 0.844156 8.850768 4.112264 -1.784044 -0.012341 0.109818 3.686765 0.012164 0.574211 0.000017 -0.000014 0.000020 -0.000000 0.000000 -0.000001 0.000017 -0.000013 0.000021 -0.000001 -0.000004 -0.000000 -0.000000 0.000001 -0.000100 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.061976 -0.533164 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469517 -0.073429 -0.490356 16.227362 -0.000002 -0.000001 25.491243 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 0.000002 0.000000 0.000000 0.000002 0.000000 0.000000 0.000002 0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -44.884745 4.721887 -6.179101 61.332558 -51.642872 -48.229417 0.000001 -46.066720 0.000002 22.222131 10.415384 23.312448 0.000003 -0.000000 -0.000002 -0.000002 0.000002 -0.000002 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -26.777734 13.357948 6.619417 10.077078 35.919302 39.483251 0.000034 79.097552 -0.000055 -24.405360 -6.165400 59.719035 0.000001 -0.000002 -0.000001 -0.000001 -0.000002 -0.000001 -0.000002 -0.000002 0.000002 0.000001 0.000000 0.000001 -0.000001 0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.006240 0.005974 -3.161587 -1.139339 -0.005066 0.070553 0.000003 -0.000001 0.000002 0.000007 -0.000007 0.000013 0.000000 -0.000000 0.000000 0.000006 -0.000008 0.000016 -0.000001 -0.000001 0.000000 -0.000000 0.000003 0.000137 0.844156 8.850770 4.112264 -1.763773 -0.012183 0.108571 3.686767 0.012163 0.574209 0.000011 -0.000013 0.000021 0.000000 -0.000000 -0.000000 0.000011 -0.000014 0.000022 -0.000002 -0.000003 -0.000000 0.000000 0.000001 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.061208 -0.526565 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469517 -0.073430 -0.490356 16.227356 -0.000002 -0.000001 25.491239 -0.000003 -0.000001 -179.999991 -0.000044 0.000002 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000002 -0.000000 0.000000 -44.885374 4.724432 -6.288288 61.708266 -51.395060 -47.899990 0.000006 -46.524773 0.000002 22.852300 10.657236 23.161334 -0.000002 0.000001 0.000001 0.000002 0.000002 0.000000 -0.000000 0.000001 0.000000 -0.000001 -0.000001 0.000000 -26.296590 13.414728 6.509217 9.265823 34.973362 41.125672 0.000043 78.013977 -0.000041 -24.405359 -6.165397 59.719028 -0.000001 0.000001 0.000001 -0.000001 -0.000001 -0.000002 -0.000001 0.000002 0.000003 0.000000 -0.000001 -0.000000 -0.000001 0.000000 -0.000000 -0.000002 0.000000 -0.000000 -0.000002 0.000000 -0.000000 -0.000002 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.006240 0.005974 -3.161587 -1.124780 -0.004993 0.069653 0.000003 -0.000001 0.000000 0.000009 -0.000008 0.000015 0.000000 0.000000 0.000000 0.000006 -0.000009 0.000016 -0.000001 -0.000000 0.000000 -0.000000 0.000003 0.000137 0.844156 8.850769 4.112264 -1.741235 -0.012005 0.107185 3.686768 0.012161 0.574210 0.000006 -0.000011 0.000021 0.000000 -0.000000 -0.000000 0.000008 -0.000011 0.000022 -0.000001 -0.000003 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.060367 -0.519331 0.000000 0.000000 0.664367 -0.003829 -0.048461 12.469515 -0.073430 -0.490356 16.227358 -0.000002 -0.000001 25.491244 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000001 0.000000 0.000000 -44.885503 4.725267 -6.400251 62.098769 -51.153722 -47.540203 -0.000001 -46.981716 0.000001 23.438054 10.873308 22.995225 -0.000000 -0.000001 -0.000001 0.000001 -0.000002 0.000000 -0.000002 -0.000001 -0.000000 -0.000002 -0.000000 0.000000 -25.783293 13.472024 6.390638 8.445382 33.941983 42.842601 0.000036 76.857742 -0.000045 -24.405364 -6.165399 59.719035 0.000000 0.000002 0.000001 -0.000001 -0.000000 -0.000001 0.000001 0.000000 0.000002 0.000001 -0.000001 -0.000000 0.000000 0.000000 0.000000 0.000001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.006240 0.005974 -3.161587 -1.108824 -0.004913 0.068668 0.000001 -0.000002 0.000002 0.000012 -0.000008 0.000017 -0.000000 0.000000 -0.000000 0.000009 -0.000007 0.000016 -0.000001 -0.000001 0.000000 -0.000000 0.000003 0.000137 0.844156 8.850770 4.112264 -1.716535 -0.011813 0.105664 3.686769 0.012163 0.574211 0.000006 -0.000012 0.000026 -0.000000 0.000001 -0.000000 0.000006 -0.000012 0.000026 -0.000001 -0.000004 -0.000000 0.000000 0.000002 -0.000101 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.059456 -0.511489 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469514 -0.073429 -0.490356 16.227362 -0.000002 -0.000001 25.491238 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -44.885186 4.724541 -6.514228 62.500288 -50.918968 -47.155162 0.000008 -47.435606 0.000003 23.981113 11.064958 22.816554 -0.000001 0.000001 0.000002 -0.000002 0.000001 0.000001 0.000002 0.000000 0.000001 0.000003 -0.000000 0.000001 -25.243095 13.529257 6.264898 7.631256 32.833498 44.611251 0.000022 75.640677 -0.000034 -24.405359 -6.165397 59.719028 -0.000000 0.000003 -0.000001 -0.000000 0.000001 -0.000002 -0.000001 0.000002 0.000002 -0.000000 -0.000001 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.006240 0.005974 -3.161586 -1.091538 -0.004826 0.067600 0.000001 0.000001 -0.000001 0.000005 -0.000007 0.000014 -0.000000 -0.000000 0.000000 0.000004 -0.000007 0.000017 -0.000000 0.000000 -0.000000 -0.000000 0.000003 0.000136 0.844156 8.850769 4.112264 -1.689776 -0.011603 0.104020 3.686766 0.012163 0.574211 0.000007 -0.000012 0.000020 -0.000000 0.000000 0.000000 0.000004 -0.000012 0.000022 -0.000001 -0.000002 -0.000000 0.000000 0.000002 -0.000100 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.058478 -0.503072 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469518 -0.073429 -0.490356 16.227362 -0.000002 -0.000001 25.491241 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000002 0.000000 -0.000000 -0.000001 -0.000000 0.000000 -44.884445 4.722416 -6.629447 62.909191 -50.690966 -46.749745 0.000001 -47.884489 0.000003 24.483117 11.233563 22.627729 -0.000003 -0.000001 0.000001 -0.000001 0.000001 -0.000001 -0.000001 0.000000 0.000001 0.000001 -0.000000 0.000001 -24.681249 13.585879 6.133226 6.837085 31.657548 46.410394 0.000027 74.374804 -0.000034 -24.405366 -6.165396 59.719035 0.000000 0.000003 -0.000000 0.000001 -0.000002 -0.000002 -0.000001 0.000003 0.000001 0.000001 -0.000002 -0.000000 -0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.006240 0.005974 -3.161586 -1.072988 -0.004733 0.066454 0.000002 -0.000000 0.000000 0.000009 -0.000009 0.000014 0.000000 0.000000 0.000000 0.000007 -0.000008 0.000015 -0.000001 -0.000000 0.000000 -0.000000 0.000003 0.000136 0.844156 8.850769 4.112264 -1.661058 -0.011381 0.102254 3.686765 0.012161 0.574210 0.000009 -0.000013 0.000023 -0.000000 0.000001 -0.000000 0.000009 -0.000013 0.000023 -0.000001 -0.000003 0.000000 0.000000 0.000002 -0.000099 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.057435 -0.494106 0.000000 0.000000 0.664367 -0.003829 -0.048461 12.469516 -0.073429 -0.490356 16.227356 -0.000002 -0.000001 25.491246 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 0.000002 0.000000 0.000000 0.000002 0.000000 0.000000 0.000002 0.000000 0.000000 -0.000001 -0.000000 0.000000 -44.883369 4.719041 -6.745137 63.321926 -50.469958 -46.328797 -0.000002 -48.326416 0.000001 24.945630 11.380556 22.431048 0.000001 -0.000002 0.000001 -0.000001 0.000000 -0.000001 -0.000002 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 -24.103089 13.641379 5.996875 6.074487 30.425061 48.220425 0.000037 73.072205 -0.000028 -24.405364 -6.165397 59.719028 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000002 -0.000001 0.000000 -0.000000 -0.000001 -0.000000 -0.000001 0.000000 0.000000 -0.000001 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.006240 0.005974 -3.161587 -1.053240 -0.004635 0.065235 0.000001 -0.000001 0.000000 0.000004 -0.000008 0.000011 -0.000000 0.000000 0.000000 0.000004 -0.000008 0.000013 -0.000000 -0.000001 0.000000 -0.000000 0.000003 0.000137 0.844156 8.850770 4.112264 -1.630487 -0.011145 0.100372 3.686766 0.012164 0.574211 0.000007 -0.000014 0.000028 -0.000000 0.000000 -0.000001 0.000007 -0.000014 0.000028 -0.000000 -0.000002 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.056333 -0.484623 0.000000 0.000000 0.664367 -0.003829 -0.048461 12.469516 -0.073429 -0.490356 16.227362 -0.000002 -0.000001 25.491241 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 0.000002 0.000000 0.000000 0.000002 0.000000 0.000000 0.000002 0.000000 0.000000 -0.000001 -0.000000 0.000000 -44.882006 4.714576 -6.860531 63.735111 -50.256231 -45.896986 0.000002 -48.759440 0.000001 25.370179 11.507360 22.228728 0.000000 -0.000002 -0.000001 -0.000001 0.000003 -0.000002 -0.000000 -0.000001 -0.000000 -0.000004 0.000000 -0.000000 -23.513913 13.695295 5.857123 5.352931 29.148088 50.023363 0.000030 71.745072 -0.000040 -24.405366 -6.165397 59.719035 -0.000000 0.000001 -0.000000 0.000000 -0.000003 -0.000001 0.000001 0.000001 -0.000003 0.000001 -0.000002 -0.000000 0.000000 0.000000 -0.000000 0.000001 -0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.006240 0.005974 -3.161587 -1.032360 -0.004531 0.063945 0.000000 0.000000 -0.000002 0.000011 -0.000007 0.000013 -0.000000 0.000000 -0.000000 0.000008 -0.000006 0.000014 -0.000001 -0.000000 -0.000000 -0.000000 0.000003 0.000137 0.844156 8.850771 4.112264 -1.598166 -0.010896 0.098384 3.686770 0.012163 0.574213 0.000010 -0.000011 0.000026 -0.000000 0.000001 0.000000 0.000008 -0.000011 0.000023 -0.000002 -0.000002 -0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.055174 -0.474653 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469518 -0.073429 -0.490356 16.227362 -0.000002 -0.000001 25.491243 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 0.000002 0.000000 0.000000 0.000002 0.000000 0.000000 0.000002 0.000000 0.000000 -0.000001 0.000000 0.000000 -44.880357 4.709169 -6.974865 64.145489 -50.050158 -45.458922 -0.000001 -49.181586 0.000001 25.758199 11.615387 22.022944 -0.000000 0.000002 0.000003 -0.000002 0.000001 0.000001 -0.000001 -0.000000 -0.000000 -0.000002 -0.000000 0.000000 -22.919055 13.747215 5.715279 4.679743 27.839703 51.802904 0.000022 70.405651 -0.000029 -24.405362 -6.165396 59.719035 -0.000000 -0.000003 0.000000 -0.000001 0.000000 0.000000 0.000002 -0.000000 -0.000002 0.000001 -0.000001 0.000000 -0.000001 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 -0.006240 0.005974 -3.161586 -1.010417 -0.004423 0.062589 -0.000000 -0.000000 0.000000 0.000010 -0.000007 0.000012 0.000000 0.000000 -0.000000 0.000007 -0.000008 0.000013 -0.000001 -0.000000 0.000000 -0.000000 0.000003 0.000136 0.844156 8.850769 4.112264 -1.564196 -0.010637 0.096295 3.686765 0.012162 0.574208 0.000009 -0.000014 0.000022 -0.000000 0.000001 -0.000000 0.000009 -0.000013 0.000022 -0.000001 -0.000004 -0.000001 0.000000 0.000002 -0.000100 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.053962 -0.464223 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469519 -0.073430 -0.490356 16.227358 -0.000002 -0.000001 25.491246 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000001 0.000000 0.000000 -44.878502 4.702978 -7.087362 64.549884 -49.852147 -45.019047 0.000001 -49.590913 0.000002 26.111154 11.706112 21.815850 0.000000 -0.000001 -0.000001 0.000001 0.000001 -0.000002 -0.000001 0.000001 0.000000 0.000000 -0.000000 -0.000000 -22.323859 13.796764 5.572657 4.060172 26.513761 53.544278 0.000018 69.066210 -0.000034 -24.405360 -6.165397 59.719035 0.000000 0.000000 -0.000000 -0.000002 0.000000 0.000001 -0.000001 0.000000 -0.000002 0.000001 -0.000002 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000002 0.000000 -0.000000 -0.000002 0.000000 -0.000000 0.000001 -0.000001 0.000000 0.000001 -0.000001 0.000000 -0.006240 0.005974 -3.161586 -0.987476 -0.004310 0.061172 0.000002 -0.000000 0.000000 0.000010 -0.000007 0.000012 0.000000 0.000000 0.000000 0.000007 -0.000006 0.000012 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 0.844156 8.850768 4.112264 -1.528682 -0.010366 0.094109 3.686766 0.012162 0.574211 0.000008 -0.000014 0.000024 0.000000 0.000001 -0.000000 0.000007 -0.000014 0.000023 -0.000000 -0.000003 0.000000 0.000000 0.000000 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.052700 -0.453365 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469516 -0.073429 -0.490356 16.227360 -0.000002 -0.000001 25.491246 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000002 -0.000000 0.000000 -44.876488 4.696159 -7.197261 64.945175 -49.662743 -44.581761 0.000007 -49.985428 0.000002 26.430402 11.780963 21.609515 0.000002 -0.000002 0.000002 0.000000 0.000001 0.000000 0.000003 -0.000002 0.000000 -0.000001 -0.000000 -0.000000 -21.733676 13.843638 5.430597 3.497519 25.184707 55.234083 0.000006 67.739098 -0.000035 -24.405359 -6.165394 59.719028 -0.000001 -0.000004 -0.000000 -0.000003 0.000002 -0.000000 0.000001 0.000001 -0.000003 0.000000 -0.000001 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.006240 0.005974 -3.161587 -0.963603 -0.004194 0.059698 -0.000000 -0.000001 0.000000 0.000007 -0.000007 0.000014 -0.000000 0.000000 0.000000 0.000008 -0.000007 0.000015 -0.000001 -0.000001 0.000000 -0.000000 0.000003 0.000137 0.844156 8.850770 4.112264 -1.491725 -0.010086 0.091833 3.686767 0.012164 0.574211 0.000012 -0.000012 0.000024 -0.000000 0.000002 -0.000000 0.000012 -0.000013 0.000025 -0.000001 -0.000002 -0.000001 0.000000 0.000002 -0.000101 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.051391 -0.442107 0.000000 0.000000 0.664367 -0.003829 -0.048461 12.469516 -0.073430 -0.490356 16.227362 -0.000002 -0.000001 25.491244 -0.000003 -0.000001 -179.999991 -0.000044 0.000002 0.000002 0.000000 0.000000 0.000002 0.000000 0.000000 0.000002 0.000000 0.000000 -0.000004 0.000000 0.000000 -44.874367 4.688869 -7.303794 65.328437 -49.482508 -44.151384 0.000001 -50.363158 0.000003 26.717347 11.841397 21.406004 -0.000001 -0.000003 0.000000 0.000002 0.000001 0.000001 0.000001 0.000000 0.000000 0.000002 0.000000 0.000000 -21.153859 13.887568 5.290457 2.993304 23.867321 56.860164 0.000021 66.436485 -0.000037 -24.405362 -6.165397 59.719028 0.000001 -0.000000 0.000001 -0.000000 -0.000002 0.000000 -0.000000 -0.000002 -0.000003 0.000001 -0.000000 0.000000 0.000000 0.000001 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.006240 0.005974 -3.161587 -0.938865 -0.004073 0.058171 0.000001 -0.000000 0.000000 0.000008 -0.000008 0.000016 -0.000000 0.000000 -0.000000 0.000007 -0.000009 0.000015 -0.000001 -0.000000 -0.000000 -0.000000 0.000003 0.000138 0.844156 8.850770 4.112264 -1.453430 -0.009794 0.089477 3.686765 0.012162 0.574213 0.000008 -0.000012 0.000024 -0.000000 0.000000 0.000000 0.000007 -0.000013 0.000020 -0.000001 -0.000001 0.000000 0.000000 0.000002 -0.000101 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.050039 -0.430480 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469518 -0.073429 -0.490356 16.227356 -0.000002 -0.000001 25.491243 -0.000003 -0.000001 -179.999991 -0.000044 0.000002 0.000002 0.000000 0.000000 0.000002 0.000000 0.000000 0.000002 0.000000 0.000000 -0.000004 0.000000 0.000000 -44.872164 4.681264 -7.406203 65.696741 -49.312074 -43.732144 0.000005 -50.722132 0.000003 26.973339 11.888855 21.207350 -0.000001 -0.000000 0.000002 0.000003 0.000003 0.000001 -0.000000 -0.000000 0.000001 -0.000004 0.000000 -0.000001 -20.589774 13.928359 5.153606 2.547479 22.576538 58.411347 0.000029 65.170598 -0.000019 -24.405355 -6.165399 59.719028 -0.000001 0.000002 -0.000000 -0.000005 0.000000 0.000000 0.000004 0.000001 0.000003 0.000002 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000001 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 -0.006240 0.005974 -3.161587 -0.913329 -0.003950 0.056592 -0.000000 -0.000001 0.000000 0.000006 -0.000009 0.000014 0.000000 -0.000000 -0.000000 0.000002 -0.000009 0.000015 -0.000001 -0.000000 -0.000000 -0.000000 0.000003 0.000137 0.844156 8.850769 4.112264 -1.413899 -0.009499 0.087043 3.686762 0.012163 0.574211 0.000010 -0.000014 0.000025 -0.000000 0.000001 -0.000000 0.000010 -0.000015 0.000023 -0.000000 -0.000001 -0.000001 0.000000 0.000003 -0.000101 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.048648 -0.418512 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469518 -0.073429 -0.490356 16.227362 -0.000002 -0.000001 25.491246 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000002 0.000000 0.000000 -44.869944 4.673496 -7.503710 66.047219 -49.152138 -43.328138 0.000003 -51.060346 0.000003 27.199751 11.924790 21.015580 -0.000001 -0.000000 0.000003 0.000000 -0.000004 -0.000001 0.000000 0.000001 0.000001 0.000001 -0.000000 -0.000000 -20.046779 13.965834 5.021415 2.158664 21.327233 59.877318 0.000013 63.953554 -0.000029 -24.405355 -6.165400 59.719028 -0.000001 -0.000003 -0.000000 0.000002 -0.000001 -0.000003 0.000004 0.000003 -0.000003 -0.000001 -0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.006240 0.005974 -3.161587 -0.887061 -0.003823 0.054970 0.000003 -0.000001 -0.000002 0.000006 -0.000005 0.000016 0.000000 0.000000 0.000000 0.000005 -0.000005 0.000015 -0.000001 -0.000001 0.000001 -0.000000 0.000003 0.000137 0.844156 8.850769 4.112264 -1.373234 -0.009194 0.084541 3.686765 0.012162 0.574212 0.000012 -0.000013 0.000023 0.000000 0.000000 -0.000000 0.000011 -0.000013 0.000024 -0.000002 -0.000004 -0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.047221 -0.406234 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469519 -0.073430 -0.490356 16.227358 -0.000002 -0.000001 25.491246 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 0.000001 0.000000 0.000000 -44.867714 4.665724 -7.595552 66.377185 -49.003452 -42.943503 0.000001 -51.375839 0.000001 27.397926 11.950651 20.832688 -0.000002 -0.000002 0.000000 0.000002 0.000002 -0.000002 -0.000001 0.000001 -0.000000 0.000001 -0.000000 -0.000000 -19.530221 13.999883 4.895269 1.824383 20.134074 61.248335 0.000016 62.797312 -0.000020 -24.405364 -6.165396 59.719028 0.000002 -0.000000 -0.000000 -0.000001 0.000000 -0.000001 0.000004 0.000000 0.000001 0.000000 -0.000001 -0.000000 -0.000001 0.000001 0.000000 -0.000002 0.000000 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.006240 0.005974 -3.161587 -0.860128 -0.003695 0.053306 -0.000001 -0.000001 0.000000 0.000009 -0.000007 0.000013 0.000000 0.000000 0.000000 0.000007 -0.000007 0.000014 -0.000000 -0.000000 0.000000 -0.000000 0.000003 0.000137 0.844156 8.850769 4.112264 -1.331539 -0.008888 0.081974 3.686765 0.012163 0.574211 0.000006 -0.000011 0.000020 -0.000000 -0.000000 0.000000 0.000008 -0.000012 0.000021 -0.000001 -0.000004 -0.000001 0.000000 0.000002 -0.000101 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.045761 -0.393674 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469514 -0.073429 -0.490356 16.227362 -0.000002 -0.000001 25.491243 -0.000003 -0.000001 -180.000005 -0.000044 0.000003 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 0.000001 -0.000000 0.000000 -44.865566 4.658106 -7.680971 66.683854 -48.866817 -42.582251 0.000006 -51.666570 0.000001 27.569246 11.967869 20.660682 -0.000002 0.000000 0.000001 0.000000 0.000000 0.000000 0.000003 0.000000 -0.000000 0.000001 -0.000000 -0.000001 -19.045457 14.030441 4.776558 1.541308 19.011401 62.515116 0.000023 61.713730 -0.000020 -24.405364 -6.165397 59.719028 0.000003 0.000001 0.000001 0.000001 0.000000 -0.000001 0.000002 -0.000001 0.000002 -0.000001 -0.000001 0.000000 -0.000001 0.000000 -0.000000 -0.000002 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 0.000000 -0.006240 0.005974 -3.161587 -0.832596 -0.003564 0.051604 0.000001 -0.000001 0.000002 0.000010 -0.000009 0.000015 0.000000 0.000000 0.000000 0.000010 -0.000008 0.000016 -0.000001 -0.000001 -0.000000 -0.000000 0.000003 0.000136 0.844156 8.850769 4.112264 -1.288916 -0.008573 0.079350 3.686767 0.012161 0.574210 0.000011 -0.000014 0.000025 0.000000 0.000000 -0.000000 0.000012 -0.000014 0.000023 -0.000001 -0.000004 -0.000001 0.000000 0.000002 -0.000101 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.044272 -0.380864 0.000000 0.000000 0.664367 -0.003829 -0.048461 12.469514 -0.073429 -0.490356 16.227362 -0.000002 -0.000001 25.491241 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 0.000002 0.000000 -0.000000 0.000002 0.000000 -0.000000 0.000002 0.000000 -0.000000 0.000001 -0.000000 0.000000 -44.863524 4.650799 -7.759202 66.964602 -48.743051 -42.248405 0.000002 -51.930615 0.000002 27.715087 11.977870 20.501520 0.000000 0.000001 0.000001 0.000001 0.000001 -0.000001 0.000001 -0.000001 0.000000 -0.000002 0.000001 -0.000000 -18.597811 14.057452 4.666667 1.305520 17.973112 63.668551 0.000018 60.714590 -0.000014 -24.405360 -6.165399 59.719035 -0.000001 0.000001 -0.000000 0.000004 -0.000000 -0.000003 -0.000000 0.000000 0.000003 -0.000000 0.000001 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000000 -0.000000 0.000002 0.000000 0.000000 0.000002 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.006240 0.005974 -3.161587 -0.804531 -0.003432 0.049871 0.000001 -0.000002 0.000002 0.000009 -0.000007 0.000014 -0.000000 0.000000 0.000000 0.000006 -0.000007 0.000015 -0.000001 -0.000001 0.000000 -0.000000 0.000003 0.000137 0.844156 8.850769 4.112264 -1.245471 -0.008255 0.076675 3.686765 0.012162 0.574212 0.000011 -0.000016 0.000028 0.000001 -0.000001 -0.000000 0.000011 -0.000015 0.000026 -0.000001 -0.000003 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.042757 -0.367831 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469515 -0.073430 -0.490356 16.227360 -0.000002 -0.000001 25.491248 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000001 0.000000 0.000000 -44.861605 4.643955 -7.829473 67.216752 -48.633034 -41.945940 0.000005 -52.165911 0.000002 27.836837 11.982069 20.357217 0.000001 0.000003 -0.000004 0.000003 0.000000 -0.000002 0.000002 0.000001 0.000000 -0.000003 0.000000 -0.000001 -18.192624 14.080905 4.566984 1.112739 17.032668 64.699691 0.000024 59.811488 -0.000021 -24.405359 -6.165397 59.719035 -0.000003 0.000001 -0.000000 0.000001 0.000001 0.000000 -0.000001 -0.000000 0.000000 0.000000 -0.000001 -0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -0.006240 0.005974 -3.161587 -0.776001 -0.003298 0.048108 0.000003 -0.000001 0.000002 0.000009 -0.000007 0.000013 0.000000 0.000000 -0.000000 0.000006 -0.000007 0.000013 -0.000000 -0.000000 0.000001 -0.000000 0.000003 0.000137 0.844156 8.850769 4.112264 -1.201305 -0.007932 0.073956 3.686765 0.012163 0.574209 0.000013 -0.000014 0.000023 -0.000000 0.000000 -0.000001 0.000012 -0.000013 0.000024 -0.000001 -0.000003 -0.000000 0.000000 0.000001 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.041220 -0.354607 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469517 -0.073430 -0.490356 16.227355 -0.000002 -0.000001 25.491246 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 0.000002 -0.000000 0.000000 0.000002 -0.000000 0.000000 0.000002 -0.000000 -0.000000 0.000001 -0.000000 0.000000 -44.859866 4.637736 -7.891035 67.437641 -48.537595 -41.678822 0.000004 -52.370503 0.000003 27.935878 11.981879 20.229724 -0.000001 -0.000000 -0.000002 0.000002 0.000001 -0.000002 -0.000001 -0.000000 0.000001 -0.000003 -0.000000 -0.000000 -17.835217 14.100805 4.478891 0.958591 16.203135 65.599500 0.000020 59.015956 -0.000015 -24.405359 -6.165393 59.719035 -0.000001 -0.000003 -0.000002 0.000001 0.000001 -0.000003 -0.000003 -0.000002 0.000001 -0.000000 -0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000002 -0.000000 -0.000000 -0.000003 0.000000 0.000000 -0.000003 0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 -0.006240 0.005974 -3.161587 -0.747072 -0.003163 0.046321 0.000001 -0.000002 0.000002 0.000008 -0.000007 0.000012 0.000000 0.000000 -0.000000 0.000006 -0.000007 0.000013 -0.000000 -0.000001 -0.000000 -0.000000 0.000003 0.000137 0.844156 8.850770 4.112264 -1.156520 -0.007610 0.071198 3.686762 0.012165 0.574206 0.000012 -0.000016 0.000027 -0.000000 -0.000000 -0.000001 0.000012 -0.000015 0.000028 -0.000001 -0.000003 -0.000001 0.000000 0.000001 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.039664 -0.341219 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469515 -0.073430 -0.490356 16.227362 -0.000002 -0.000001 25.491246 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 0.000002 0.000000 0.000000 0.000002 0.000000 0.000000 0.000002 0.000000 0.000000 0.000001 -0.000000 -0.000000 -44.858374 4.632297 -7.943110 67.624610 -48.457665 -41.451069 0.000008 -52.542371 0.000001 28.013650 11.978679 20.121022 -0.000001 -0.000001 -0.000001 -0.000001 0.000000 -0.000001 0.000001 -0.000001 -0.000000 -0.000004 -0.000000 -0.000000 -17.530905 14.117149 4.403763 0.838845 15.497127 66.358689 0.000014 58.339453 -0.000015 -24.405357 -6.165398 59.719035 -0.000002 -0.000001 -0.000000 0.000003 0.000001 0.000000 -0.000002 -0.000000 0.000001 -0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.006240 0.005974 -3.161587 -0.717809 -0.003028 0.044513 0.000004 -0.000001 0.000000 0.000013 -0.000007 0.000012 0.000000 0.000000 -0.000000 0.000011 -0.000008 0.000011 0.000000 -0.000000 0.000000 -0.000000 0.000003 0.000138 0.844156 8.850769 4.112264 -1.111219 -0.007286 0.068408 3.686769 0.012164 0.574209 0.000007 -0.000015 0.000024 -0.000000 -0.000001 -0.000000 0.000006 -0.000015 0.000022 -0.000001 -0.000003 0.000001 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.038092 -0.327698 0.000000 0.000000 0.664367 -0.003829 -0.048461 12.469516 -0.073430 -0.490356 16.227356 -0.000002 -0.000001 25.491246 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 -0.000000 0.000000 -44.857121 4.627793 -7.984944 67.774956 -48.394083 -41.266695 -0.000001 -52.679531 0.000002 28.071593 11.973865 20.033073 -0.000001 0.000000 -0.000002 0.000000 0.000001 0.000002 0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 -17.284980 14.129947 4.342974 0.749667 14.926979 66.967669 0.000014 57.793352 -0.000014 -24.405359 -6.165397 59.719035 0.000004 0.000001 0.000000 0.000000 0.000002 -0.000001 -0.000001 -0.000000 0.000003 -0.000000 0.000001 -0.000000 -0.000001 0.000001 -0.000000 0.000000 0.000000 -0.000000 -0.000001 0.000001 -0.000000 -0.000001 0.000001 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.006240 0.005974 -3.161587 -0.688282 -0.002892 0.042688 0.000002 0.000000 -0.000001 0.000009 -0.000008 0.000016 0.000000 0.000000 0.000000 0.000006 -0.000008 0.000018 -0.000000 -0.000000 0.000000 -0.000000 0.000003 0.000137 0.844156 8.850769 4.112264 -1.065508 -0.006957 0.065592 3.686769 0.012163 0.574207 0.000011 -0.000013 0.000025 -0.000000 0.000000 -0.000001 0.000011 -0.000014 0.000023 -0.000002 -0.000004 -0.000001 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.036508 -0.314074 0.000000 0.000000 0.664367 -0.003829 -0.048461 12.469515 -0.073429 -0.490356 16.227358 -0.000002 -0.000001 25.491246 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 0.000001 0.000000 0.000000 -44.856178 4.624381 -8.015772 67.885940 -48.347702 -41.129777 0.000002 -52.779976 0.000005 28.111144 11.968774 19.967848 -0.000001 0.000000 -0.000001 0.000003 0.000001 -0.000001 -0.000002 0.000000 0.000001 -0.000000 0.000000 -0.000000 -17.102760 14.139179 4.297883 0.687903 14.504810 67.416371 0.000022 57.389053 -0.000018 -24.405359 -6.165397 59.719035 0.000003 0.000000 -0.000001 0.000001 0.000002 0.000001 0.000002 0.000000 0.000000 -0.000000 -0.000001 0.000000 -0.000001 0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 0.000000 -0.000000 -0.000002 0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 0.000000 -0.006240 0.005974 -3.161587 -0.658553 -0.002757 0.040851 0.000004 -0.000001 0.000002 0.000006 -0.000007 0.000011 -0.000000 0.000000 0.000000 0.000005 -0.000006 0.000012 -0.000000 -0.000000 0.000001 -0.000000 0.000003 0.000138 0.844156 8.850770 4.112264 -1.019486 -0.006632 0.062758 3.686767 0.012163 0.574209 0.000010 -0.000016 0.000025 -0.000000 0.000001 -0.000000 0.000012 -0.000016 0.000027 -0.000001 -0.000002 -0.000001 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.034916 -0.300376 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469518 -0.073430 -0.490356 16.227363 -0.000002 -0.000001 25.491243 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000002 0.000000 -0.000000 -0.000002 0.000000 -0.000000 -0.000002 0.000000 -0.000000 -0.000001 0.000000 0.000000 -44.855591 4.622221 -8.034829 67.954713 -48.319333 -41.044485 0.000001 -52.841700 0.000004 28.133802 11.964757 19.927294 -0.000000 0.000001 -0.000002 0.000000 0.000002 -0.000002 -0.000002 0.000001 0.000001 0.000001 0.000000 -0.000001 -16.989539 14.144795 4.269844 0.651355 14.242648 67.694100 0.000013 57.138009 -0.000016 -24.405359 -6.165399 59.719035 0.000004 -0.000001 0.000002 0.000002 0.000001 0.000002 -0.000000 -0.000001 0.000003 -0.000000 -0.000001 -0.000000 0.000002 0.000000 -0.000000 0.000002 0.000000 -0.000000 0.000002 0.000000 -0.000000 0.000002 0.000000 -0.000000 0.000001 -0.000001 0.000000 0.000001 -0.000001 0.000000 -0.006240 0.005974 -3.161587 -0.628693 -0.002621 0.039006 0.000006 -0.000000 0.000000 0.000005 -0.000006 0.000011 -0.000000 0.000000 -0.000000 0.000006 -0.000005 0.000013 -0.000000 -0.000000 0.000000 -0.000000 0.000003 0.000138 0.844156 8.850769 4.112264 -0.973260 -0.006307 0.059909 3.686766 0.012162 0.574211 0.000008 -0.000013 0.000024 -0.000000 -0.000000 -0.000000 0.000008 -0.000013 0.000026 -0.000001 -0.000003 -0.000000 0.000000 0.000002 -0.000101 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.033319 -0.286634 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469515 -0.073429 -0.490356 16.227363 -0.000002 -0.000001 25.491239 -0.000003 -0.000001 -180.000005 -0.000044 0.000003 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 0.000000 -44.855372 4.621464 -8.041348 67.978311 -48.309720 -41.015088 -0.000002 -52.862714 0.000003 28.141013 11.963127 19.913352 0.000000 -0.000002 0.000002 0.000004 0.000001 -0.000001 -0.000001 0.000001 0.000001 -0.000001 -0.000000 -0.000001 -16.950617 14.146691 4.260199 0.639118 14.152564 67.789382 0.000007 57.051730 -0.000016 -24.405359 -6.165396 59.719028 0.000003 -0.000000 -0.000001 0.000002 0.000003 0.000001 -0.000001 -0.000000 0.000002 0.000000 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.006240 0.005974 -3.161587 -0.598765 -0.002487 0.037156 0.000004 0.000000 0.000000 0.000006 -0.000006 0.000011 0.000000 0.000000 0.000000 0.000007 -0.000006 0.000011 -0.000000 -0.000000 0.000000 -0.000000 0.000003 0.000138 0.844156 8.850770 4.112264 -0.926929 -0.005983 0.057055 3.686768 0.012160 0.574210 0.000008 -0.000013 0.000025 -0.000000 0.000001 -0.000001 0.000006 -0.000013 0.000024 -0.000001 -0.000004 -0.000001 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.031719 -0.272877 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469517 -0.073429 -0.490356 16.227362 -0.000003 -0.000001 25.491246 -0.000003 -0.000001 -180.000005 -0.000044 0.000003 -0.000003 0.000000 0.000000 -0.000003 0.000000 0.000000 -0.000003 0.000000 -0.000000 -0.000001 -0.000000 0.000000 -44.855382 4.621465 -8.033061 67.953771 -48.328930 -41.037931 0.000006 -52.829283 0.000001 28.098572 11.949704 19.927219 -0.000001 -0.000002 0.000000 0.000002 0.000001 0.000002 0.000004 -0.000001 -0.000001 -0.000002 -0.000001 -0.000000 -16.989486 14.143883 4.269699 0.653451 14.246123 67.693431 0.000011 57.138016 -0.000008 -24.452057 -6.244162 59.256850 0.000001 0.000000 -0.000000 0.000002 0.000002 -0.000001 0.000001 -0.000000 0.000004 -0.000000 -0.000001 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.006240 0.005974 -3.161587 -0.568838 -0.002353 0.035306 0.000004 -0.000001 0.000002 0.000009 -0.000007 0.000013 -0.000000 -0.000000 -0.000000 0.000007 -0.000006 0.000014 -0.000001 -0.000000 -0.000000 -0.000000 0.000003 0.000137 0.844156 8.850770 4.112264 -0.880599 -0.005662 0.054200 3.686764 0.012163 0.574207 0.000012 -0.000015 0.000028 0.000000 -0.000000 0.000000 0.000012 -0.000014 0.000027 -0.000002 -0.000002 -0.000000 0.000000 0.000003 -0.000101 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.030122 -0.259134 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469516 -0.073429 -0.490356 16.227362 -0.000002 -0.000001 25.491239 -0.000003 -0.000001 -179.999991 -0.000044 0.000002 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -44.855372 4.621464 -8.008944 67.882300 -48.384777 -41.104488 -0.000001 -52.732028 0.000003 27.975147 11.910584 19.967466 -0.000000 -0.000000 0.000001 0.000002 0.000001 0.000000 -0.000002 0.000000 0.000001 0.000003 -0.000000 0.000001 -17.102560 14.135670 4.297321 0.695948 14.518073 67.413817 0.000011 57.389053 -0.000014 -24.587882 -6.465326 57.946259 0.000003 -0.000003 0.000001 -0.000001 0.000001 -0.000001 -0.000001 -0.000001 0.000003 -0.000001 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 -0.006240 0.005974 -3.161587 -0.538977 -0.002221 0.033461 0.000005 0.000001 -0.000001 0.000005 -0.000005 0.000010 0.000000 -0.000000 0.000000 0.000004 -0.000005 0.000012 0.000000 -0.000001 0.000001 -0.000000 0.000003 0.000137 0.844156 8.850769 4.112264 -0.834372 -0.005346 0.051352 3.686767 0.012162 0.574213 0.000011 -0.000013 0.000026 -0.000001 -0.000001 -0.000000 0.000008 -0.000013 0.000022 -0.000001 -0.000003 -0.000000 0.000000 0.000002 -0.000099 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000
|
||||
0.000000 1.067000 0.028530 -0.245436 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469517 -0.073430 -0.490356 16.227358 -0.000002 -0.000001 25.491244 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000001 0.000000 0.000000 -44.855382 4.621464 -7.970139 67.766897 -48.474563 -41.211982 0.000001 -52.575490 0.000002 27.776556 11.847440 20.032069 0.000001 -0.000000 0.000000 0.000002 0.000000 -0.000003 0.000001 0.000001 0.000001 -0.000004 0.000000 0.000000 -17.284533 14.122337 4.341743 0.767089 14.955394 66.962095 0.000016 57.793359 -0.000016 -24.810201 -6.804362 55.897390 0.000002 -0.000000 0.000001 0.000005 0.000002 0.000003 -0.000000 0.000000 0.000002 -0.000001 -0.000001 -0.000000 0.000001 0.000000 0.000000 0.000002 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.006240 0.005974 -3.161587 -0.509249 -0.002090 0.031624 0.000003 -0.000000 -0.000001 0.000006 -0.000008 0.000011 0.000000 -0.000000 0.000000 0.000004 -0.000008 0.000012 0.000000 -0.000000 0.000000 -0.000000 0.000003 0.000138 0.844156 8.850770 4.112264 -0.788351 -0.005031 0.048516 3.686767 0.012162 0.574211 0.000007 -0.000013 0.000026 -0.000000 0.000002 -0.000000 0.000005 -0.000015 0.000026 -0.000001 -0.000005 -0.000000 0.000000 0.000001 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.026946 -0.231812 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469519 -0.073429 -0.490356 16.227355 -0.000002 -0.000001 25.491241 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 0.000002 0.000000 -0.000000 0.000002 0.000000 -0.000000 0.000002 0.000000 -0.000000 0.000001 0.000000 0.000000 -44.855369 4.621464 -7.917768 67.610403 -48.595485 -41.357796 -0.000003 -52.364216 0.000001 27.508679 11.761866 20.118903 -0.000001 0.000005 -0.000001 0.000004 0.000004 -0.000001 -0.000004 0.000001 0.000001 -0.000004 0.000000 -0.000001 -17.530121 14.104125 4.401628 0.868696 15.545079 66.348929 0.000013 58.339460 -0.000018 -25.118726 -7.234591 53.219065 0.000002 0.000001 -0.000001 0.000005 -0.000000 -0.000002 -0.000000 -0.000001 0.000001 -0.000000 -0.000001 -0.000001 -0.000001 0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.006240 0.005974 -3.161587 -0.479721 -0.001961 0.029798 0.000005 -0.000001 0.000002 0.000009 -0.000007 0.000013 0.000000 -0.000000 0.000000 0.000007 -0.000008 0.000014 -0.000001 -0.000001 0.000000 -0.000000 0.000003 0.000137 0.844156 8.850769 4.112264 -0.742639 -0.004721 0.045698 3.686765 0.012162 0.574213 0.000009 -0.000014 0.000025 0.000000 0.000000 -0.000001 0.000009 -0.000013 0.000025 -0.000001 -0.000003 -0.000001 0.000000 0.000002 -0.000101 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.025374 -0.218291 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469518 -0.073428 -0.490356 16.227356 -0.000002 -0.000001 25.491246 -0.000003 -0.000001 -179.999991 -0.000044 0.000002 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000001 -0.000000 -0.000000 -44.855375 4.621464 -7.852962 67.415593 -48.744786 -41.539438 0.000006 -52.102729 0.000001 27.177430 11.655390 20.225773 0.000001 -0.000000 0.000000 -0.000001 0.000001 0.000001 0.000002 -0.000001 0.000001 0.000000 0.000000 -0.000000 -17.834035 14.081249 4.475629 1.003568 16.274029 65.584433 0.000011 59.015963 -0.000017 -25.512534 -7.727597 50.022827 -0.000001 0.000000 0.000001 0.000003 0.000000 0.000000 0.000001 -0.000002 0.000002 -0.000000 -0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.006240 0.005974 -3.161587 -0.450460 -0.001834 0.027990 0.000000 0.000001 -0.000001 0.000011 -0.000008 0.000013 -0.000000 0.000000 -0.000000 0.000009 -0.000009 0.000014 0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000138 0.844156 8.850770 4.112264 -0.697339 -0.004415 0.042905 3.686766 0.012164 0.574210 0.000016 -0.000012 0.000026 -0.000000 -0.000001 -0.000000 0.000015 -0.000013 0.000027 -0.000001 -0.000001 0.000000 0.000000 0.000002 -0.000101 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.023818 -0.204904 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469514 -0.073429 -0.490356 16.227362 -0.000002 -0.000001 25.491244 -0.000003 -0.000001 -179.999991 -0.000044 0.000002 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000001 -0.000000 0.000000 -44.855379 4.621464 -7.776851 67.185101 -48.919608 -41.754446 0.000004 -51.795568 -0.000001 26.788697 11.529535 20.350473 -0.000001 -0.000001 0.000002 0.000002 0.000004 -0.000002 0.000001 -0.000002 -0.000001 -0.000000 -0.000000 0.000000 -18.190966 14.053887 4.562385 1.175196 17.128905 64.678148 0.000005 59.811488 -0.000018 -25.987541 -8.254167 46.425848 -0.000001 0.000002 0.000003 0.000004 0.000001 0.000001 -0.000001 -0.000002 0.000002 -0.000000 -0.000001 -0.000001 0.000002 0.000000 -0.000000 0.000003 0.000000 -0.000000 0.000002 0.000000 -0.000000 0.000002 0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.006240 0.005974 -3.161587 -0.421529 -0.001710 0.026201 -0.000001 -0.000002 0.000002 0.000010 -0.000008 0.000012 -0.000000 0.000000 -0.000000 0.000008 -0.000007 0.000012 -0.000001 -0.000000 0.000000 -0.000000 0.000003 0.000137 0.844156 8.850770 4.112264 -0.652553 -0.004115 0.040146 3.686768 0.012164 0.574211 0.000016 -0.000014 0.000027 -0.000000 0.000000 0.000000 0.000014 -0.000015 0.000026 -0.000001 -0.000003 -0.000000 0.000000 0.000003 -0.000101 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.022281 -0.191679 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469518 -0.073429 -0.490356 16.227358 -0.000002 -0.000001 25.491243 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000002 0.000000 -0.000000 -0.000001 0.000000 0.000000 -44.855382 4.621465 -7.690567 66.921592 -49.117137 -42.000435 0.000002 -51.447297 0.000001 26.348394 11.385807 20.490766 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000001 -0.000000 -0.000000 0.000001 0.000000 0.000000 -0.000001 -18.595593 14.022222 4.660535 1.387449 18.096062 63.639379 0.000010 60.714590 -0.000021 -26.534595 -8.785620 42.552143 -0.000000 0.000000 -0.000001 0.000004 0.000002 -0.000003 0.000002 0.000000 -0.000002 -0.000000 0.000000 -0.000000 -0.000001 0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 0.000000 -0.006240 0.005974 -3.161587 -0.392999 -0.001588 0.024438 0.000002 -0.000000 0.000000 0.000005 -0.000008 0.000013 0.000000 0.000000 0.000000 0.000005 -0.000008 0.000013 0.000000 -0.000000 0.000000 -0.000000 0.000003 0.000137 0.844156 8.850770 4.112264 -0.608386 -0.003823 0.037422 3.686769 0.012162 0.574211 0.000010 -0.000012 0.000022 0.000001 0.000001 -0.000000 0.000010 -0.000012 0.000025 -0.000001 -0.000003 -0.000000 0.000000 0.000001 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.020766 -0.178646 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469517 -0.073430 -0.490356 16.227362 -0.000002 -0.000001 25.491239 -0.000003 -0.000001 -180.000005 -0.000044 0.000003 -0.000003 0.000000 -0.000000 -0.000003 0.000000 -0.000000 -0.000003 0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -44.855379 4.621464 -7.595237 66.627689 -49.334521 -42.274991 0.000005 -51.062446 0.000003 25.862446 11.225739 20.644411 0.000001 0.000000 -0.000000 0.000002 0.000003 0.000000 0.000003 0.000001 0.000001 0.000002 -0.000000 -0.000001 -19.042629 13.986452 4.768716 1.644309 19.161447 62.477175 0.000017 61.713723 -0.000023 -27.138508 -9.295770 38.532263 -0.000002 -0.000003 0.000001 -0.000000 0.000002 -0.000003 0.000002 0.000000 -0.000002 -0.000001 -0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 -0.000000 0.000000 0.000001 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -0.006240 0.005974 -3.161587 -0.364934 -0.001469 0.022702 0.000003 0.000001 -0.000001 0.000005 -0.000006 0.000013 0.000000 -0.000000 -0.000000 0.000003 -0.000006 0.000013 0.000000 -0.000000 0.000000 -0.000000 0.000003 0.000136 0.844156 8.850770 4.112264 -0.564941 -0.003536 0.034745 3.686769 0.012163 0.574211 0.000014 -0.000015 0.000027 0.000000 0.000001 0.000000 0.000014 -0.000015 0.000029 -0.000002 -0.000002 0.000001 0.000000 0.000002 -0.000099 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.019277 -0.165836 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469515 -0.073429 -0.490356 16.227356 -0.000002 -0.000001 25.491248 -0.000003 -0.000001 -179.999991 -0.000044 0.000002 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000001 0.000000 0.000000 -44.855375 4.621465 -7.491996 66.306083 -49.568933 -42.575708 0.000002 -50.645556 0.000001 25.336766 11.050884 20.809208 0.000000 -0.000000 0.000003 0.000000 0.000001 0.000000 0.000001 0.000001 0.000000 -0.000000 -0.000000 -0.000001 -19.526722 13.946776 4.885556 1.949592 20.310573 61.200578 0.000027 62.797299 -0.000028 -27.778092 -9.762797 34.501403 -0.000000 0.000003 0.000003 -0.000002 0.000000 0.000001 0.000005 0.000001 -0.000002 -0.000000 -0.000000 -0.000000 -0.000001 0.000001 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000001 -0.000000 -0.000001 0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.006240 0.005974 -3.161587 -0.337403 -0.001353 0.021000 0.000002 -0.000001 0.000000 0.000007 -0.000005 0.000012 -0.000000 -0.000000 -0.000000 0.000005 -0.000006 0.000013 -0.000000 -0.000001 -0.000000 -0.000000 0.000003 0.000137 0.844156 8.850771 4.112264 -0.522319 -0.003257 0.032116 3.686770 0.012161 0.574212 0.000011 -0.000013 0.000024 -0.000000 -0.000002 -0.000000 0.000011 -0.000013 0.000022 -0.000002 -0.000004 -0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.017817 -0.153277 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469515 -0.073428 -0.490356 16.227360 -0.000002 -0.000001 25.491241 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000001 -0.000000 -0.000000 -44.855382 4.621464 -7.381968 65.959519 -49.817549 -42.900029 0.000001 -50.201197 0.000003 24.777283 10.862857 20.982975 -0.000000 -0.000001 0.000002 0.000002 0.000000 -0.000001 -0.000003 -0.000000 0.000001 -0.000003 -0.000000 0.000001 -20.042572 13.903433 5.009695 2.306691 21.528497 59.818742 0.000008 63.953541 -0.000027 -28.427148 -10.170822 30.596396 0.000002 0.000000 0.000006 0.000003 0.000000 -0.000003 0.000000 0.000002 -0.000003 -0.000000 -0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 0.000000 -0.006240 0.005974 -3.161587 -0.310469 -0.001240 0.019336 -0.000000 -0.000000 0.000000 0.000007 -0.000008 0.000011 -0.000000 -0.000000 -0.000000 0.000007 -0.000009 0.000013 -0.000001 -0.000000 0.000000 -0.000000 0.000003 0.000138 0.844156 8.850771 4.112264 -0.480622 -0.002987 0.029545 3.686765 0.012163 0.574211 0.000013 -0.000014 0.000028 0.000000 -0.000000 0.000000 0.000010 -0.000015 0.000026 -0.000001 -0.000002 0.000000 0.000000 0.000001 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.016390 -0.140998 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469519 -0.073430 -0.490356 16.227356 -0.000002 -0.000001 25.491241 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000001 -0.000000 0.000000 -44.855372 4.621464 -7.266289 65.590805 -50.077584 -43.245377 0.000002 -49.733944 -0.000001 24.189892 10.663326 21.163570 0.000001 0.000006 -0.000000 0.000005 0.000000 -0.000002 -0.000003 -0.000001 -0.000001 -0.000002 -0.000000 -0.000001 -20.584819 13.856688 5.139779 2.718307 22.799906 58.341188 0.000012 65.170598 -0.000023 -29.056243 -10.510706 26.952519 -0.000000 0.000003 -0.000000 -0.000000 -0.000002 0.000000 0.000003 0.000003 -0.000002 0.000001 -0.000001 0.000000 0.000000 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.006240 0.005974 -3.161587 -0.284200 -0.001131 0.017712 0.000000 -0.000002 0.000002 0.000002 -0.000005 0.000014 -0.000000 0.000000 -0.000001 0.000002 -0.000006 0.000012 -0.000000 -0.000001 0.000000 -0.000000 0.000003 0.000137 0.844156 8.850771 4.112264 -0.439958 -0.002722 0.027038 3.686767 0.012163 0.574209 0.000009 -0.000014 0.000028 -0.000000 0.000000 0.000000 0.000008 -0.000014 0.000029 -0.000001 -0.000003 -0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.014999 -0.129031 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469515 -0.073429 -0.490356 16.227362 -0.000002 -0.000001 25.491241 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000001 -0.000000 -0.000000 -44.855375 4.621465 -7.146089 65.202912 -50.346274 -43.609026 0.000003 -49.248345 0.000001 23.580492 10.454039 21.348958 -0.000001 0.000001 0.000002 -0.000001 -0.000002 0.000000 0.000003 -0.000001 0.000000 0.000001 -0.000000 -0.000001 -21.148137 13.806842 5.274453 3.186153 24.109176 56.777983 0.000017 66.436492 -0.000018 -29.634671 -10.779737 23.700714 -0.000002 0.000003 -0.000002 -0.000002 -0.000001 0.000000 0.000003 0.000001 0.000000 0.000001 -0.000000 0.000000 0.000002 0.000000 0.000000 0.000002 -0.000000 0.000000 0.000002 0.000000 0.000000 0.000002 0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.006240 0.005974 -3.161587 -0.258665 -0.001026 0.016131 -0.000000 0.000000 0.000001 0.000003 -0.000007 0.000012 -0.000000 -0.000000 -0.000000 0.000003 -0.000008 0.000015 -0.000001 -0.000000 0.000000 -0.000000 0.000003 0.000136 0.844156 8.850769 4.112264 -0.400426 -0.002470 0.024600 3.686768 0.012161 0.574212 0.000008 -0.000011 0.000022 0.000000 0.000000 -0.000000 0.000008 -0.000012 0.000023 -0.000001 -0.000003 -0.000001 0.000000 0.000003 -0.000101 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.013647 -0.117403 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469518 -0.073429 -0.490356 16.227358 -0.000002 -0.000001 25.491246 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000001 0.000000 0.000000 -44.855375 4.621465 -7.022495 64.798988 -50.620905 -43.988095 0.000003 -48.748990 0.000001 22.954895 10.236789 21.537087 0.000001 0.000001 -0.000000 0.000003 0.000002 -0.000002 -0.000001 -0.000000 0.000000 0.000000 0.000000 0.000000 -21.727170 13.754242 5.412382 3.710738 25.440532 55.139861 0.000012 67.739098 -0.000023 -30.132069 -10.980404 20.966207 -0.000001 -0.000001 0.000002 0.000001 0.000000 0.000003 -0.000001 0.000001 -0.000003 0.000000 -0.000001 -0.000001 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 -0.006240 0.005974 -3.161587 -0.233926 -0.000924 0.014603 -0.000000 -0.000001 -0.000000 0.000005 -0.000006 0.000011 0.000000 -0.000000 0.000000 0.000003 -0.000006 0.000012 -0.000001 -0.000001 0.000000 -0.000000 0.000003 0.000137 0.844156 8.850770 4.112264 -0.362130 -0.002228 0.022238 3.686769 0.012163 0.574210 0.000009 -0.000015 0.000024 0.000000 0.000001 -0.000000 0.000009 -0.000016 0.000025 -0.000001 -0.000003 0.000001 0.000000 0.000001 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.012338 -0.106146 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469517 -0.073430 -0.490356 16.227360 -0.000002 -0.000001 25.491244 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 0.000002 -0.000000 0.000000 0.000002 -0.000000 0.000000 0.000002 -0.000000 -0.000000 -0.000002 0.000000 0.000000 -44.855375 4.621464 -6.896638 64.382265 -50.898809 -44.379537 0.000005 -48.240451 0.000000 22.318963 10.013474 21.726075 -0.000001 0.000001 0.000000 0.000003 0.000002 -0.000002 0.000001 -0.000003 -0.000001 0.000001 0.000000 -0.000000 -22.316590 13.699285 5.552247 4.291062 26.778211 53.438594 0.000005 69.066217 -0.000032 -30.519666 -11.118243 18.868749 0.000001 -0.000002 -0.000001 -0.000002 -0.000002 -0.000001 -0.000000 0.000005 -0.000001 0.000001 -0.000001 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.006240 0.005974 -3.161587 -0.210054 -0.000827 0.013127 0.000003 -0.000002 0.000002 0.000004 -0.000005 0.000009 0.000000 -0.000000 -0.000000 0.000004 -0.000006 0.000010 -0.000001 -0.000001 -0.000000 -0.000000 0.000003 0.000138 0.844156 8.850772 4.112264 -0.325174 -0.001991 0.019958 3.686767 0.012162 0.574209 0.000015 -0.000014 0.000028 0.000001 0.000000 -0.000000 0.000014 -0.000014 0.000026 -0.000001 -0.000004 -0.000001 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.011076 -0.095287 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469514 -0.073429 -0.490356 16.227360 -0.000002 -0.000001 25.491238 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 0.000002 -0.000000 0.000000 0.000002 -0.000000 0.000000 0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -44.855372 4.621464 -6.769649 63.956184 -51.177361 -44.780144 0.000004 -47.727340 0.000001 21.678483 9.786064 21.914081 -0.000000 0.000000 -0.000001 0.000003 0.000001 -0.000001 0.000001 0.000001 0.000000 -0.000001 0.000000 0.000000 -22.911047 13.642415 5.692744 4.924403 28.106691 51.687050 0.000023 70.405638 -0.000040 -30.770552 -11.199154 17.524626 -0.000001 -0.000001 -0.000001 -0.000003 0.000000 -0.000002 0.000003 0.000001 -0.000004 0.000001 0.000001 0.000000 -0.000001 0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.006240 0.005974 -3.161587 -0.187113 -0.000734 0.011708 0.000002 -0.000002 0.000002 0.000009 -0.000008 0.000013 0.000000 0.000000 -0.000000 0.000008 -0.000008 0.000014 -0.000000 -0.000001 -0.000000 -0.000000 0.000003 0.000137 0.844156 8.850771 4.112264 -0.289659 -0.001769 0.017768 3.686769 0.012162 0.574213 0.000012 -0.000015 0.000026 0.000000 0.000002 -0.000000 0.000011 -0.000016 0.000025 -0.000001 -0.000004 0.000000 0.000000 0.000001 -0.000101 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.009864 -0.084858 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469515 -0.073429 -0.490356 16.227360 -0.000002 -0.000001 25.491241 -0.000003 -0.000001 -179.999991 -0.000044 0.000002 0.000002 0.000000 0.000000 0.000002 0.000000 0.000000 0.000002 0.000000 0.000000 -0.000002 -0.000000 0.000000 -44.855372 4.621464 -6.642664 63.524407 -51.454018 -45.186479 0.000006 -47.214232 0.000001 21.039189 9.556601 22.099379 -0.000002 -0.000003 0.000000 0.000002 0.000000 0.000000 0.000002 -0.000001 -0.000001 0.000002 0.000000 -0.000000 -23.505220 13.584142 5.832594 5.606081 29.410873 49.899538 0.000030 71.745072 -0.000029 -30.859553 -11.226326 17.050184 0.000002 0.000002 0.000008 0.000001 -0.000000 -0.000001 -0.000001 -0.000001 0.000001 -0.000000 -0.000001 -0.000001 0.000000 0.000000 -0.000000 -0.000001 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.006240 0.005974 -3.161587 -0.165169 -0.000646 0.010351 0.000003 0.000000 -0.000001 0.000007 -0.000008 0.000010 0.000000 0.000000 -0.000000 0.000005 -0.000008 0.000012 -0.000001 -0.000000 0.000000 -0.000000 0.000003 0.000137 0.844156 8.850771 4.112264 -0.255689 -0.001555 0.015672 3.686767 0.012164 0.574211 0.000012 -0.000013 0.000027 0.000000 0.000001 -0.000001 0.000011 -0.000013 0.000027 -0.000001 -0.000002 0.000000 0.000000 0.000001 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.008705 -0.074887 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469516 -0.073429 -0.490356 16.227362 -0.000002 -0.000001 25.491238 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 0.000003 0.000000 -0.000000 0.000003 0.000000 -0.000000 0.000003 0.000000 -0.000000 0.000001 -0.000000 -0.000000 -44.855382 4.621464 -6.516806 63.090765 -51.726317 -45.594979 0.000001 -46.705680 0.000000 20.406807 9.327200 22.280311 0.000001 -0.000001 -0.000000 0.000001 0.000000 0.000000 0.000001 -0.000002 -0.000001 -0.000001 0.000001 -0.000000 -24.093777 13.524993 5.970535 6.329620 30.676729 48.091765 0.000019 73.072198 -0.000037 -30.744054 -11.190907 17.666141 0.000001 0.000001 -0.000001 -0.000001 0.000000 0.000000 0.000000 -0.000001 -0.000001 0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000002 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.006240 0.005974 -3.161587 -0.144290 -0.000562 0.009061 -0.000000 -0.000000 0.000000 0.000007 -0.000006 0.000013 -0.000000 -0.000000 -0.000000 0.000008 -0.000006 0.000014 0.000000 -0.000001 -0.000000 -0.000000 0.000003 0.000138 0.844156 8.850770 4.112264 -0.223367 -0.001356 0.013678 3.686768 0.012164 0.574211 0.000008 -0.000014 0.000024 0.000000 -0.000000 -0.000000 0.000008 -0.000014 0.000024 -0.000001 -0.000004 -0.000000 0.000000 0.000001 -0.000101 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.007603 -0.065404 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469518 -0.073428 -0.490357 16.227356 -0.000002 -0.000001 25.491244 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 0.000002 -0.000000 0.000000 0.000002 -0.000000 0.000000 0.000002 -0.000000 0.000000 0.000003 0.000000 -0.000000 -44.855379 4.621465 -6.393213 62.659315 -51.991800 -46.001730 0.000007 -46.206346 0.000002 19.786981 9.100046 22.455350 0.000000 0.000000 -0.000001 -0.000001 0.000001 -0.000001 0.000003 -0.000000 0.000000 0.000001 0.000000 0.000001 -24.671413 13.465581 6.105338 7.087656 31.892284 46.280392 0.000027 74.374804 -0.000041 -30.421731 -11.084905 19.396206 0.000001 0.000002 0.000003 -0.000001 -0.000001 -0.000001 -0.000002 0.000002 -0.000001 0.000002 -0.000001 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 -0.006240 0.005974 -3.161587 -0.124541 -0.000483 0.007840 0.000002 -0.000000 0.000000 0.000009 -0.000007 0.000014 0.000000 0.000000 -0.000000 0.000007 -0.000007 0.000015 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000138 0.844156 8.850770 4.112264 -0.192796 -0.001167 0.011792 3.686765 0.012162 0.574213 0.000012 -0.000013 0.000028 0.000000 0.000001 -0.000000 0.000013 -0.000013 0.000028 -0.000001 -0.000002 -0.000001 0.000000 0.000002 -0.000101 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.006561 -0.056439 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469517 -0.073428 -0.490357 16.227358 -0.000002 -0.000001 25.491244 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 0.000002 -0.000000 -0.000000 0.000002 -0.000000 -0.000000 0.000002 -0.000000 -0.000000 0.000001 0.000000 0.000000 -44.855375 4.621465 -6.273011 62.234368 -52.248167 -46.402758 0.000001 -45.720747 0.000001 19.185337 8.877395 22.623046 0.000002 -0.000000 0.000004 0.000000 0.000001 -0.000002 -0.000003 0.000001 0.000001 -0.000003 0.000000 -0.000000 -25.232841 13.406543 6.235792 7.871102 33.046842 44.483516 0.000019 75.640677 -0.000037 -29.930695 -10.902462 22.067011 0.000000 0.000000 0.000000 -0.000000 -0.000001 -0.000004 -0.000003 -0.000001 0.000001 -0.000000 -0.000001 0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000002 0.000000 -0.000000 -0.000002 0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 -0.006240 0.005974 -3.161587 -0.105991 -0.000410 0.006692 0.000003 -0.000001 0.000000 0.000005 -0.000007 0.000011 0.000000 -0.000000 0.000000 0.000004 -0.000008 0.000013 0.000000 -0.000000 0.000000 -0.000000 0.000003 0.000137 0.844156 8.850770 4.112264 -0.164079 -0.000989 0.010020 3.686765 0.012160 0.574211 0.000013 -0.000012 0.000028 0.000000 0.000001 -0.000001 0.000013 -0.000014 0.000027 -0.000001 -0.000004 -0.000000 -0.000000 0.000001 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.005582 -0.048021 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469518 -0.073428 -0.490356 16.227356 -0.000002 -0.000001 25.491248 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 0.000003 -0.000000 -0.000000 0.000003 -0.000000 -0.000000 0.000003 -0.000000 -0.000000 0.000001 0.000000 0.000000 -44.855372 4.621466 -6.157332 61.820315 -52.493115 -46.793804 0.000001 -45.253487 0.000000 18.607425 8.661536 22.782062 0.000004 0.000001 0.000001 0.000004 0.000002 -0.000001 0.000001 -0.000000 -0.000000 -0.000003 0.000000 -0.000000 -25.772790 13.348567 6.360721 8.668906 34.130879 42.720672 0.000054 76.857742 -0.000030 -29.312146 -10.634634 25.503445 0.000001 -0.000000 0.000001 -0.000003 -0.000001 -0.000001 0.000001 -0.000001 0.000003 0.000001 -0.000001 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 -0.006240 0.005974 -3.161587 -0.088705 -0.000342 0.005623 0.000000 -0.000000 0.000000 0.000010 -0.000007 0.000013 0.000000 -0.000000 -0.000000 0.000008 -0.000008 0.000013 -0.000000 -0.000001 0.000000 -0.000000 0.000003 0.000138 0.844156 8.850770 4.112264 -0.137319 -0.000827 0.008370 3.686765 0.012162 0.574212 0.000014 -0.000015 0.000027 0.000000 0.000002 -0.000000 0.000013 -0.000014 0.000027 -0.000001 -0.000003 -0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.004671 -0.040180 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469519 -0.073430 -0.490356 16.227363 -0.000002 -0.000001 25.491239 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000001 0.000000 0.000000 -44.855382 4.621465 -6.047306 61.421828 -52.724453 -47.170424 0.000004 -44.809125 0.000000 18.058793 8.454832 22.931138 0.000001 -0.000002 0.000001 0.000002 -0.000003 0.000001 0.000002 -0.000002 -0.000000 0.000000 -0.000000 -0.000000 -26.286009 13.292376 6.478963 9.468131 35.135982 41.012916 0.000027 78.013963 -0.000037 -28.610269 -10.275119 29.522827 0.000001 0.000000 0.000002 0.000002 0.000000 0.000000 -0.000000 -0.000001 0.000002 0.000000 -0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 -0.000001 0.000000 0.000001 -0.000001 0.000000 -0.006240 0.005974 -3.161587 -0.072748 -0.000279 0.004636 0.000000 -0.000001 -0.000002 0.000009 -0.000009 0.000012 0.000000 0.000000 -0.000000 0.000009 -0.000009 0.000015 -0.000001 -0.000001 0.000000 -0.000000 0.000003 0.000137 0.844156 8.850770 4.112264 -0.112619 -0.000677 0.006845 3.686765 0.012162 0.574210 0.000012 -0.000016 0.000024 -0.000000 0.000001 -0.000000 0.000009 -0.000017 0.000024 -0.000001 -0.000002 0.000000 0.000000 0.000001 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.003830 -0.032945 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469515 -0.073429 -0.490356 16.227363 -0.000002 -0.000001 25.491243 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000002 -0.000000 0.000000 -0.000002 -0.000000 0.000000 -0.000002 -0.000000 0.000000 0.000001 0.000000 0.000000 -44.855382 4.621466 -5.944064 61.043737 -52.940048 -47.528039 0.000004 -44.392248 0.000002 17.544898 8.259656 23.069066 0.000001 0.000000 0.000003 0.000002 0.000000 -0.000001 0.000003 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -26.767247 13.238725 6.589392 10.254224 36.054991 39.382587 0.000034 79.097538 -0.000064 -27.870891 -9.824980 33.932660 -0.000001 -0.000002 0.000001 -0.000002 -0.000001 0.000001 -0.000000 -0.000004 -0.000002 0.000000 -0.000001 -0.000000 0.000002 0.000001 -0.000000 0.000002 0.000000 -0.000000 0.000002 0.000001 -0.000000 0.000002 0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.006240 0.005974 -3.161587 -0.058190 -0.000222 0.003737 0.000002 -0.000001 0.000000 0.000008 -0.000006 0.000012 0.000000 0.000000 -0.000000 0.000007 -0.000007 0.000012 -0.000000 -0.000001 -0.000000 -0.000000 0.000003 0.000138 0.844156 8.850771 4.112264 -0.090081 -0.000539 0.005454 3.686765 0.012162 0.574213 0.000010 -0.000015 0.000026 -0.000001 0.000001 -0.000000 0.000011 -0.000014 0.000026 -0.000002 -0.000004 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.003062 -0.026346 0.000000 0.000000 0.664365 -0.003829 -0.048461 12.469521 -0.073429 -0.490356 16.227355 -0.000002 -0.000001 25.491246 -0.000003 -0.000001 -179.999991 -0.000044 0.000002 0.000002 0.000000 0.000000 0.000002 0.000000 0.000000 0.000002 0.000000 0.000000 -0.000001 0.000000 0.000000 -44.855375 4.621466 -5.848735 60.691005 -53.137827 -47.861885 0.000003 -44.007401 0.000001 17.071216 8.078429 23.194759 -0.000001 -0.000003 -0.000002 -0.000001 -0.000001 0.000001 0.000001 -0.000000 -0.000000 0.000003 -0.000000 0.000000 -27.211294 13.188398 6.690895 11.011213 36.881854 37.853124 0.000052 80.096693 -0.000065 -27.138517 -9.295774 38.532256 0.000001 0.000000 0.000000 -0.000001 -0.000002 0.000000 -0.000001 -0.000002 -0.000002 0.000001 -0.000001 -0.000000 -0.000001 0.000000 0.000000 -0.000001 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.006240 0.005974 -3.161587 -0.045096 -0.000171 0.002926 0.000002 -0.000001 0.000002 0.000004 -0.000005 0.000012 0.000000 0.000000 -0.000000 0.000000 -0.000006 0.000013 0.000000 -0.000001 0.000000 -0.000000 0.000003 0.000137 0.844156 8.850771 4.112264 -0.069809 -0.000417 0.004203 3.686770 0.012164 0.574209 0.000014 -0.000014 0.000028 -0.000000 -0.000000 -0.000000 0.000013 -0.000016 0.000027 -0.000001 -0.000001 -0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.002373 -0.020413 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469521 -0.073430 -0.490356 16.227355 -0.000002 -0.000001 25.491239 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000002 0.000000 -0.000000 -0.000002 0.000000 -0.000000 -0.000002 0.000000 -0.000000 -0.000001 0.000000 0.000000 -44.855375 4.621464 -5.762447 60.368695 -53.315743 -48.167105 -0.000001 -43.659109 0.000001 16.643151 7.913573 23.307139 -0.000001 0.000001 -0.000000 -0.000001 -0.000001 -0.000001 0.000002 0.000000 0.000001 -0.000003 0.000000 -0.000000 -27.612959 13.142198 6.782376 11.722125 37.611557 36.448830 0.000063 80.999794 -0.000078 -26.452541 -8.710431 43.117581 0.000000 0.000000 -0.000000 -0.000002 -0.000005 -0.000003 0.000001 0.000000 -0.000001 0.000001 0.000001 -0.000000 -0.000001 0.000001 -0.000000 -0.000001 0.000000 -0.000000 0.000000 0.000001 -0.000000 -0.000001 0.000001 -0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 -0.006240 0.005974 -3.161587 -0.033530 -0.000127 0.002211 0.000004 -0.000001 0.000000 0.000009 -0.000007 0.000013 0.000000 0.000000 -0.000000 0.000009 -0.000007 0.000013 -0.000000 -0.000001 -0.000000 -0.000000 0.000003 0.000138 0.844156 8.850770 4.112264 -0.051906 -0.000308 0.003099 3.686769 0.012163 0.574211 0.000010 -0.000015 0.000025 0.000000 -0.000000 0.000000 0.000007 -0.000014 0.000022 -0.000000 -0.000003 0.000000 0.000000 0.000002 -0.000099 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.001764 -0.015174 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469517 -0.073430 -0.490356 16.227358 -0.000002 -0.000001 25.491241 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000001 0.000000 0.000000 -44.855375 4.621465 -5.686339 60.081998 -53.471816 -48.438773 -0.000002 -43.351969 0.000001 16.266094 7.767516 23.405146 0.000000 -0.000003 0.000003 -0.000001 0.000003 0.000000 -0.000001 0.000000 0.000000 -0.000004 0.000000 0.000001 -27.967043 13.100941 6.862761 12.369369 38.239927 35.194472 0.000045 81.795299 -0.000091 -25.843967 -8.101989 47.487351 -0.000001 -0.000002 0.000001 -0.000003 0.000001 0.000002 -0.000000 0.000000 -0.000002 0.000001 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.006240 0.005974 -3.161587 -0.023562 -0.000088 0.001594 0.000003 -0.000000 0.000000 0.000004 -0.000007 0.000013 0.000000 -0.000000 0.000000 0.000002 -0.000007 0.000011 -0.000000 -0.000001 0.000000 -0.000000 0.000003 0.000137 0.844156 8.850769 4.112264 -0.036475 -0.000216 0.002147 3.686766 0.012163 0.574209 0.000011 -0.000011 0.000025 -0.000000 -0.000000 -0.000000 0.000010 -0.000011 0.000023 -0.000001 -0.000002 -0.000001 0.000000 0.000001 -0.000100 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000
|
||||
0.000000 1.067000 0.001239 -0.010661 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469519 -0.073429 -0.490356 16.227358 -0.000002 -0.000001 25.491239 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000002 -0.000000 0.000000 -44.855375 4.621465 -5.621532 59.836098 -53.604045 -48.671870 -0.000001 -43.090475 0.000001 15.945437 7.642685 23.487786 -0.000001 -0.000004 0.000000 0.000001 0.000001 -0.000001 -0.000000 0.000000 0.000001 0.000001 -0.000000 0.000000 -28.268374 13.065438 6.930973 12.935170 38.763260 34.114985 0.000075 82.471816 -0.000113 -25.333481 -7.510489 51.448694 0.000001 -0.000000 0.000000 -0.000001 -0.000002 -0.000002 -0.000000 0.000000 -0.000004 -0.000001 0.000001 -0.000000 -0.000001 0.000001 -0.000000 0.000000 0.000000 -0.000000 -0.000001 0.000001 -0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.006240 0.005974 -3.161587 -0.015258 -0.000056 0.001081 0.000005 -0.000002 0.000004 0.000006 -0.000006 0.000013 -0.000000 -0.000000 -0.000000 0.000002 -0.000005 0.000011 0.000000 0.000000 0.000000 -0.000000 0.000003 0.000138 0.844156 8.850769 4.112264 -0.023619 -0.000140 0.001353 3.686768 0.012161 0.574212 0.000009 -0.000016 0.000027 -0.000000 0.000001 -0.000000 0.000010 -0.000016 0.000026 -0.000001 -0.000003 0.000000 -0.000000 0.000001 -0.000101 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.000802 -0.006902 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469516 -0.073429 -0.490356 16.227360 -0.000002 -0.000001 25.491239 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 0.000000 -0.000000 -44.855382 4.621464 -5.569160 59.636192 -53.710453 -48.861476 0.000001 -42.879193 0.000001 15.686590 7.541500 23.554008 0.000000 -0.000000 -0.000002 0.000002 -0.000002 0.000000 -0.000000 -0.000001 0.000000 -0.000001 0.000000 -0.000000 -28.511783 13.036501 6.985937 13.402059 39.178037 33.235089 0.000060 83.017944 -0.000108 -24.931878 -6.979204 54.820208 -0.000000 -0.000003 0.000000 0.000003 -0.000002 0.000000 -0.000001 -0.000000 -0.000003 0.000001 0.000001 -0.000000 -0.000001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 -0.006240 0.005974 -3.161587 -0.008682 -0.000030 0.000674 -0.000000 -0.000002 0.000002 0.000004 -0.000008 0.000010 -0.000000 -0.000000 -0.000000 0.000002 -0.000006 0.000009 -0.000000 -0.000000 0.000000 -0.000000 0.000003 0.000138 0.844156 8.850769 4.112264 -0.013440 -0.000076 0.000725 3.686767 0.012166 0.574209 0.000011 -0.000011 0.000025 -0.000000 0.000000 -0.000000 0.000013 -0.000013 0.000027 -0.000001 -0.000003 -0.000000 0.000000 0.000002 -0.000101 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 0.000456 -0.003927 0.000000 0.000000 0.664367 -0.003829 -0.048461 12.469516 -0.073428 -0.490356 16.227360 -0.000002 -0.000001 25.491243 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000001 0.000000 0.000000 -44.855382 4.621466 -5.530355 59.487335 -53.789055 -49.002670 0.000002 -42.722669 0.000001 15.494933 7.466356 23.602782 0.000002 -0.000002 0.000000 0.000001 0.000000 -0.000001 0.000001 -0.000000 0.000000 0.000001 0.000001 -0.000000 -28.692078 13.014914 7.026574 13.753393 39.480519 32.578858 0.000048 83.422223 -0.000122 -24.642605 -6.551296 57.431441 0.000002 0.000003 0.000000 0.000001 -0.000004 -0.000000 0.000001 0.000002 -0.000005 0.000000 0.000000 -0.000000 0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.006240 0.005974 -3.161587 -0.003903 -0.000012 0.000379 -0.000000 -0.000002 0.000002 0.000007 -0.000005 0.000011 0.000000 0.000000 -0.000000 0.000006 -0.000005 0.000012 -0.000000 -0.000001 0.000000 -0.000000 0.000003 0.000138 0.844156 8.850770 4.112264 -0.006042 -0.000034 0.000268 3.686766 0.012162 0.574211 0.000013 -0.000015 0.000027 0.000000 -0.000001 0.000000 0.000010 -0.000014 0.000026 -0.000000 -0.000005 -0.000001 0.000000 0.000001 -0.000101 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.000205 -0.001765 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469516 -0.073429 -0.490356 16.227358 -0.000002 -0.000001 25.491244 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000001 0.000000 0.000000 -44.855382 4.621465 -5.506240 59.394546 -53.837778 -49.090718 0.000002 -42.625401 0.000000 15.375920 7.419583 23.632939 -0.000000 0.000001 -0.000000 0.000003 -0.000002 0.000000 -0.000000 0.000001 -0.000000 -0.000003 0.000001 -0.000000 -28.804079 13.001436 7.051784 13.973835 39.666286 32.169412 0.000035 83.673294 -0.000104 -24.466108 -6.267585 59.118948 0.000001 0.000002 0.000002 -0.000001 -0.000001 -0.000002 -0.000000 0.000001 -0.000002 0.000001 -0.000000 -0.000000 0.000001 0.000001 -0.000000 0.000002 0.000000 -0.000000 0.000002 0.000001 -0.000000 0.000002 0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.006240 0.005974 -3.161587 -0.000987 -0.000001 0.000199 0.000003 -0.000001 0.000000 0.000006 -0.000004 0.000011 0.000000 0.000000 -0.000000 0.000003 -0.000005 0.000013 -0.000001 -0.000001 0.000000 -0.000000 0.000003 0.000138 0.844156 8.850771 4.112264 -0.001528 -0.000005 -0.000010 3.686769 0.012163 0.574209 0.000011 -0.000011 0.000025 0.000000 0.000000 -0.000000 0.000009 -0.000012 0.000025 -0.000001 -0.000004 -0.000000 0.000000 0.000001 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 0.000052 -0.000446 0.000000 0.000000 0.664366 -0.003829 -0.048461 12.469516 -0.073429 -0.490356 16.227360 -0.000002 -0.000001 25.491244 -0.000003 -0.000001 -179.999991 -0.000044 0.000003 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000002 -0.000000 0.000000 -44.855379 4.621466 -5.497951 59.362602 -53.854501 -49.121027 0.000008 -42.591980 0.000002 15.335021 7.403497 23.643282 -0.000001 -0.000001 0.000003 0.000003 0.000002 0.000002 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -28.842571 12.996796 7.060443 14.049927 39.729704 32.028410 0.000090 83.759559 -0.000129 -24.405364 -6.165397 59.719042 0.000001 -0.000003 0.000003 -0.000000 -0.000002 0.000000 -0.000001 0.000001 -0.000003 0.000001 0.000001 0.000001 -0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 -0.006240 0.005974 -3.161587 0.000000 0.000003 0.000138 0.000002 0.000000 0.000001 0.000008 -0.000007 0.000013 -0.000000 -0.000000 -0.000000 0.000006 -0.000007 0.000012 0.000000 0.000000 0.000000 -0.000000 0.000003 0.000137 0.844156 8.850770 4.112264 0.000000 0.000001 -0.000100 3.686767 0.012163 0.574211 0.000010 -0.000014 0.000027 -0.000000 0.000000 -0.000001 0.000010 -0.000016 0.000028 -0.000001 -0.000003 -0.000001 0.000000 0.000001 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 -0.000000 0.664366 -0.003829 -0.048461 12.469516 -0.073428 -0.490356 16.227360 -0.000002 -0.000001 25.491246 -0.000003 -0.000001 -179.999991 -0.000044 0.000002 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000001 0.000000 0.000000 -44.855375 4.621465 -5.497951 59.362608 -53.854501 -49.121033 0.000002 -42.591974 0.000002 15.335025 7.403498 23.643277 0.000001 -0.000000 -0.000002 0.000002 0.000000 -0.000001 -0.000002 -0.000000 0.000000 -0.000003 0.000000 0.000000 -28.842567 12.996796 7.060444 14.049929 39.729704 32.028410 0.000122 83.759552 -0.000145 -24.405357 -6.165397 59.719035 0.000004 -0.000003 0.000000 0.000001 -0.000002 -0.000001 -0.000000 -0.000001 -0.000004 0.000001 0.000000 0.000000 0.000001 0.000000 -0.000000 0.000001 -0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 -0.006240 0.005974 -3.161587 -0.000000 0.000003 0.000138 0.000002 0.000000 -0.000002 0.000007 -0.000007 0.000014 -0.000000 -0.000000 -0.000000 0.000005 -0.000007 0.000014 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000137 0.844156 8.850770 4.112264 0.000000 0.000003 -0.000101 3.686766 0.012163 0.574209 0.000011 -0.000012 0.000024 -0.000001 -0.000001 -0.000000 0.000012 -0.000012 0.000025 -0.000000 -0.000004 -0.000001 0.000000 0.000003 -0.000101 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
9
res/anims/couples/README.md
Normal file
9
res/anims/couples/README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
## Couples
|
||||
|
||||
###### This space is for couple animations.
|
||||
|
||||
To prevent the collar from listing an animation in the pose menu, we can add a tilde in front of the pose name.
|
||||
* i.e. ~hug.bvh
|
||||
|
||||
We will add further description in the readme here.
|
||||
|
||||
121
res/anims/couples/~jump-bottom.bvh
Normal file
121
res/anims/couples/~jump-bottom.bvh
Normal file
@@ -0,0 +1,121 @@
|
||||
HIERARCHY
|
||||
ROOT hip
|
||||
{
|
||||
OFFSET 0.000000 0.000000 0.000000
|
||||
CHANNELS 6 Xposition Yposition Zposition Xrotation Zrotation Yrotation
|
||||
JOINT abdomen
|
||||
{
|
||||
OFFSET 0.000000 3.422050 0.000000
|
||||
CHANNELS 3 Xrotation Zrotation Yrotation
|
||||
JOINT chest
|
||||
{
|
||||
OFFSET 0.000000 8.486693 -0.684411
|
||||
CHANNELS 3 Xrotation Zrotation Yrotation
|
||||
JOINT neck
|
||||
{
|
||||
OFFSET 0.000000 10.266162 -0.273764
|
||||
CHANNELS 3 Xrotation Zrotation Yrotation
|
||||
JOINT head
|
||||
{
|
||||
OFFSET 0.000000 3.148285 0.000000
|
||||
CHANNELS 3 Xrotation Zrotation Yrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 3.148289 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT lCollar
|
||||
{
|
||||
OFFSET 3.422053 6.707223 -0.821293
|
||||
CHANNELS 3 Yrotation Zrotation Xrotation
|
||||
JOINT lShldr
|
||||
{
|
||||
OFFSET 3.285171 0.000000 0.000000
|
||||
CHANNELS 3 Zrotation Yrotation Xrotation
|
||||
JOINT lForeArm
|
||||
{
|
||||
OFFSET 10.129278 0.000000 0.000000
|
||||
CHANNELS 3 Yrotation Zrotation Xrotation
|
||||
JOINT lHand
|
||||
{
|
||||
OFFSET 8.486692 0.000000 0.000000
|
||||
CHANNELS 3 Zrotation Yrotation Xrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 4.106464 0.000000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT rCollar
|
||||
{
|
||||
OFFSET -3.558935 6.707223 -0.821293
|
||||
CHANNELS 3 Yrotation Zrotation Xrotation
|
||||
JOINT rShldr
|
||||
{
|
||||
OFFSET -3.148289 0.000000 0.000000
|
||||
CHANNELS 3 Zrotation Yrotation Xrotation
|
||||
JOINT rForeArm
|
||||
{
|
||||
OFFSET -10.266159 0.000000 0.000000
|
||||
CHANNELS 3 Yrotation Zrotation Xrotation
|
||||
JOINT rHand
|
||||
{
|
||||
OFFSET -8.349810 0.000000 0.000000
|
||||
CHANNELS 3 Zrotation Yrotation Xrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -4.106464 0.000000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT lThigh
|
||||
{
|
||||
OFFSET 5.338403 -1.642589 1.368821
|
||||
CHANNELS 3 Xrotation Zrotation Yrotation
|
||||
JOINT lShin
|
||||
{
|
||||
OFFSET -2.053232 -20.121670 0.000000
|
||||
CHANNELS 3 Xrotation Zrotation Yrotation
|
||||
JOINT lFoot
|
||||
{
|
||||
OFFSET 0.000000 -19.300380 -1.231939
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -2.463878 4.653993
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT rThigh
|
||||
{
|
||||
OFFSET -5.338403 -1.642589 1.368821
|
||||
CHANNELS 3 Xrotation Zrotation Yrotation
|
||||
JOINT rShin
|
||||
{
|
||||
OFFSET 2.053232 -20.121670 0.000000
|
||||
CHANNELS 3 Xrotation Zrotation Yrotation
|
||||
JOINT rFoot
|
||||
{
|
||||
OFFSET 0.000000 -19.300380 -1.231939
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -2.463878 4.653993
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
MOTION
|
||||
Frames: 2
|
||||
Frame Time: 0.033333
|
||||
0.000000 43.528519 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
|
||||
0.000000 46.000000 9.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 20.000000 0.000000 0.000000 23.000000 -24.000000 0.000000 19.000000 -3.000000 0.000000 0.000000 0.000000 -55.000000 27.000000 -89.000000 -105.000000 -22.000000 -18.000000 0.000000 -19.000000 0.000000 0.000000 0.000000 0.000000 -58.000000 4.000000 83.000000 -51.000000 26.000000 5.000000 -1.000000 33.000000 0.000000 0.000000 -109.000000 29.000000 24.000000 102.000000 -13.000000 0.000000 39.000000 0.000000 -3.000000 -109.000000 -29.000000 -24.000000 112.000000 13.000000 0.000000 37.000000 0.000000 0.000000
|
||||
121
res/anims/couples/~jump-top.bvh
Normal file
121
res/anims/couples/~jump-top.bvh
Normal file
@@ -0,0 +1,121 @@
|
||||
HIERARCHY
|
||||
ROOT hip
|
||||
{
|
||||
OFFSET 0.000000 0.000000 0.000000
|
||||
CHANNELS 6 Xposition Yposition Zposition Xrotation Zrotation Yrotation
|
||||
JOINT abdomen
|
||||
{
|
||||
OFFSET 0.000000 3.422050 0.000000
|
||||
CHANNELS 3 Xrotation Zrotation Yrotation
|
||||
JOINT chest
|
||||
{
|
||||
OFFSET 0.000000 8.486693 -0.684411
|
||||
CHANNELS 3 Xrotation Zrotation Yrotation
|
||||
JOINT neck
|
||||
{
|
||||
OFFSET 0.000000 10.266162 -0.273764
|
||||
CHANNELS 3 Xrotation Zrotation Yrotation
|
||||
JOINT head
|
||||
{
|
||||
OFFSET 0.000000 3.148285 0.000000
|
||||
CHANNELS 3 Xrotation Zrotation Yrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 3.148289 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT lCollar
|
||||
{
|
||||
OFFSET 3.422053 6.707223 -0.821293
|
||||
CHANNELS 3 Yrotation Zrotation Xrotation
|
||||
JOINT lShldr
|
||||
{
|
||||
OFFSET 3.285171 0.000000 0.000000
|
||||
CHANNELS 3 Zrotation Yrotation Xrotation
|
||||
JOINT lForeArm
|
||||
{
|
||||
OFFSET 10.129278 0.000000 0.000000
|
||||
CHANNELS 3 Yrotation Zrotation Xrotation
|
||||
JOINT lHand
|
||||
{
|
||||
OFFSET 8.486692 0.000000 0.000000
|
||||
CHANNELS 3 Zrotation Yrotation Xrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 4.106464 0.000000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT rCollar
|
||||
{
|
||||
OFFSET -3.558935 6.707223 -0.821293
|
||||
CHANNELS 3 Yrotation Zrotation Xrotation
|
||||
JOINT rShldr
|
||||
{
|
||||
OFFSET -3.148289 0.000000 0.000000
|
||||
CHANNELS 3 Zrotation Yrotation Xrotation
|
||||
JOINT rForeArm
|
||||
{
|
||||
OFFSET -10.266159 0.000000 0.000000
|
||||
CHANNELS 3 Yrotation Zrotation Xrotation
|
||||
JOINT rHand
|
||||
{
|
||||
OFFSET -8.349810 0.000000 0.000000
|
||||
CHANNELS 3 Zrotation Yrotation Xrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -4.106464 0.000000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT lThigh
|
||||
{
|
||||
OFFSET 5.338403 -1.642589 1.368821
|
||||
CHANNELS 3 Xrotation Zrotation Yrotation
|
||||
JOINT lShin
|
||||
{
|
||||
OFFSET -2.053232 -20.121670 0.000000
|
||||
CHANNELS 3 Xrotation Zrotation Yrotation
|
||||
JOINT lFoot
|
||||
{
|
||||
OFFSET 0.000000 -19.300380 -1.231939
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -2.463878 4.653993
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT rThigh
|
||||
{
|
||||
OFFSET -5.338403 -1.642589 1.368821
|
||||
CHANNELS 3 Xrotation Zrotation Yrotation
|
||||
JOINT rShin
|
||||
{
|
||||
OFFSET 2.053232 -20.121670 0.000000
|
||||
CHANNELS 3 Xrotation Zrotation Yrotation
|
||||
JOINT rFoot
|
||||
{
|
||||
OFFSET 0.000000 -19.300380 -1.231939
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -2.463878 4.653993
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
MOTION
|
||||
Frames: 2
|
||||
Frame Time: 0.033333
|
||||
0.000000 43.528519 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -10.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
|
||||
0.000000 43.528500 4.000000 0.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 5.000000 0.000000 0.000000 16.000000 -18.000000 -4.000000 10.000000 -9.000000 0.000000 -8.000000 0.000000 -4.000000 -55.000000 -22.000000 0.000000 -35.000000 -32.000000 5.000000 -12.000000 0.000000 0.000000 16.000000 0.000000 0.000000 56.000000 30.000000 -6.000000 33.000000 34.000000 0.000000 18.000000 0.000000 0.000000 -1.000000 0.000000 0.000000 2.000000 0.000000 0.000000 -2.000000 0.000000 0.000000 -2.000000 0.000000 0.000000 3.000000 0.000000 0.000000 -2.000000 0.000000 0.000000
|
||||
418
res/anims/poses/Beauty Stand.bvh
Normal file
418
res/anims/poses/Beauty Stand.bvh
Normal file
@@ -0,0 +1,418 @@
|
||||
HIERARCHY
|
||||
ROOT mPelvis
|
||||
{
|
||||
OFFSET 0.000000 1.067000 -0.000000
|
||||
CHANNELS 6 Xposition Yposition Zposition Xrotation Yrotation Zrotation
|
||||
JOINT mTorso
|
||||
{
|
||||
OFFSET 0.000000 0.084000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mChest
|
||||
{
|
||||
OFFSET 0.000000 0.205000 -0.015000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mNeck
|
||||
{
|
||||
OFFSET 0.000000 0.251000 -0.010000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mHead
|
||||
{
|
||||
OFFSET 0.000000 0.076000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mSkull
|
||||
{
|
||||
OFFSET 0.000000 0.079000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT mEyeRight
|
||||
{
|
||||
OFFSET -0.036000 0.079000 0.098000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT mEyeLeft
|
||||
{
|
||||
OFFSET 0.036000 0.079000 0.098000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT HEAD
|
||||
{
|
||||
OFFSET 0.000000 0.070000 0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT NECK
|
||||
{
|
||||
OFFSET 0.000000 0.020000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT mCollarLeft
|
||||
{
|
||||
OFFSET 0.085000 0.165000 -0.021000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mShoulderLeft
|
||||
{
|
||||
OFFSET 0.079000 0.000000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mElbowLeft
|
||||
{
|
||||
OFFSET 0.248000 0.000000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mWristLeft
|
||||
{
|
||||
OFFSET 0.205000 0.000000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT L_HAND
|
||||
{
|
||||
OFFSET 0.050000 0.000000 0.010000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_LOWER_ARM
|
||||
{
|
||||
OFFSET 0.100000 0.000000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_UPPER_ARM
|
||||
{
|
||||
OFFSET 0.120000 0.010000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_CLAVICLE
|
||||
{
|
||||
OFFSET 0.000000 0.020000 0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT mCollarRight
|
||||
{
|
||||
OFFSET -0.085000 0.165000 -0.021000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mShoulderRight
|
||||
{
|
||||
OFFSET -0.079000 0.000000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mElbowRight
|
||||
{
|
||||
OFFSET -0.248000 0.000000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mWristRight
|
||||
{
|
||||
OFFSET -0.205000 0.000000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT R_HAND
|
||||
{
|
||||
OFFSET -0.050000 0.000000 0.010000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_LOWER_ARM
|
||||
{
|
||||
OFFSET -0.100000 0.000000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_UPPER_ARM
|
||||
{
|
||||
OFFSET -0.120000 0.010000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_CLAVICLE
|
||||
{
|
||||
OFFSET 0.000000 0.020000 0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT CHEST
|
||||
{
|
||||
OFFSET 0.000000 0.070000 0.028000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT LEFT_PEC
|
||||
{
|
||||
OFFSET 0.082000 0.042000 0.119000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT RIGHT_PEC
|
||||
{
|
||||
OFFSET -0.082000 0.042000 0.119000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT UPPER_BACK
|
||||
{
|
||||
OFFSET 0.000000 0.017253 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT BELLY
|
||||
{
|
||||
OFFSET 0.000000 0.040000 0.028000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT LOWER_BACK
|
||||
{
|
||||
OFFSET 0.000000 0.022848 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT mHipRight
|
||||
{
|
||||
OFFSET -0.129000 -0.041000 0.034000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mKneeRight
|
||||
{
|
||||
OFFSET 0.049000 -0.491000 -0.001000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mAnkleRight
|
||||
{
|
||||
OFFSET -0.000000 -0.468000 -0.029000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mFootRight
|
||||
{
|
||||
OFFSET 0.000000 -0.061000 0.112000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mToeRight
|
||||
{
|
||||
OFFSET 0.000000 0.000000 0.109000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_FOOT
|
||||
{
|
||||
OFFSET 0.000000 -0.041000 0.077000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_LOWER_LEG
|
||||
{
|
||||
OFFSET -0.000000 -0.200000 -0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_UPPER_LEG
|
||||
{
|
||||
OFFSET 0.050000 -0.220000 -0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT mHipLeft
|
||||
{
|
||||
OFFSET 0.127000 -0.041000 0.034000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mKneeLeft
|
||||
{
|
||||
OFFSET -0.046000 -0.491000 -0.001000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mAnkleLeft
|
||||
{
|
||||
OFFSET 0.001000 -0.468000 -0.029000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mFootLeft
|
||||
{
|
||||
OFFSET 0.000000 -0.061000 0.112000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mToeLeft
|
||||
{
|
||||
OFFSET 0.000000 0.000000 0.109000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_FOOT
|
||||
{
|
||||
OFFSET 0.000000 -0.041000 0.077000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_LOWER_LEG
|
||||
{
|
||||
OFFSET -0.000000 -0.200000 -0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_UPPER_LEG
|
||||
{
|
||||
OFFSET -0.050000 -0.220000 -0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT PELVIS
|
||||
{
|
||||
OFFSET -0.000000 -0.020000 -0.010000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT BUTT
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 -0.060000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
MOTION
|
||||
Frames: 48
|
||||
Frame Time: 0.022222
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.555755 -0.057458 -84.096424 -0.000000 0.000000 0.000001 0.879869 -0.033829 -4.403510 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -1.541243 15.193717 82.081778 0.000002 0.000000 0.000001 1.046036 0.047842 5.237183 -0.000001 -0.000001 -0.000000 0.000001 0.000000 0.000001 -0.000001 0.000000 0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 0.008427 -0.000000 -0.000000 -0.005678 0.000030 0.000414 -0.007393 0.000012 0.000294 0.021107 0.000000 -0.000000 0.021748 -0.000000 -0.000000 0.000002 0.000022 -179.999991 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.089838 -0.026597 0.047130 -1.422731 -0.095361 -84.009469 -0.000000 -0.151013 0.000000 0.955644 -0.027660 -4.847438 0.000000 0.000001 -0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.089838 0.026597 -0.047130 -2.077281 15.697655 82.069811 0.000002 0.144000 0.000000 1.345152 0.085586 6.841711 -0.000002 0.000000 0.000000 -0.000001 -0.000000 -0.000001 -0.000000 0.000000 0.000001 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.007207 -0.000719 0.000013 -0.002374 -0.000006 0.000283 -0.000003 0.010042 -0.000147 -0.000009 0.000018 -0.000031 0.000000 -0.000000 -0.000000 -0.000011 0.000018 -0.000031 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000137 -0.007186 0.000673 0.000016 -0.003317 0.000004 -0.000126 -0.000015 -0.011362 0.000169 0.000012 -0.000013 0.000022 -0.000000 0.000000 0.000000 0.000014 -0.000013 0.000021 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 0.033200 -0.000000 -0.000000 -0.022372 0.000119 0.001633 -0.029127 0.000047 0.001159 0.083159 0.000000 -0.000000 0.085685 -0.000000 -0.000000 0.000002 0.000022 -179.999991 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.354155 -0.105315 0.185619 -2.333501 -0.074524 -83.751124 -0.000000 -0.596417 -0.000000 1.004038 0.004144 -5.277350 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.354155 0.105316 -0.185619 -2.675920 16.102808 81.888880 -0.000000 0.568530 0.000000 1.591914 0.137118 8.384901 -0.000001 0.000002 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.028396 -0.002834 0.000051 -0.009353 -0.000033 0.000715 -0.000012 0.039570 -0.000580 -0.000015 0.000014 -0.000032 0.000000 -0.000000 -0.000000 -0.000015 0.000015 -0.000032 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000137 -0.028313 0.002652 0.000063 -0.013072 0.000009 -0.000205 -0.000032 -0.044766 0.000664 0.000005 -0.000014 0.000031 0.000000 0.000000 0.000000 0.000007 -0.000014 0.000029 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 0.073561 -0.000000 -0.000000 -0.049571 0.000263 0.003618 -0.064534 0.000100 0.002569 0.184262 0.000000 -0.000000 0.189859 -0.000000 -0.000000 0.000002 0.000022 -179.999991 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.785422 -0.235247 0.411013 -3.287497 -0.001804 -83.327037 0.000000 -1.326694 -0.000000 1.026472 0.060728 -5.693403 0.000000 -0.000002 -0.000000 0.000000 0.000000 0.000001 0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.785422 0.235248 -0.411013 -3.333698 16.416826 81.544980 -0.000000 1.263966 0.000000 1.787871 0.199658 9.867412 0.000001 0.000000 0.000001 0.000000 -0.000001 -0.000001 -0.000000 -0.000001 0.000001 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000001 -0.000002 0.000000 0.000001 -0.000002 0.000000 -0.062916 -0.006279 0.000112 -0.020722 -0.000077 0.001418 -0.000033 0.087671 -0.001276 -0.000008 0.000015 -0.000032 -0.000000 -0.000000 -0.000000 -0.000008 0.000015 -0.000032 -0.000002 0.000001 0.000000 -0.000000 0.000003 0.000136 -0.062731 0.005877 0.000143 -0.028962 0.000018 -0.000332 -0.000067 -0.099191 0.001473 0.000009 -0.000014 0.000029 0.000000 0.000000 0.000000 0.000010 -0.000014 0.000025 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 0.128749 -0.000000 -0.000000 -0.086759 0.000458 0.006332 -0.112950 0.000175 0.004497 0.322523 -0.000000 -0.000000 0.332321 -0.000000 -0.000000 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -1.376399 -0.416298 0.718708 -4.284526 0.115953 -82.742442 -0.000000 -2.334564 0.000001 1.024340 0.141185 -6.095727 -0.000000 -0.000001 -0.000000 0.000000 -0.000000 -0.000001 0.000000 0.000000 0.000001 -0.000000 0.000000 -0.000000 -1.376399 0.416298 -0.718708 -4.048058 16.647222 81.043548 -0.000000 2.222504 0.000001 1.934752 0.270691 11.290067 -0.000002 -0.000002 0.000000 -0.000002 -0.000001 0.000000 0.000001 -0.000001 0.000001 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.110118 -0.010990 0.000192 -0.036269 -0.000137 0.002379 -0.000055 0.153447 -0.002239 -0.000010 0.000016 -0.000034 -0.000000 0.000000 -0.000000 -0.000008 0.000017 -0.000032 -0.000001 0.000001 -0.000000 -0.000000 0.000003 0.000136 -0.109794 0.010285 0.000255 -0.050690 0.000030 -0.000507 -0.000112 -0.173609 0.002575 0.000011 -0.000013 0.000027 -0.000000 0.000000 0.000000 0.000012 -0.000013 0.000025 -0.000000 0.000000 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 0.198005 -0.000000 -0.000000 -0.133427 0.000700 0.009738 -0.173707 0.000266 0.006915 0.496052 0.000000 -0.000000 0.511125 -0.000000 -0.000000 0.000002 0.000022 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -2.120039 -0.649042 1.103929 -5.324623 0.271882 -82.002240 -0.000000 -3.614586 -0.000001 0.999011 0.244585 -6.484423 -0.000000 0.000000 -0.000000 0.000000 0.000001 0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000000 -2.120040 0.649041 -1.103929 -4.817177 16.801364 80.389441 0.000000 3.437821 0.000000 2.034428 0.347941 12.653804 -0.000000 0.000001 0.000001 -0.000001 0.000001 0.000001 0.000001 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.169352 -0.016902 0.000287 -0.055777 -0.000213 0.003586 -0.000070 0.235993 -0.003447 -0.000015 0.000019 -0.000032 -0.000000 -0.000000 -0.000000 -0.000017 0.000019 -0.000032 -0.000000 0.000001 0.000000 -0.000000 0.000003 0.000136 -0.168854 0.015818 0.000400 -0.077956 0.000045 -0.000725 -0.000171 -0.267002 0.003964 0.000006 -0.000011 0.000026 0.000000 -0.000000 0.000000 0.000008 -0.000012 0.000026 -0.000000 0.000000 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 0.280570 -0.000000 -0.000000 -0.189062 0.000986 0.013799 -0.246140 0.000369 0.009799 0.702961 0.000000 -0.000000 0.724327 -0.000000 -0.000000 0.000002 0.000022 -179.999991 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -3.009401 -0.934578 1.561688 -6.407927 0.459068 -81.111099 -0.000000 -5.162768 -0.000001 0.951832 0.369934 -6.859585 0.000000 -0.000003 0.000000 -0.000000 -0.000002 0.000001 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -3.009401 0.934579 -1.561688 -5.639788 16.886564 79.587222 -0.000003 4.904717 0.000001 2.088871 0.429389 13.959673 0.000001 0.000002 -0.000001 -0.000002 0.000000 0.000001 -0.000001 -0.000000 0.000002 -0.000000 -0.000000 0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000001 -0.000000 0.000001 -0.000001 0.000000 0.000001 -0.000001 0.000000 -0.239967 -0.023950 0.000393 -0.079034 -0.000304 0.005023 -0.000101 0.334396 -0.004880 -0.000010 0.000018 -0.000030 0.000000 0.000000 -0.000000 -0.000010 0.000017 -0.000030 -0.000002 0.000000 0.000000 -0.000000 0.000003 0.000136 -0.239262 0.022413 0.000582 -0.110462 0.000062 -0.000988 -0.000233 -0.378344 0.005618 0.000011 -0.000012 0.000025 0.000000 -0.000000 0.000000 0.000014 -0.000013 0.000024 -0.000000 0.000000 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 0.375685 -0.000000 -0.000000 -0.253153 0.001311 0.018477 -0.329581 0.000485 0.013122 0.941365 -0.000000 -0.000000 0.969984 -0.000000 -0.000000 0.000002 0.000022 -179.999991 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -4.037551 -1.274402 2.086749 -7.534544 0.670527 -80.073750 0.000000 -6.976168 -0.000000 0.884119 0.516210 -7.221285 -0.000001 -0.000003 -0.000000 -0.000000 -0.000001 0.000001 0.000000 -0.000001 0.000000 0.000000 0.000000 0.000000 -4.037552 1.274401 -2.086749 -6.515016 16.910094 78.641268 0.000001 6.618782 0.000001 2.100152 0.513241 15.208804 0.000001 -0.000004 -0.000000 -0.000001 -0.000001 -0.000000 -0.000001 -0.000002 0.000003 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -0.321316 -0.032069 0.000503 -0.105825 -0.000409 0.006680 -0.000128 0.447764 -0.006534 -0.000009 0.000017 -0.000029 0.000000 0.000000 -0.000000 -0.000011 0.000017 -0.000028 -0.000001 0.000001 0.000000 -0.000000 0.000002 0.000136 -0.320372 0.030011 0.000800 -0.147906 0.000083 -0.001288 -0.000304 -0.506613 0.007522 0.000011 -0.000012 0.000029 0.000000 0.000000 0.000000 0.000011 -0.000013 0.000027 -0.000001 0.000001 0.000000 0.000000 0.000002 -0.000099 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 0.482591 -0.000000 -0.000000 -0.325186 0.001668 0.023735 -0.423364 0.000609 0.016856 1.209377 -0.000000 -0.000000 1.246153 -0.000000 -0.000000 0.000002 0.000022 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -5.197485 -1.670252 2.673589 -8.704433 0.899195 -78.894907 -0.000000 -9.052487 -0.000001 0.797169 0.682357 -7.569586 0.000000 -0.000004 0.000000 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -5.197487 1.670251 -2.673590 -7.442248 16.879255 77.555910 -0.000002 8.576032 -0.000001 2.070415 0.597935 16.402390 0.000002 0.000005 0.000000 0.000002 -0.000003 -0.000000 0.000002 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.412748 -0.041195 0.000613 -0.135936 -0.000529 0.008542 -0.000155 0.575184 -0.008396 -0.000007 0.000017 -0.000028 0.000000 -0.000000 -0.000000 -0.000007 0.000016 -0.000027 -0.000001 0.000001 0.000000 -0.000000 0.000003 0.000135 -0.411535 0.038550 0.001058 -0.189991 0.000107 -0.001626 -0.000372 -0.650785 0.009661 0.000006 -0.000013 0.000024 0.000000 -0.000000 -0.000000 0.000007 -0.000013 0.000024 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 0.600527 -0.000000 -0.000000 -0.404651 0.002056 0.029537 -0.526823 0.000737 0.020976 1.505108 -0.000000 -0.000000 1.550892 -0.000000 -0.000000 0.000002 0.000022 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -6.482052 -2.123981 3.316372 -9.917283 1.137934 -77.579590 -0.000001 -11.389651 -0.000003 0.692257 0.867292 -7.904545 0.000000 -0.000000 0.000000 0.000001 0.000000 -0.000001 -0.000001 0.000001 -0.000001 -0.000000 -0.000000 0.000000 -6.482054 2.123980 -3.316372 -8.420958 16.801405 76.335506 0.000002 10.772556 -0.000003 2.001836 0.682122 17.541650 -0.000003 0.000006 -0.000001 0.000003 -0.000001 0.000002 0.000002 -0.000000 -0.000002 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000002 -0.000002 0.000000 0.000002 -0.000002 -0.000000 -0.513613 -0.051262 0.000718 -0.169152 -0.000662 0.010597 -0.000179 0.715756 -0.010450 -0.000007 0.000017 -0.000031 0.000000 0.000000 -0.000000 -0.000007 0.000016 -0.000029 -0.000001 0.000000 -0.000000 -0.000000 0.000003 0.000137 -0.512103 0.047969 0.001358 -0.236416 0.000134 -0.001998 -0.000453 -0.809841 0.012020 0.000010 -0.000012 0.000024 -0.000000 0.000000 0.000000 0.000012 -0.000012 0.000022 -0.000001 0.000000 0.000000 0.000000 0.000002 -0.000100 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 0.728735 -0.000000 -0.000000 -0.491035 0.002468 0.035844 -0.639294 0.000872 0.025455 1.826671 -0.000000 -0.000000 1.882251 -0.000000 -0.000000 0.000002 0.000022 -179.999991 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -7.883876 -2.637414 4.008919 -11.172386 1.379562 -76.133093 -0.000001 -13.985348 -0.000002 0.570626 1.069890 -8.226213 -0.000000 -0.000001 0.000001 -0.000000 -0.000001 0.000000 -0.000000 0.000002 -0.000000 -0.000000 0.000000 -0.000000 -7.883879 2.637413 -4.008919 -9.450590 16.683987 74.984713 -0.000001 13.204133 -0.000001 1.896638 0.764643 18.627854 -0.000000 -0.000002 -0.000000 0.000001 0.000002 -0.000002 -0.000000 0.000002 -0.000002 0.000001 -0.000000 0.000000 0.000001 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000001 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.623262 -0.062207 0.000812 -0.205261 -0.000807 0.012829 -0.000199 0.868572 -0.012676 -0.000009 0.000016 -0.000032 -0.000000 -0.000000 -0.000000 -0.000009 0.000016 -0.000032 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 -0.621430 0.058208 0.001704 -0.286884 0.000163 -0.002404 -0.000525 -0.982757 0.014588 0.000011 -0.000013 0.000026 0.000000 0.000000 -0.000000 0.000014 -0.000014 0.000024 -0.000001 -0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 0.866456 -0.000000 -0.000000 -0.583826 0.002900 0.042620 -0.760108 0.001005 0.030266 2.172170 -0.000000 -0.000000 2.238285 -0.000000 -0.000000 0.000002 0.000022 -179.999991 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -9.395320 -3.212200 4.744713 -12.468548 1.616886 -74.561248 0.000000 -16.836544 -0.000001 0.433510 1.289004 -8.534641 -0.000001 -0.000007 0.000001 -0.000001 0.000000 0.000001 0.000001 -0.000003 -0.000001 0.000000 0.000000 -0.000001 -9.395323 3.212201 -4.744713 -10.530413 16.534527 73.508449 -0.000002 15.865845 0.000001 1.757072 0.844508 19.662277 -0.000002 0.000003 0.000000 0.000003 -0.000003 0.000001 -0.000000 0.000001 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.741044 -0.073963 0.000889 -0.244047 -0.000965 0.015228 -0.000213 1.032732 -0.015074 -0.000012 0.000014 -0.000027 0.000000 0.000000 -0.000000 -0.000012 0.000015 -0.000028 -0.000001 0.000000 -0.000000 -0.000000 0.000003 0.000137 -0.738867 0.069206 0.002098 -0.341095 0.000194 -0.002839 -0.000596 -1.168507 0.017348 0.000010 -0.000015 0.000027 -0.000000 -0.000000 0.000000 0.000010 -0.000015 0.000027 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000099 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 1.012929 -0.000000 -0.000000 -0.682512 0.003347 0.049827 -0.888598 0.001135 0.035384 2.539713 -0.000001 -0.000000 2.617042 -0.000000 -0.000000 0.000002 0.000022 -179.999991 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -11.008448 -3.849682 5.516903 -13.803992 1.842781 -72.870469 -0.000001 -19.938973 -0.000004 0.282111 1.523457 -8.829893 -0.000001 -0.000003 0.000000 0.000001 0.000003 0.000001 0.000001 -0.000001 -0.000003 0.000001 0.000000 -0.000000 -11.008452 3.849681 -5.516904 -11.659388 16.360637 71.912166 -0.000003 18.751690 -0.000004 1.585391 0.920934 20.646222 -0.000001 -0.000001 -0.000000 0.000001 0.000002 -0.000001 -0.000000 0.000004 -0.000001 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.866311 -0.086467 0.000945 -0.285295 -0.001135 0.017777 -0.000224 1.207328 -0.017624 -0.000009 0.000016 -0.000027 0.000000 -0.000000 -0.000000 -0.000011 0.000016 -0.000027 -0.000002 0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.863766 0.080901 0.002540 -0.398747 0.000228 -0.003302 -0.000661 -1.366071 0.020281 0.000009 -0.000012 0.000026 0.000000 0.000000 -0.000000 0.000011 -0.000013 0.000024 -0.000000 0.000000 0.000000 0.000000 0.000002 -0.000099 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 1.167395 -0.000000 -0.000000 -0.786581 0.003805 0.057428 -1.024098 0.001260 0.040781 2.927399 -0.000001 -0.000001 3.016562 -0.000000 -0.000001 0.000002 0.000022 -179.999991 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -12.714996 -4.550743 6.318331 -15.176247 2.050260 -71.067831 0.000000 -23.286615 -0.000005 0.117613 1.772051 -9.112035 -0.000002 -0.000005 0.000000 -0.000001 0.000001 0.000001 0.000000 0.000000 -0.000002 -0.000001 -0.000000 0.000000 -12.715001 4.550741 -6.318331 -12.836052 16.169981 70.201818 -0.000002 21.854179 0.000000 1.383854 0.993257 21.580971 0.000002 0.000004 0.000000 -0.000001 0.000001 -0.000002 -0.000002 -0.000002 -0.000002 0.000001 -0.000000 -0.000000 0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.998412 -0.099653 0.000974 -0.328794 -0.001316 0.020468 -0.000227 1.391449 -0.020307 -0.000010 0.000017 -0.000033 0.000000 0.000000 -0.000000 -0.000010 0.000016 -0.000031 -0.000002 0.000000 -0.000000 -0.000000 0.000003 0.000137 -0.995479 0.093234 0.003035 -0.459544 0.000265 -0.003791 -0.000720 -1.574420 0.023371 0.000008 -0.000013 0.000025 -0.000000 0.000000 -0.000000 0.000009 -0.000013 0.000023 -0.000000 0.000000 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 1.329093 -0.000000 -0.000000 -0.895519 0.004271 0.065386 -1.165941 0.001376 0.046431 3.333325 -0.000000 -0.000001 3.434888 -0.000000 -0.000001 0.000002 0.000022 -179.999991 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 -14.506395 -5.315690 7.141578 -16.582104 2.232591 -69.161157 -0.000002 -26.871218 -0.000005 -0.058810 2.033562 -9.381133 0.000000 -0.000001 -0.000000 -0.000000 0.000001 0.000002 0.000000 0.000005 -0.000002 0.000001 -0.000001 -0.000000 -14.506401 5.315690 -7.141579 -14.058394 15.970208 68.384086 -0.000004 25.163971 -0.000002 1.154736 1.060970 22.467815 0.000004 0.000002 -0.000001 -0.000002 -0.000002 0.000000 -0.000003 -0.000003 -0.000001 -0.000001 -0.000001 0.000001 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -1.136696 -0.113456 0.000972 -0.374327 -0.001508 0.023282 -0.000218 1.584201 -0.023122 -0.000009 0.000016 -0.000031 -0.000000 0.000000 0.000000 -0.000011 0.000016 -0.000030 -0.000001 0.000000 -0.000000 -0.000000 0.000003 0.000136 -1.133358 0.106143 0.003583 -0.523186 0.000304 -0.004302 -0.000763 -1.792534 0.026610 0.000008 -0.000012 0.000026 -0.000000 -0.000000 -0.000000 0.000009 -0.000012 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 1.497264 -0.000000 -0.000000 -1.008815 0.004738 0.073662 -1.313460 0.001484 0.052307 3.755589 -0.000000 -0.000001 3.870054 -0.000000 -0.000001 0.000003 0.000022 -179.999991 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -16.373784 -6.144136 7.979042 -18.017587 2.383416 -67.159146 -0.000002 -30.681736 -0.000005 -0.246021 2.306751 -9.637280 -0.000002 -0.000003 -0.000000 -0.000003 -0.000001 -0.000001 0.000002 0.000006 -0.000002 -0.000000 0.000000 -0.000000 -16.373787 6.144136 -7.979045 -15.323791 15.768894 66.466381 0.000002 28.669538 -0.000001 0.900276 1.123704 23.308055 0.000001 0.000002 0.000000 0.000003 -0.000002 0.000000 0.000001 0.000001 0.000000 0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -1.280515 -0.127811 0.000935 -0.421682 -0.001710 0.026210 -0.000202 1.784667 -0.026048 -0.000009 0.000016 -0.000031 -0.000000 0.000000 -0.000000 -0.000009 0.000016 -0.000030 -0.000001 -0.000000 -0.000000 -0.000000 0.000003 0.000137 -1.276754 0.119567 0.004186 -0.589372 0.000344 -0.004833 -0.000804 -2.019384 0.029974 0.000004 -0.000012 0.000024 0.000000 -0.000000 -0.000000 0.000007 -0.000012 0.000023 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 1.671146 -0.000000 -0.000000 -1.125958 0.005204 0.082221 -1.465988 0.001578 0.058383 4.192276 -0.000001 -0.000001 4.320093 -0.000001 -0.000001 0.000001 0.000022 -179.999991 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 0.000000 -0.000000 0.000000 0.000000 -18.308027 -7.034893 8.823028 -19.477929 2.496885 -65.071281 -0.000001 -34.703928 -0.000009 -0.442879 2.590354 -9.880568 -0.000002 0.000000 -0.000000 -0.000001 -0.000001 -0.000001 0.000001 0.000006 -0.000005 0.000002 0.000000 -0.000002 -18.308030 7.034889 -8.823026 -16.628881 15.573405 64.456946 -0.000005 32.356874 -0.000001 0.622724 1.181192 24.102961 -0.000003 0.000005 0.000002 -0.000001 -0.000000 -0.000000 -0.000004 -0.000000 0.000001 -0.000002 -0.000000 0.000001 0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -1.429216 -0.142654 0.000859 -0.470642 -0.001921 0.029237 -0.000169 1.991947 -0.029075 -0.000014 0.000017 -0.000033 -0.000000 0.000000 -0.000000 -0.000013 0.000017 -0.000034 -0.000001 0.000001 0.000000 -0.000000 0.000002 0.000137 -1.425019 0.133445 0.004844 -0.657804 0.000386 -0.005384 -0.000829 -2.253945 0.033455 0.000009 -0.000012 0.000027 -0.000000 0.000000 0.000000 0.000008 -0.000012 0.000026 -0.000001 0.000000 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 1.849977 -0.000000 -0.000000 -1.246433 0.005665 0.091024 -1.622857 0.001658 0.064632 4.641473 -0.000000 -0.000001 4.783028 -0.000001 -0.000001 0.000002 0.000022 -179.999991 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 -20.299809 -7.985884 9.665810 -20.957599 2.567798 -62.907907 -0.000002 -38.920078 -0.000006 -0.648268 2.883091 -10.111111 -0.000000 -0.000001 -0.000001 -0.000002 -0.000001 -0.000001 0.000001 0.000001 -0.000001 -0.000000 -0.000001 0.000000 -20.299814 7.985884 -9.665810 -17.969557 15.390788 62.364880 -0.000001 36.209329 -0.000001 0.324313 1.233280 24.853790 -0.000002 0.000003 -0.000001 0.000000 -0.000000 -0.000001 -0.000003 0.000003 -0.000002 -0.000002 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -1.582149 -0.157919 0.000739 -0.520994 -0.002141 0.032349 -0.000129 2.205129 -0.032187 -0.000012 0.000016 -0.000030 0.000000 0.000000 -0.000000 -0.000012 0.000016 -0.000029 -0.000001 0.000001 0.000000 -0.000000 0.000003 0.000137 -1.577504 0.147716 0.005559 -0.728182 0.000432 -0.005948 -0.000842 -2.495192 0.037040 0.000004 -0.000013 0.000025 0.000000 0.000000 0.000000 0.000004 -0.000013 0.000024 -0.000000 0.000000 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 2.032999 -0.000000 -0.000000 -1.369729 0.006118 0.100034 -1.783399 0.001724 0.071028 5.101262 -0.000000 -0.000001 5.256889 -0.000001 -0.000001 0.000002 0.000022 -179.999991 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -22.339647 -8.994127 10.499809 -22.450347 2.591753 -60.680145 -0.000001 -43.308741 -0.000004 -0.861093 3.183681 -10.329047 -0.000003 -0.000002 -0.000001 0.000004 -0.000001 -0.000000 0.000001 0.000001 0.000003 0.000003 -0.000001 -0.000001 -22.339653 8.994125 -10.499806 -19.340960 15.227652 60.200154 -0.000006 40.207534 -0.000004 0.007247 1.279902 25.561809 0.000000 0.000002 -0.000003 0.000001 0.000000 -0.000001 -0.000002 0.000001 -0.000001 -0.000001 -0.000001 0.000001 0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -1.738664 -0.173541 0.000576 -0.572525 -0.002370 0.035534 -0.000073 2.423308 -0.035373 -0.000016 0.000014 -0.000030 0.000000 0.000000 0.000000 -0.000016 0.000015 -0.000029 -0.000000 0.000000 0.000000 -0.000000 0.000003 0.000137 -1.733560 0.162319 0.006330 -0.800208 0.000478 -0.006526 -0.000833 -2.742095 0.040705 0.000009 -0.000012 0.000029 0.000000 -0.000000 -0.000000 0.000009 -0.000013 0.000030 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 2.219447 -0.000000 -0.000000 -1.495332 0.006560 0.109214 -1.946948 0.001770 0.077544 5.569724 -0.000000 -0.000001 5.739686 -0.000001 -0.000001 0.000002 0.000022 -179.999991 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -24.417991 -10.055667 11.317651 -23.949307 2.565259 -58.399804 -0.000002 -47.844765 -0.000006 -1.080263 3.490802 -10.534529 -0.000001 0.000001 -0.000001 0.000002 0.000000 0.000001 0.000000 -0.000002 0.000001 -0.000002 -0.000000 -0.000000 -24.418003 10.055666 -11.317651 -20.737409 15.089963 57.973532 -0.000006 44.329417 -0.000004 -0.326268 1.321081 26.228268 0.000002 0.000001 -0.000001 -0.000001 -0.000000 -0.000000 -0.000003 -0.000002 -0.000000 -0.000002 -0.000001 0.000001 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 -0.000000 -1.898109 -0.189454 0.000365 -0.625020 -0.002604 0.038778 -0.000005 2.645577 -0.038621 -0.000012 0.000016 -0.000033 0.000000 -0.000000 -0.000000 -0.000011 0.000016 -0.000033 -0.000001 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -1.892537 0.177193 0.007157 -0.873580 0.000526 -0.007115 -0.000812 -2.993626 0.044440 0.000011 -0.000014 0.000026 0.000000 -0.000000 -0.000000 0.000011 -0.000014 0.000025 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000099 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 2.408562 -0.000000 -0.000000 -1.622729 0.006987 0.118526 -2.112836 0.001800 0.084153 6.044930 -0.000001 -0.000001 6.229440 -0.000001 -0.000001 0.000001 0.000022 -179.999991 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 0.000000 -0.000000 0.000000 0.000000 -26.525294 -11.165635 12.112356 -25.447137 2.485872 -56.079268 -0.000010 -52.499645 -0.000012 -1.304689 3.803149 -10.727721 -0.000002 -0.000003 0.000001 0.000000 -0.000001 -0.000000 -0.000001 -0.000001 -0.000002 -0.000000 0.000001 -0.000002 -26.525306 11.165631 -12.112355 -22.152566 14.982978 55.696607 0.000001 48.550429 -0.000006 -0.674034 1.356911 26.854396 -0.000001 -0.000001 -0.000001 0.000001 -0.000001 0.000001 -0.000001 -0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -2.059834 -0.205595 0.000106 -0.678265 -0.002846 0.042068 0.000075 2.871023 -0.041913 -0.000013 0.000017 -0.000033 -0.000000 0.000000 0.000000 -0.000014 0.000017 -0.000033 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 -2.053788 0.192278 0.008037 -0.948001 0.000575 -0.007712 -0.000774 -3.248761 0.048232 0.000006 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000006 -0.000014 0.000022 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000099 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 2.599582 -0.000000 -0.000000 -1.751409 0.007397 0.127933 -2.280391 0.001809 0.090828 6.524960 -0.000001 -0.000001 6.724171 -0.000001 -0.000001 0.000003 0.000022 -179.999991 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 0.000000 0.000000 0.000000 0.000000 -28.652063 -12.318247 12.877398 -26.936157 2.352263 -53.731336 0.000007 -57.241773 -0.000010 -1.533317 4.119395 -10.908826 -0.000002 -0.000006 0.000003 0.000000 -0.000001 -0.000000 0.000003 0.000001 -0.000002 0.000001 0.000001 -0.000002 -28.652070 12.318244 -12.877400 -23.579468 14.911010 53.381603 0.000000 52.843917 -0.000006 -1.033910 1.387551 27.441421 -0.000001 0.000001 -0.000002 0.000000 0.000000 -0.000000 -0.000004 0.000003 0.000002 -0.000002 -0.000001 0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 -2.223187 -0.221898 -0.000202 -0.732044 -0.003094 0.045392 0.000174 3.098744 -0.045243 -0.000017 0.000016 -0.000030 0.000000 -0.000000 -0.000000 -0.000019 0.000016 -0.000029 -0.000002 0.000000 0.000000 -0.000000 0.000003 0.000136 -2.216663 0.207512 0.008969 -1.023170 0.000627 -0.008316 -0.000721 -3.506468 0.052063 0.000008 -0.000012 0.000025 0.000000 0.000000 -0.000000 0.000010 -0.000012 0.000023 -0.000000 0.000000 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 2.791745 -0.000000 -0.000001 -1.880858 0.007789 0.137397 -2.448951 0.001800 0.097544 7.007887 -0.000001 -0.000001 7.221879 -0.000001 -0.000001 0.000002 0.000022 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000001 0.000000 0.000000 -30.788925 -13.506918 13.606866 -28.408517 2.164276 -51.369060 -0.000007 -62.037222 -0.000013 -1.765077 4.438200 -11.078055 -0.000002 0.000002 0.000001 -0.000001 0.000001 -0.000003 0.000002 -0.000001 -0.000001 0.000000 0.000002 -0.000000 -30.788925 13.506912 -13.606862 -25.010618 14.877410 51.041242 -0.000000 57.181582 -0.000009 -1.403709 1.413195 27.990551 0.000002 0.000001 0.000001 -0.000000 -0.000001 -0.000001 -0.000001 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -2.387517 -0.238297 -0.000559 -0.786146 -0.003345 0.048736 0.000286 3.327830 -0.048596 -0.000018 0.000016 -0.000032 -0.000000 0.000000 -0.000000 -0.000018 0.000017 -0.000030 -0.000001 0.000000 -0.000000 -0.000000 0.000003 0.000138 -2.380512 0.222834 0.009951 -1.098789 0.000679 -0.008922 -0.000642 -3.765715 0.055915 0.000011 -0.000012 0.000028 0.000000 0.000000 -0.000000 0.000011 -0.000013 0.000026 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 2.984289 -0.000000 -0.000001 -2.010566 0.008160 0.146880 -2.617844 0.001770 0.104272 7.491773 -0.000001 -0.000002 7.720591 -0.000001 -0.000001 0.000001 0.000022 -179.999991 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -32.926645 -14.724346 14.295537 -29.856423 1.922946 -49.005538 -0.000014 -66.850634 -0.000019 -1.998916 4.758239 -11.235642 -0.000001 -0.000002 0.000001 0.000003 0.000001 -0.000001 0.000004 0.000000 -0.000001 0.000001 0.000000 0.000002 -32.926648 14.724349 -14.295543 -26.438213 14.884396 48.688659 -0.000002 61.534076 -0.000014 -1.781313 1.434118 28.502994 0.000002 0.000003 -0.000000 0.000003 0.000002 -0.000001 0.000003 0.000001 -0.000002 0.000001 -0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 0.000000 -2.552174 -0.254727 -0.000963 -0.840355 -0.003601 0.052083 0.000406 3.557363 -0.051949 -0.000009 0.000016 -0.000034 -0.000000 -0.000000 0.000000 -0.000010 0.000016 -0.000034 -0.000001 0.000001 0.000000 -0.000000 0.000002 0.000135 -2.544687 0.238184 0.010978 -1.174557 0.000731 -0.009530 -0.000550 -4.025481 0.059781 0.000008 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000009 -0.000013 0.000023 -0.000001 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 3.176451 -0.000000 -0.000001 -2.140015 0.008508 0.156345 -2.786403 0.001721 0.110987 7.974696 -0.000001 -0.000001 8.218300 -0.000001 -0.000002 0.000002 0.000022 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -35.056246 -15.962669 14.939005 -31.272284 1.630493 -46.653774 -0.000021 -71.646089 -0.000023 -2.233793 5.078168 -11.381867 0.000002 -0.000004 0.000001 -0.000002 0.000003 -0.000004 0.000000 -0.000000 -0.000003 -0.000003 0.000000 0.000001 -35.056246 15.962666 -14.939002 -27.854200 14.933013 46.337127 0.000008 65.871717 -0.000012 -2.164586 1.450600 28.979956 -0.000002 -0.000000 -0.000001 0.000003 -0.000003 -0.000001 -0.000002 0.000001 -0.000001 -0.000000 -0.000002 0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -2.716505 -0.271124 -0.001415 -0.894457 -0.003859 0.055427 0.000544 3.786449 -0.055305 -0.000016 0.000018 -0.000035 -0.000000 -0.000000 0.000000 -0.000016 0.000017 -0.000034 -0.000001 0.000000 -0.000000 -0.000000 0.000003 0.000137 -2.708537 0.253501 0.012047 -1.250175 0.000785 -0.010137 -0.000446 -4.284732 0.063637 0.000013 -0.000014 0.000028 -0.000000 0.000000 -0.000000 0.000013 -0.000014 0.000026 -0.000001 0.000000 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 3.367471 -0.000000 -0.000001 -2.268696 0.008833 0.165755 -2.953959 0.001652 0.117663 8.454726 -0.000001 -0.000002 8.713026 -0.000001 -0.000002 0.000001 0.000022 -179.999991 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000000 0.000000 0.000000 -37.168926 -17.213567 15.533665 -32.648881 1.290201 -44.326411 -0.000031 -76.388194 -0.000020 -2.468644 5.396645 -11.516992 0.000000 -0.000001 -0.000003 0.000003 -0.000001 0.000001 0.000000 -0.000000 0.000001 -0.000002 0.000001 0.000000 -37.168920 17.213559 -15.533667 -29.250582 15.023206 43.999935 0.000003 70.165208 -0.000014 -2.551407 1.462972 29.422631 0.000000 0.000000 0.000003 -0.000001 -0.000001 -0.000001 0.000004 0.000001 -0.000000 0.000001 -0.000002 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -2.879859 -0.287421 -0.001908 -0.948236 -0.004118 0.058750 0.000697 4.014167 -0.058636 -0.000016 0.000019 -0.000033 0.000000 -0.000000 -0.000000 -0.000016 0.000018 -0.000032 -0.000000 0.000001 0.000000 -0.000000 0.000003 0.000137 -2.871413 0.268723 0.013154 -1.325345 0.000839 -0.010740 -0.000318 -4.542435 0.067475 0.000006 -0.000015 0.000026 -0.000000 0.000000 -0.000000 0.000005 -0.000014 0.000025 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 3.556586 -0.000000 -0.000001 -2.396094 0.009135 0.175072 -3.119846 0.001566 0.124271 8.929932 -0.000001 -0.000002 9.202783 -0.000001 -0.000002 0.000002 0.000022 -179.999991 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 -39.256123 -18.468461 16.076886 -33.979559 0.906384 -42.035689 -0.000016 -81.043056 -0.000038 -2.702455 5.712322 -11.641351 -0.000000 0.000003 0.000000 -0.000001 0.000001 -0.000002 0.000002 0.000000 -0.000003 0.000001 0.000000 -0.000000 -39.256126 18.468461 -16.076889 -30.619519 15.153716 41.690153 -0.000007 74.386224 -0.000016 -2.939670 1.471578 29.832187 0.000000 0.000002 0.000002 0.000000 0.000000 0.000001 -0.000001 0.000001 0.000000 0.000002 0.000000 -0.000001 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -3.041587 -0.303555 -0.002444 -1.001481 -0.004379 0.062038 0.000857 4.239619 -0.061946 -0.000014 0.000017 -0.000032 0.000000 -0.000000 0.000000 -0.000015 0.000017 -0.000031 -0.000002 0.000000 -0.000000 -0.000000 0.000003 0.000136 -3.032666 0.283790 0.014292 -1.399765 0.000893 -0.011337 -0.000181 -4.797571 0.071275 0.000007 -0.000012 0.000028 0.000000 0.000001 0.000000 0.000008 -0.000013 0.000025 -0.000001 0.000000 0.000000 0.000000 0.000002 -0.000099 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 3.743034 -0.000000 -0.000001 -2.521697 0.009412 0.184258 -3.283394 0.001461 0.130786 9.398392 -0.000001 -0.000002 9.685585 -0.000001 -0.000002 0.000003 0.000022 -179.999991 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 -0.000001 -0.000000 -0.000000 -41.309513 -19.718664 16.566914 -35.258324 0.484220 -39.793160 -0.000062 -85.579115 -0.000077 -2.934160 6.023864 -11.755264 -0.000004 -0.000003 0.000000 -0.000001 -0.000001 -0.000002 -0.000001 0.000002 -0.000000 -0.000003 0.000001 0.000002 -41.309510 19.718657 -16.566912 -31.953500 15.322244 39.420427 0.000023 78.508079 -0.000022 -3.327285 1.476788 30.209828 0.000000 0.000008 -0.000000 0.000004 0.000001 0.000001 0.000001 0.000000 0.000001 0.000002 0.000001 -0.000002 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 -0.000000 -3.201034 -0.319460 -0.003017 -1.053976 -0.004638 0.065282 0.001026 4.461883 -0.065197 -0.000017 0.000018 -0.000033 -0.000000 -0.000000 -0.000000 -0.000016 0.000017 -0.000032 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000137 -3.191648 0.298642 0.015455 -1.473138 0.000948 -0.011924 -0.000020 -5.049101 0.075024 0.000005 -0.000012 0.000025 -0.000000 0.000000 -0.000000 0.000006 -0.000014 0.000025 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 3.926056 -0.000000 -0.000001 -2.644994 0.009664 0.193276 -3.443937 0.001340 0.137181 9.858180 -0.000002 -0.000002 10.159444 -0.000001 -0.000002 0.000002 0.000022 -179.999991 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 -43.320939 -20.955502 17.002943 -36.479941 0.029610 -37.609760 -0.006237 -89.967771 -0.009818 -3.162717 6.329934 -11.859076 -0.000001 0.000003 0.000003 0.000003 -0.000001 -0.000002 0.000001 0.000000 0.000000 -0.000000 0.000000 -0.000000 -43.320946 20.955495 -17.002943 -33.245471 15.525537 37.202920 0.000018 82.506288 -0.000042 -3.712149 1.478973 30.556736 0.000002 -0.000002 -0.000001 0.000002 0.000002 0.000001 0.000001 0.000001 -0.000000 0.000002 0.000000 -0.000001 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -3.357553 -0.335071 -0.003622 -1.105505 -0.004895 0.068464 0.001210 4.680066 -0.068403 -0.000013 0.000015 -0.000029 0.000000 -0.000001 -0.000000 -0.000013 0.000014 -0.000029 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000137 -3.347709 0.313218 0.016637 -1.545163 0.001002 -0.012502 0.000149 -5.296007 0.078706 0.000003 -0.000014 0.000026 0.000000 0.000000 -0.000000 0.000006 -0.000014 0.000026 -0.000001 0.000000 0.000000 0.000000 0.000002 -0.000099 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 4.104888 -0.000001 -0.000001 -2.765469 0.009891 0.202089 -3.600806 0.001204 0.143430 10.307383 -0.000001 -0.000002 10.622378 -0.000001 -0.000002 0.000003 0.000022 -179.999991 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000000 0.000000 0.000000 -45.282412 -22.170490 17.385111 -37.639994 -0.450967 -35.495598 0.000077 -94.183917 0.000075 -3.387098 6.629196 -11.953188 -0.000001 -0.000002 0.000002 0.000002 -0.000001 -0.000001 0.000001 -0.000001 -0.000001 0.000001 -0.000000 0.000002 -45.282416 22.170485 -17.385108 -34.489006 15.759519 35.049116 0.000065 86.358754 -0.000103 -4.092181 1.478506 30.874087 0.000000 0.000003 0.000003 -0.000001 0.000002 0.000000 0.000002 0.000001 -0.000000 0.000003 0.000000 -0.000002 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -3.510489 -0.350323 -0.004254 -1.155860 -0.005150 0.071573 0.001398 4.893250 -0.071529 -0.000012 0.000015 -0.000029 -0.000000 0.000000 0.000000 -0.000013 0.000015 -0.000029 -0.000002 -0.000000 -0.000000 -0.000000 0.000002 0.000135 -3.500199 0.327457 0.017830 -1.615542 0.001055 -0.013066 0.000330 -5.537251 0.082304 0.000005 -0.000011 0.000028 -0.000000 0.000000 -0.000000 0.000008 -0.000013 0.000026 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000099 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 4.278768 -0.000001 -0.000001 -2.882611 0.010095 0.210658 -3.753333 0.001055 0.149504 10.744069 -0.000001 -0.000002 11.072415 -0.000002 -0.000002 0.000003 0.000022 -179.999991 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 -0.000000 -47.186102 -23.355454 17.714406 -38.734874 -0.950663 -33.460038 0.000081 -98.206113 0.000038 -3.606249 6.920319 -12.037975 0.000000 -0.000003 -0.000002 0.000000 0.000002 0.000001 -0.000003 0.000005 -0.000001 -0.000000 0.000001 0.000001 -47.186109 23.355453 -17.714412 -35.678309 16.019418 32.969733 -0.002995 90.046099 0.009379 -4.465302 1.475787 31.163052 0.000003 -0.000002 -0.000001 -0.000003 -0.000000 -0.000001 0.000003 0.000002 -0.000001 0.000004 -0.000000 -0.000001 -0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000001 -0.000000 0.000001 -0.000002 0.000000 0.000001 -0.000002 0.000000 -3.659195 -0.365152 -0.004909 -1.204819 -0.005401 0.074597 0.001591 5.100525 -0.074566 -0.000012 0.000018 -0.000031 -0.000000 0.000000 0.000000 -0.000013 0.000019 -0.000034 -0.000001 0.000000 -0.000000 -0.000000 0.000002 0.000136 -3.648468 0.341299 0.019027 -1.683974 0.001108 -0.013615 0.000523 -5.771812 0.085805 0.000004 -0.000014 0.000028 -0.000000 -0.000000 -0.000000 0.000002 -0.000014 0.000026 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000099 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 4.446939 -0.000001 -0.000001 -2.995910 0.010275 0.218946 -3.900852 0.000897 0.155380 11.166329 -0.000001 -0.000002 11.507580 -0.000002 -0.000002 0.000003 0.000022 -179.999991 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 -0.000001 -0.000000 0.000000 -49.024212 -24.502619 17.992701 -39.761810 -1.462357 -31.511597 0.000048 -102.016614 0.000019 -3.819108 7.201978 -12.113868 0.000002 0.000000 0.000001 -0.000001 0.000001 -0.000000 -0.000000 0.000000 0.000001 -0.000002 -0.000000 -0.000000 -49.024226 24.502616 -17.992694 -36.808371 16.299975 30.974696 -0.000053 93.551653 0.000165 -4.829427 1.471179 31.424819 -0.000001 0.000001 0.000001 -0.000002 0.000002 -0.000000 0.000001 0.000000 -0.000004 -0.000001 0.000002 -0.000002 -0.000000 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000001 0.000000 0.000001 -0.000001 0.000000 -3.803016 -0.379492 -0.005577 -1.252174 -0.005645 0.077521 0.001792 5.300995 -0.077513 -0.000016 0.000018 -0.000030 -0.000000 -0.000000 -0.000000 -0.000017 0.000017 -0.000030 -0.000001 0.000001 0.000000 -0.000000 0.000003 0.000136 -3.791871 0.354683 0.020219 -1.750160 0.001159 -0.014146 0.000716 -5.998663 0.089193 0.000001 -0.000012 0.000024 -0.000000 0.000000 -0.000000 0.000003 -0.000013 0.000023 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 4.608638 -0.000001 -0.000001 -3.104850 0.010433 0.226915 -4.042695 0.000732 0.161028 11.572254 -0.000002 -0.000002 11.925908 -0.000002 -0.000002 0.000001 0.000022 -179.999991 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 -50.789065 -25.604661 18.222574 -40.718787 -1.978852 -29.658099 0.000031 -105.601220 0.000024 -4.024627 7.472859 -12.181298 -0.000006 -0.000001 -0.000001 0.000000 -0.000001 0.000001 -0.000004 0.000002 -0.000000 0.000002 0.000001 0.000001 -50.789075 25.604660 -18.222578 -37.874813 16.595557 29.073124 -0.000034 96.861447 0.000065 -5.182488 1.465061 31.660560 -0.000002 0.000003 0.000000 -0.000003 -0.000001 0.000000 0.000001 0.000005 -0.000000 -0.000000 0.000002 -0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 -3.941306 -0.393278 -0.006255 -1.297706 -0.005882 0.080333 0.001993 5.493741 -0.080343 -0.000020 0.000019 -0.000034 0.000000 -0.000000 0.000000 -0.000021 0.000019 -0.000034 -0.000001 -0.000000 -0.000000 -0.000000 0.000003 0.000137 -3.929757 0.367550 0.021396 -1.813802 0.001209 -0.014656 0.000925 -6.216775 0.092456 0.000002 -0.000014 0.000029 -0.000000 -0.000000 0.000000 0.000005 -0.000013 0.000029 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 4.763104 -0.000001 -0.000001 -3.208918 0.010570 0.234529 -4.178195 0.000559 0.166424 11.959940 -0.000001 -0.000002 12.325433 -0.000002 -0.000002 0.000000 0.000022 -179.999991 -0.000002 -0.000000 0.000000 -0.000002 -0.000000 0.000000 -0.000002 -0.000000 0.000000 0.000001 -0.000000 0.000000 -52.472935 -26.654798 18.407343 -41.604485 -2.492998 -27.906637 0.000036 -108.948860 0.000012 -4.221751 7.731660 -12.240719 -0.000001 0.000001 0.000000 -0.000001 -0.000001 0.000002 -0.000001 0.000000 0.000001 -0.000001 0.000002 0.000001 -52.472935 26.654794 -18.407341 -38.874042 16.900338 27.273318 -0.000034 99.963951 0.000026 -5.522399 1.457790 31.871466 -0.000002 0.000001 0.000000 0.000002 0.000001 -0.000000 0.000000 -0.000000 0.000002 -0.000002 -0.000001 -0.000001 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 0.000001 -0.000001 0.000000 0.000001 -0.000001 0.000000 -4.073410 -0.406447 -0.006933 -1.341204 -0.006111 0.083018 0.002195 5.677868 -0.083053 -0.000019 0.000019 -0.000030 0.000000 -0.000000 0.000000 -0.000019 0.000019 -0.000029 -0.000002 0.000000 -0.000000 -0.000000 0.000003 0.000135 -4.061476 0.379838 0.022549 -1.874598 0.001258 -0.015142 0.001124 -6.425124 0.095571 0.000006 -0.000013 0.000030 -0.000000 0.000000 -0.000000 0.000006 -0.000013 0.000029 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000099 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 4.909576 -0.000001 -0.000001 -3.307606 0.010687 0.241749 -4.306686 0.000383 0.171540 12.327487 -0.000002 -0.000002 12.704183 -0.000002 -0.000002 0.000002 0.000022 -179.999991 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -54.068112 -27.646804 18.550896 -42.418217 -2.997785 -26.263723 0.000025 -112.051296 0.000012 -4.409403 7.977070 -12.292594 -0.000001 0.000001 0.000001 0.000003 0.000001 0.000001 -0.000001 0.000002 0.000002 -0.000000 -0.000001 -0.000000 -54.068126 27.646796 -18.550889 -39.803040 17.208433 25.582878 -0.000022 102.849781 0.000020 -5.847092 1.449703 32.058702 0.000002 0.000002 -0.000002 0.000001 -0.000002 -0.000001 -0.000000 0.000002 0.000003 -0.000001 0.000004 -0.000002 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000002 -0.000000 -4.198683 -0.418933 -0.007604 -1.382453 -0.006330 0.085565 0.002392 5.852463 -0.085620 -0.000016 0.000018 -0.000031 0.000000 -0.000000 0.000000 -0.000016 0.000018 -0.000030 -0.000002 -0.000000 -0.000000 -0.000000 0.000002 0.000137 -4.186382 0.391489 0.023669 -1.932251 0.001304 -0.015605 0.001334 -6.622689 0.098525 0.000002 -0.000013 0.000028 -0.000000 0.000001 -0.000000 0.000002 -0.000013 0.000026 -0.000001 0.000000 0.000000 0.000000 0.000002 -0.000099 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 5.047297 -0.000001 -0.000001 -3.400397 0.010785 0.248537 -4.427499 0.000209 0.176350 12.672983 -0.000002 -0.000002 13.060218 -0.000002 -0.000002 0.000003 0.000022 -179.999991 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -55.566820 -28.574974 18.657596 -43.159754 -3.486435 -24.735330 0.000019 -114.902483 0.000004 -4.586521 8.207791 -12.337399 0.000002 -0.000002 0.000002 0.000000 -0.000001 0.000001 -0.000001 0.000001 0.000003 -0.000004 0.000001 -0.000001 -55.566826 28.574971 -18.657601 -40.659423 17.514017 24.008692 -0.000017 105.511485 0.000030 -6.154488 1.441131 32.223463 0.000000 0.000001 0.000000 -0.000000 -0.000005 0.000001 0.000002 0.000003 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -4.316472 -0.430671 -0.008260 -1.421238 -0.006537 0.087959 0.002586 6.016621 -0.088035 -0.000018 0.000016 -0.000032 0.000000 -0.000000 0.000000 -0.000018 0.000017 -0.000033 -0.000001 0.000001 -0.000000 -0.000000 0.000003 0.000136 -4.303826 0.402441 0.024745 -1.986461 0.001349 -0.016040 0.001534 -6.808440 0.101307 0.000001 -0.000014 0.000029 0.000000 0.000001 -0.000000 0.000002 -0.000015 0.000027 -0.000000 0.000000 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 5.175506 -0.000001 -0.000001 -3.486781 0.010867 0.254858 -4.539970 0.000037 0.180828 12.994546 -0.000002 -0.000002 13.391581 -0.000002 -0.000002 0.000004 0.000022 -179.999991 0.000002 -0.000000 -0.000000 0.000002 -0.000000 -0.000000 0.000002 -0.000000 -0.000000 0.000001 -0.000000 0.000000 -56.961251 -29.434140 18.732216 -43.829314 -3.952473 -23.327017 0.000017 -117.498187 0.000012 -4.752013 8.422544 -12.375628 0.000002 -0.000002 0.000002 -0.000000 -0.000001 -0.000000 -0.000000 0.000002 -0.000001 -0.000000 0.000003 -0.000001 -56.961257 29.434130 -18.732221 -41.441254 17.811436 22.557157 -0.000018 107.943073 0.000018 -6.442514 1.432380 32.366918 0.000000 0.000004 -0.000001 0.000001 -0.000001 0.000000 0.000002 0.000006 0.000002 0.000001 0.000004 -0.000002 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -4.426125 -0.441598 -0.008892 -1.457347 -0.006731 0.090189 0.002770 6.169438 -0.090288 -0.000015 0.000018 -0.000032 0.000000 0.000000 0.000000 -0.000016 0.000017 -0.000030 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 -4.413160 0.412635 0.025767 -2.036929 0.001390 -0.016444 0.001737 -6.981353 0.103901 0.000004 -0.000015 0.000029 0.000000 0.000000 -0.000000 0.000005 -0.000015 0.000029 -0.000001 0.000000 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 5.293443 -0.000001 -0.000001 -3.566249 0.010934 0.260672 -4.643429 -0.000129 0.184946 13.290278 -0.000002 -0.000002 13.696321 -0.000002 -0.000002 -0.000000 0.000022 -179.999991 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000000 -0.000000 0.000000 -58.243441 -30.219561 18.779745 -44.427331 -4.389799 -22.044080 0.000021 -119.835368 0.000009 -4.904799 8.620041 -12.407769 0.000001 -0.000000 0.000001 -0.000001 -0.000001 0.000001 0.000000 0.000004 0.000001 0.000001 -0.000001 -0.000000 -58.243448 30.219544 -18.779742 -42.146963 18.095247 21.234194 -0.000015 110.139594 0.000018 -6.709084 1.423729 32.490267 -0.000001 0.000001 0.000000 -0.000001 -0.000001 0.000002 0.000002 0.000003 0.000001 0.000001 -0.000001 -0.000000 0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 -0.000000 -4.526994 -0.451648 -0.009492 -1.490563 -0.006912 0.092239 0.002948 6.310008 -0.092358 -0.000019 0.000019 -0.000041 -0.000000 -0.000000 0.000000 -0.000020 0.000019 -0.000041 -0.000001 0.000001 0.000000 -0.000000 0.000003 0.000137 -4.513736 0.422010 0.026724 -2.083354 0.001428 -0.016815 0.001923 -7.140411 0.106287 0.000001 -0.000014 0.000027 -0.000000 -0.000000 0.000000 0.000003 -0.000014 0.000027 -0.000001 0.000000 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 5.400347 -0.000001 -0.000001 -3.638283 0.010987 0.265942 -4.737211 -0.000287 0.188679 13.558290 -0.000002 -0.000002 13.972483 -0.000002 -0.000003 0.000004 0.000022 -179.999991 0.000002 -0.000000 -0.000000 0.000002 -0.000000 -0.000000 0.000002 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 -59.405434 -30.926922 18.805326 -44.954444 -4.792649 -20.891605 0.000021 -121.911650 0.000006 -5.043775 8.799019 -12.434330 -0.000001 -0.000001 0.000001 -0.000001 -0.000000 0.000002 0.000001 0.000002 0.000000 -0.000000 0.000001 0.000000 -59.405447 30.926909 -18.805326 -42.775265 18.360336 20.045386 -0.000015 112.096832 0.000017 -6.952119 1.415435 32.594670 0.000000 -0.000000 0.000001 0.000000 -0.000001 0.000001 0.000003 0.000004 0.000001 -0.000001 0.000000 0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 -0.000001 0.000000 0.000001 -0.000001 0.000000 -4.618430 -0.460757 -0.010052 -1.520672 -0.007076 0.094098 0.003116 6.437428 -0.094236 -0.000015 0.000018 -0.000031 0.000000 0.000000 -0.000000 -0.000018 0.000018 -0.000030 -0.000002 0.000000 -0.000000 -0.000000 0.000003 0.000136 -4.604904 0.430507 0.027606 -2.125440 0.001463 -0.017153 0.002102 -7.284584 0.108450 0.000002 -0.000013 0.000027 0.000000 -0.000000 -0.000000 0.000000 -0.000012 0.000026 -0.000000 0.000000 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 5.495463 -0.000001 -0.000001 -3.702374 0.011029 0.270632 -4.820653 -0.000432 0.192000 13.796692 -0.000001 -0.000003 14.218144 -0.000002 -0.000003 0.000000 0.000022 -179.999991 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000002 0.000000 -0.000000 0.000001 -0.000000 -0.000000 -60.439162 -31.552226 18.814067 -45.411274 -5.155682 -19.874626 0.000019 -123.725052 0.000007 -5.167854 8.958201 -12.455800 -0.000000 -0.000002 -0.000002 -0.000000 -0.000000 -0.000000 -0.000000 0.000004 -0.000001 -0.000000 0.000000 0.000000 -60.439169 31.552216 -18.814075 -43.324976 18.601906 18.996175 -0.000016 113.810896 0.000015 -7.169536 1.407732 32.681332 -0.000000 0.000002 -0.000001 -0.000000 -0.000001 -0.000002 0.000003 0.000001 0.000001 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000001 0.000001 -0.000000 -0.000000 0.000001 -0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000001 0.000000 -4.699783 -0.468861 -0.010561 -1.547464 -0.007223 0.095751 0.003267 6.550797 -0.095909 -0.000017 0.000019 -0.000037 0.000000 0.000000 -0.000000 -0.000017 0.000019 -0.000037 -0.000001 0.000000 -0.000000 -0.000000 0.000003 0.000136 -4.686020 0.438066 0.028403 -2.162884 0.001495 -0.017452 0.002261 -7.412852 0.110377 0.000002 -0.000015 0.000028 0.000000 -0.000000 -0.000000 0.000003 -0.000014 0.000027 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000099 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 5.578029 -0.000001 -0.000001 -3.758010 0.011062 0.274702 -4.893086 -0.000560 0.194883 14.003606 -0.000002 -0.000002 14.431341 -0.000002 -0.000003 0.000001 0.000022 -179.999991 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -61.336506 -32.091698 18.810971 -45.798433 -5.473921 -18.998195 0.000020 -125.273237 0.000006 -5.275918 9.096340 -12.472686 0.000000 -0.000003 -0.000001 0.000001 -0.000001 0.000001 -0.000000 0.000005 -0.000001 -0.000001 -0.000001 -0.000000 -61.336513 32.091678 -18.810968 -43.794968 18.815551 18.091921 -0.000017 115.277788 0.000017 -7.359249 1.400826 32.751420 -0.000001 0.000002 0.000001 -0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 0.000001 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -4.770403 -0.475895 -0.011013 -1.570722 -0.007351 0.097188 0.003400 6.649203 -0.097363 -0.000013 0.000016 -0.000031 0.000000 -0.000000 0.000000 -0.000012 0.000016 -0.000031 -0.000001 -0.000001 -0.000000 -0.000000 0.000003 0.000137 -4.756434 0.444626 0.029103 -2.195390 0.001522 -0.017713 0.002406 -7.524191 0.112046 0.000004 -0.000013 0.000028 -0.000000 0.000000 0.000000 0.000004 -0.000014 0.000026 -0.000001 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 5.647284 -0.000001 -0.000001 -3.804679 0.011086 0.278117 -4.953844 -0.000673 0.197301 14.177132 -0.000002 -0.000002 14.610149 -0.000002 -0.000003 0.000002 0.000022 -179.999991 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000001 -0.000000 -0.000000 -62.089206 -32.541675 18.800697 -46.116307 -5.742791 -18.267544 0.000019 -126.553242 0.000005 -5.366858 9.212166 -12.485472 -0.000000 -0.000001 0.000000 0.000002 0.000000 0.000001 -0.000001 0.000004 -0.000000 0.000000 0.000003 -0.000000 -62.089206 32.541661 -18.800695 -44.183934 18.997253 17.338078 -0.000017 116.493138 0.000014 -7.519162 1.394900 32.806123 -0.000000 -0.000000 -0.000000 -0.000000 0.000001 0.000000 0.000002 0.000001 0.000000 -0.000000 0.000001 -0.000001 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -4.829640 -0.481795 -0.011399 -1.590230 -0.007460 0.098390 0.003514 6.731745 -0.098579 -0.000014 0.000017 -0.000034 0.000000 -0.000000 -0.000000 -0.000015 0.000017 -0.000032 -0.000002 0.000000 -0.000000 -0.000000 0.000003 0.000136 -4.815499 0.450129 0.029696 -2.222655 0.001545 -0.017931 0.002526 -7.617587 0.113453 0.000002 -0.000013 0.000030 -0.000000 -0.000001 0.000000 0.000003 -0.000015 0.000029 -0.000001 0.000001 0.000000 0.000000 0.000002 -0.000099 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 5.702471 -0.000001 -0.000001 -3.841867 0.011103 0.280838 -5.002257 -0.000763 0.199228 14.315391 -0.000002 -0.000003 14.752613 -0.000002 -0.000003 0.000002 0.000022 -179.999991 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -62.689068 -32.898501 18.787497 -46.364916 -5.958071 -17.688225 0.000017 -127.561132 0.000006 -5.439554 9.304434 -12.494631 -0.000000 -0.000002 -0.000001 -0.000001 0.000000 0.000003 0.000000 0.000005 -0.000001 -0.000002 0.000005 -0.000001 -62.689068 32.898494 -18.787508 -44.490401 19.143427 16.740375 -0.000018 117.451646 0.000014 -7.647188 1.390103 32.846615 -0.000000 0.000002 -0.000001 -0.000000 0.000000 -0.000000 -0.000002 -0.000001 -0.000000 -0.000000 0.000003 -0.000001 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -4.876844 -0.486496 -0.011711 -1.605776 -0.007546 0.099350 0.003608 6.797519 -0.099549 -0.000016 0.000020 -0.000034 0.000000 0.000000 0.000000 -0.000019 0.000019 -0.000033 -0.000001 0.000000 -0.000000 -0.000000 0.000003 0.000136 -4.862565 0.454513 0.030173 -2.244384 0.001563 -0.018105 0.002628 -7.692002 0.114568 0.000003 -0.000014 0.000031 0.000000 -0.000000 0.000000 0.000003 -0.000015 0.000031 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000099 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 5.742833 -0.000001 -0.000001 -3.869065 0.011114 0.282828 -5.037667 -0.000831 0.200637 14.416494 -0.000002 -0.000003 14.856790 -0.000002 -0.000003 0.000000 0.000022 -179.999991 -0.000002 0.000000 -0.000000 -0.000002 0.000000 -0.000000 -0.000002 0.000000 -0.000000 0.000000 0.000000 -0.000000 -63.127812 -33.158451 18.775044 -46.543983 -6.115939 -17.266090 0.000016 -128.291416 0.000008 -5.492875 9.371881 -12.500641 -0.000000 -0.000003 0.000001 0.000000 -0.000000 0.000000 -0.000001 0.000002 -0.000002 0.000000 0.000005 -0.000002 -63.127812 33.158444 -18.775041 -44.712549 19.250875 16.304870 -0.000016 118.147082 0.000016 -7.741231 1.386564 32.874073 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000001 0.000000 -0.000002 -0.000003 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 -4.911366 -0.489934 -0.011941 -1.617145 -0.007609 0.100053 0.003677 6.845621 -0.100259 -0.000018 0.000016 -0.000032 -0.000000 -0.000000 -0.000000 -0.000019 0.000016 -0.000031 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000137 -4.896987 0.457720 0.030523 -2.260273 0.001577 -0.018232 0.002703 -7.746430 0.115385 0.000004 -0.000014 0.000031 -0.000000 0.000001 -0.000000 0.000006 -0.000014 0.000029 -0.000001 -0.000000 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 5.767605 -0.000001 -0.000001 -3.885760 0.011121 0.284050 -5.059402 -0.000873 0.201502 14.478546 -0.000002 -0.000003 14.920724 -0.000002 -0.000003 0.000002 0.000022 -179.999991 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -63.397112 -33.317581 18.766223 -46.652600 -6.212894 -17.007603 0.000018 -128.736812 0.000004 -5.525706 9.413272 -12.503933 0.000000 -0.000004 -0.000001 0.000000 0.000001 0.000001 -0.000002 0.000007 0.000000 -0.000001 0.000004 -0.000000 -63.397099 33.317571 -18.766225 -44.848009 19.316917 16.038170 -0.000017 118.571592 0.000014 -7.799201 1.384386 32.889690 0.000000 -0.000000 0.000000 -0.000001 -0.000000 -0.000003 -0.000000 0.000002 -0.000000 -0.000000 0.000000 -0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -4.932555 -0.492044 -0.012084 -1.624124 -0.007648 0.100483 0.003717 6.875149 -0.100698 -0.000018 0.000018 -0.000030 -0.000000 -0.000000 -0.000000 -0.000019 0.000017 -0.000029 -0.000001 0.000001 0.000000 -0.000000 0.000003 0.000136 -4.918115 0.459687 0.030740 -2.270028 0.001585 -0.018310 0.002751 -7.779832 0.115893 -0.000000 -0.000012 0.000028 -0.000000 0.000001 0.000000 0.000002 -0.000013 0.000026 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000099 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 5.776034 -0.000001 -0.000001 -3.891438 0.011123 0.284465 -5.066793 -0.000887 0.201796 14.499655 -0.000002 -0.000003 14.942470 -0.000002 -0.000003 0.000003 0.000022 -179.999991 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000000 -0.000000 -0.000000 -63.488726 -33.371635 18.763018 -46.689268 -6.245853 -16.919741 0.000021 -128.887828 0.000009 -5.536896 9.427346 -12.504949 -0.000001 -0.000003 0.000001 0.000001 0.000000 0.000001 -0.000001 0.000004 0.000001 -0.000000 0.000001 -0.000000 -63.488726 33.371628 -18.763025 -44.893949 19.339327 15.947537 -0.000013 118.715614 0.000007 -7.818989 1.383647 32.894642 0.000000 0.000000 -0.000000 0.000001 0.000000 0.000000 -0.000000 0.000001 0.000001 -0.000002 -0.000000 -0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -4.939764 -0.492756 -0.012134 -1.626497 -0.007659 0.100629 0.003731 6.885190 -0.100845 -0.000017 0.000020 -0.000033 -0.000000 -0.000000 -0.000000 -0.000018 0.000020 -0.000032 -0.000001 0.000001 0.000000 -0.000000 0.000003 0.000137 -4.925301 0.460352 0.030815 -2.273347 0.001588 -0.018337 0.002767 -7.791196 0.116060 0.000003 -0.000014 0.000024 0.000000 0.000001 -0.000000 0.000005 -0.000014 0.000023 -0.000001 0.000000 0.000000 0.000000 0.000002 -0.000100 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000
|
||||
461
res/anims/poses/Bendover.bvh
Normal file
461
res/anims/poses/Bendover.bvh
Normal file
@@ -0,0 +1,461 @@
|
||||
HIERARCHY
|
||||
ROOT mPelvis
|
||||
{
|
||||
OFFSET 0.000000 1.067000 -0.000000
|
||||
CHANNELS 6 Xposition Yposition Zposition Xrotation Yrotation Zrotation
|
||||
JOINT mTorso
|
||||
{
|
||||
OFFSET 0.000000 0.084000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mChest
|
||||
{
|
||||
OFFSET 0.000000 0.205000 -0.015000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mNeck
|
||||
{
|
||||
OFFSET 0.000000 0.251000 -0.010000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mHead
|
||||
{
|
||||
OFFSET 0.000000 0.076000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mSkull
|
||||
{
|
||||
OFFSET 0.000000 0.079000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT mEyeRight
|
||||
{
|
||||
OFFSET -0.036000 0.079000 0.098000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT mEyeLeft
|
||||
{
|
||||
OFFSET 0.036000 0.079000 0.098000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT HEAD
|
||||
{
|
||||
OFFSET 0.000000 0.070000 0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT NECK
|
||||
{
|
||||
OFFSET 0.000000 0.020000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT mCollarLeft
|
||||
{
|
||||
OFFSET 0.085000 0.165000 -0.021000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mShoulderLeft
|
||||
{
|
||||
OFFSET 0.079000 0.000000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mElbowLeft
|
||||
{
|
||||
OFFSET 0.248000 0.000000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mWristLeft
|
||||
{
|
||||
OFFSET 0.205000 0.000000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT L_HAND
|
||||
{
|
||||
OFFSET 0.050000 0.000000 0.010000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_LOWER_ARM
|
||||
{
|
||||
OFFSET 0.100000 0.000000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_UPPER_ARM
|
||||
{
|
||||
OFFSET 0.120000 0.010000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_CLAVICLE
|
||||
{
|
||||
OFFSET 0.000000 0.020000 0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT mCollarRight
|
||||
{
|
||||
OFFSET -0.085000 0.165000 -0.021000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mShoulderRight
|
||||
{
|
||||
OFFSET -0.079000 0.000000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mElbowRight
|
||||
{
|
||||
OFFSET -0.248000 0.000000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mWristRight
|
||||
{
|
||||
OFFSET -0.205000 0.000000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT R_HAND
|
||||
{
|
||||
OFFSET -0.050000 0.000000 0.010000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_LOWER_ARM
|
||||
{
|
||||
OFFSET -0.100000 0.000000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_UPPER_ARM
|
||||
{
|
||||
OFFSET -0.120000 0.010000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_CLAVICLE
|
||||
{
|
||||
OFFSET 0.000000 0.020000 0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT CHEST
|
||||
{
|
||||
OFFSET 0.000000 0.070000 0.028000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT LEFT_PEC
|
||||
{
|
||||
OFFSET 0.082000 0.042000 0.119000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT RIGHT_PEC
|
||||
{
|
||||
OFFSET -0.082000 0.042000 0.119000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT UPPER_BACK
|
||||
{
|
||||
OFFSET 0.000000 0.017253 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT BELLY
|
||||
{
|
||||
OFFSET 0.000000 0.040000 0.028000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT LOWER_BACK
|
||||
{
|
||||
OFFSET 0.000000 0.022848 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT mHipRight
|
||||
{
|
||||
OFFSET -0.129000 -0.041000 0.034000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mKneeRight
|
||||
{
|
||||
OFFSET 0.049000 -0.491000 -0.001000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mAnkleRight
|
||||
{
|
||||
OFFSET -0.000000 -0.468000 -0.029000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mFootRight
|
||||
{
|
||||
OFFSET 0.000000 -0.061000 0.112000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mToeRight
|
||||
{
|
||||
OFFSET 0.000000 0.000000 0.109000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_FOOT
|
||||
{
|
||||
OFFSET 0.000000 -0.041000 0.077000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_LOWER_LEG
|
||||
{
|
||||
OFFSET -0.000000 -0.200000 -0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_UPPER_LEG
|
||||
{
|
||||
OFFSET 0.050000 -0.220000 -0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT mHipLeft
|
||||
{
|
||||
OFFSET 0.127000 -0.041000 0.034000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mKneeLeft
|
||||
{
|
||||
OFFSET -0.046000 -0.491000 -0.001000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mAnkleLeft
|
||||
{
|
||||
OFFSET 0.001000 -0.468000 -0.029000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mFootLeft
|
||||
{
|
||||
OFFSET 0.000000 -0.061000 0.112000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mToeLeft
|
||||
{
|
||||
OFFSET 0.000000 0.000000 0.109000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_FOOT
|
||||
{
|
||||
OFFSET 0.000000 -0.041000 0.077000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_LOWER_LEG
|
||||
{
|
||||
OFFSET -0.000000 -0.200000 -0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_UPPER_LEG
|
||||
{
|
||||
OFFSET -0.050000 -0.220000 -0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT PELVIS
|
||||
{
|
||||
OFFSET -0.000000 -0.020000 -0.010000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT BUTT
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 -0.060000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
MOTION
|
||||
Frames: 91
|
||||
Frame Time: 0.022222
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.555755 -0.057458 -84.096424 -0.000000 0.000000 0.000001 0.879869 -0.033829 -4.403510 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -1.541243 15.193717 82.081778 0.000002 0.000000 0.000001 1.046036 0.047842 5.237183 -0.000001 -0.000001 -0.000000 0.000001 0.000000 0.000001 -0.000001 0.000000 0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000001 -0.034920 0.002555 0.000000 -0.013071 0.000521 -0.000000 -0.033131 0.000000 -0.000000 -0.027811 -0.000000 0.000002 0.000022 -179.999991 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.557100 -0.056208 -84.091397 -0.000000 -0.001001 0.000000 0.879869 -0.033830 -4.403511 -0.000000 -0.000001 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.040452 0.000000 -1.628938 15.288697 82.094803 0.000002 0.000000 0.000002 1.046038 0.047840 5.237181 0.000004 -0.000001 -0.000000 0.000002 -0.000000 -0.000000 0.000001 0.000000 0.000002 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000001 -0.000001 -0.000000 0.000001 -0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000013 -0.137541 0.010064 0.000001 -0.051478 0.002051 -0.000000 -0.130490 -0.000000 -0.000000 -0.109882 -0.000000 0.000002 0.000022 -179.999991 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.558317 -0.055002 -84.076412 0.000000 -0.004142 -0.000000 0.879869 -0.033830 -4.403510 -0.000000 -0.000001 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.159338 -0.000000 -1.713589 15.376706 82.107275 0.000001 0.000000 0.000001 1.046034 0.047841 5.237181 0.000001 -0.000001 0.000000 -0.000001 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000060 -0.304676 0.022294 0.000006 -0.114016 0.004542 -0.000000 -0.289023 0.000000 -0.000000 -0.244179 0.000000 0.000002 0.000022 -179.999991 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.559409 -0.053843 -84.051577 -0.000000 -0.009627 -0.000000 0.879869 -0.033830 -4.403510 -0.000000 0.000001 -0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.352979 0.000000 -1.795231 15.458000 82.118927 0.000002 0.000000 -0.000000 1.046035 0.047841 5.237180 0.000001 -0.000002 0.000000 -0.000001 -0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000182 -0.533153 0.039012 0.000015 -0.199480 0.007947 -0.000000 -0.505684 0.000000 -0.000000 -0.428675 0.000000 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.560383 -0.052732 -84.017057 -0.000000 -0.017662 -0.000000 0.879869 -0.033830 -4.403510 0.000000 0.000001 -0.000000 0.000000 -0.000000 0.000001 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.617721 0.000000 -1.873904 15.532839 82.129555 0.000001 0.000000 -0.000001 1.046036 0.047840 5.237182 0.000001 0.000001 -0.000000 0.000000 0.000000 0.000001 0.000001 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000001 -0.000001 0.000000 0.000001 -0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000430 -0.819815 0.059991 0.000033 -0.306662 0.012218 -0.000000 -0.777427 -0.000000 -0.000000 -0.661348 -0.000000 0.000002 0.000022 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.561244 -0.051670 -83.972968 0.000000 -0.028450 -0.000001 0.879869 -0.033829 -4.403510 -0.000000 -0.000003 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.949931 -0.000000 -1.949645 15.601492 82.138947 0.000000 -0.000000 -0.000000 1.046035 0.047840 5.237182 -0.000001 0.000001 -0.000000 0.000001 0.000000 0.000001 0.000001 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000862 -1.161510 0.085000 0.000065 -0.434359 0.017305 -0.000000 -1.101207 -0.000000 -0.000000 -0.940182 0.000000 0.000002 0.000022 -179.999991 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.561996 -0.050657 -83.919440 -0.000000 -0.042197 -0.000000 0.879869 -0.033829 -4.403510 0.000000 0.000001 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -1.345989 -0.000000 -2.022489 15.664216 82.146876 -0.000001 -0.000001 0.000000 1.046037 0.047841 5.237181 -0.000001 0.000002 -0.000000 0.000000 -0.000000 -0.000000 -0.000001 -0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.001545 -1.555094 0.113815 0.000118 -0.581365 0.023163 -0.000001 -1.473980 0.000000 -0.000000 -1.263167 -0.000000 0.000002 0.000022 -179.999991 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000001 -0.000001 0.000000 -0.562643 -0.049696 -83.856589 0.000000 -0.059107 -0.000000 0.879869 -0.033830 -4.403510 0.000000 -0.000001 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -1.802282 -0.000000 -2.092477 15.721270 82.153140 0.000000 -0.000000 0.000000 1.046036 0.047840 5.237182 -0.000001 0.000001 -0.000000 0.000000 -0.000000 0.000001 0.000001 -0.000000 0.000001 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000001 -0.000001 0.000000 -0.000001 -0.000001 0.000000 -0.000000 -0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.002549 -1.997415 0.146212 0.000194 -0.746474 0.029742 -0.000001 -1.892698 -0.000000 -0.000000 -1.628290 -0.000000 0.000002 0.000022 -179.999991 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.563192 -0.048785 -83.784571 0.000000 -0.079386 0.000000 0.879870 -0.033829 -4.403510 0.000000 -0.000002 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000001 0.000000 0.000000 0.000000 -0.000000 -2.315190 -0.000000 -2.159644 15.772925 82.157511 0.000001 -0.000000 -0.000000 1.046036 0.047840 5.237180 -0.000000 0.000001 0.000000 0.000002 -0.000000 0.000000 0.000002 0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000001 -0.000001 -0.000000 0.000001 -0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.003948 -2.485325 0.181967 0.000300 -0.928481 0.036994 -0.000001 -2.354311 -0.000000 -0.000000 -2.033539 0.000000 0.000002 0.000023 -179.999991 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 0.000000 -0.000000 -0.000000 0.000000 -0.000001 0.000000 -0.000000 -0.563647 -0.047928 -83.703511 0.000000 -0.103238 -0.000000 0.879869 -0.033830 -4.403511 -0.000000 0.000001 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -2.881090 -0.000000 -2.224031 15.819434 82.159779 0.000000 -0.000000 -0.000001 1.046037 0.047839 5.237181 -0.000000 0.000001 -0.000000 0.000000 -0.000000 -0.000001 0.000001 0.000000 -0.000001 0.000000 -0.000000 0.000000 -0.000000 0.000001 -0.000000 -0.000001 0.000001 -0.000000 -0.000001 0.000001 -0.000000 -0.000000 0.000001 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.005813 -3.015657 0.220862 0.000441 -1.126177 0.044873 -0.000000 -2.855767 -0.000000 -0.000000 -2.476903 -0.000000 0.000002 0.000022 -179.999991 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.564012 -0.047125 -83.613537 -0.000000 -0.130868 0.000000 0.879869 -0.033829 -4.403510 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -3.496348 -0.000000 -2.285674 15.861057 82.159724 0.000001 -0.000001 0.000001 1.046036 0.047841 5.237181 0.000001 0.000000 -0.000000 0.000000 -0.000000 0.000001 0.000001 -0.000000 0.000001 -0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000001 -0.000001 0.000000 0.000001 -0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.008221 -3.585240 0.262679 0.000623 -1.338360 0.053331 -0.000001 -3.394005 -0.000000 -0.000000 -2.956369 -0.000000 0.000002 0.000022 -179.999991 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000001 0.000000 -0.000000 0.000000 -0.000000 -0.564293 -0.046375 -83.514772 0.000000 -0.162481 -0.000000 0.879869 -0.033830 -4.403510 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -4.157303 -0.000000 -2.344615 15.898056 82.157142 0.000000 0.000000 0.000000 1.046037 0.047840 5.237181 -0.000000 0.000003 -0.000000 0.000000 -0.000000 0.000001 0.000000 0.000000 0.000001 -0.000000 -0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000001 -0.000001 0.000000 0.000001 -0.000001 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.011240 -4.190886 0.307200 0.000850 -1.563818 0.062319 -0.000001 -3.965963 -0.000000 -0.000000 -3.469913 -0.000000 0.000002 0.000021 -179.999991 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000001 -0.000000 -0.564494 -0.045681 -83.407360 -0.000000 -0.198282 0.000001 0.879869 -0.033831 -4.403510 -0.000001 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000001 -0.000000 -0.000000 -0.000000 0.000000 -4.860283 -0.000000 -2.400895 15.930699 82.151842 -0.000000 -0.000000 0.000000 1.046036 0.047840 5.237181 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 0.000001 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.014936 -4.829390 0.354212 0.001129 -1.801349 0.071790 -0.000001 -4.568566 -0.000000 -0.000000 -4.015516 -0.000000 0.000002 0.000022 -179.999991 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000001 -0.000000 -0.564621 -0.045043 -83.291432 0.000000 -0.238475 0.000000 0.879869 -0.033830 -4.403509 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000001 -0.000000 0.000000 0.000000 0.000000 -0.000001 0.000000 0.000000 -5.601579 -0.000000 -2.454551 15.959241 82.143591 0.000000 -0.000000 0.000001 1.046037 0.047840 5.237182 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000001 0.000000 0.000000 0.000001 -0.000000 0.000001 0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.019372 -5.497536 0.403501 0.001461 -2.049743 0.081698 -0.000001 -5.198746 -0.000000 -0.000001 -4.591143 0.000000 0.000002 0.000021 -179.999991 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.564676 -0.044460 -83.167088 -0.000000 -0.283267 -0.000001 0.879869 -0.033829 -4.403509 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000001 -0.000000 0.000000 -6.377469 -0.000000 -2.505628 15.983946 82.132198 -0.000000 -0.000000 0.000002 1.046036 0.047842 5.237180 0.000000 0.000001 0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000002 0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.024602 -6.192078 0.454856 0.001852 -2.307793 0.091994 -0.000001 -5.853420 -0.000000 -0.000001 -5.194758 -0.000000 0.000002 0.000019 -179.999991 0.000000 -0.000003 0.000000 0.000000 -0.000003 0.000000 0.000000 -0.000003 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000001 -0.000000 -0.564667 -0.043935 -83.034521 -0.000000 -0.332862 -0.000001 0.879870 -0.033829 -4.403511 -0.000001 0.000000 0.000000 -0.000001 0.000000 -0.000001 -0.000001 -0.000000 -0.000001 -0.000000 -0.000001 -0.000000 0.000000 -7.184194 -0.000000 -2.554166 16.005064 82.117466 0.000000 0.000000 -0.000000 1.046036 0.047839 5.237182 0.000000 0.000001 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.030673 -6.909765 0.508065 0.002306 -2.574291 0.102630 -0.000001 -6.529506 -0.000000 -0.000001 -5.824320 -0.000000 0.000002 0.000020 -179.999991 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.564597 -0.043470 -82.893792 0.000001 -0.387464 -0.000001 0.879869 -0.033828 -4.403511 -0.000001 -0.000002 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000001 -8.017974 -0.000000 -2.600206 16.022866 82.099161 -0.000000 0.000000 0.000000 1.046036 0.047839 5.237181 0.000000 0.000003 -0.000000 -0.000000 -0.000000 -0.000001 -0.000000 0.000000 0.000000 -0.000000 -0.000003 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.037622 -7.647324 0.562916 0.002823 -2.848028 0.113561 -0.000001 -7.223927 -0.000000 -0.000001 -6.477781 -0.000000 0.000002 0.000022 -179.999991 0.000000 0.000002 0.000000 0.000000 0.000002 0.000000 0.000000 0.000002 0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.564470 -0.043061 -82.745071 0.000000 -0.447278 -0.000001 0.879869 -0.033829 -4.403511 0.000001 -0.000000 0.000000 -0.000002 -0.000000 -0.000001 0.000000 0.000000 -0.000001 -0.000000 -0.000001 -0.000000 0.000000 -8.874993 -0.000000 -2.643791 16.037609 82.077106 0.000000 0.000000 0.000000 1.046036 0.047840 5.237182 -0.000000 0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.045479 -8.401468 0.619198 0.003406 -3.127797 0.124737 -0.000001 -7.933592 0.000000 -0.000001 -7.153080 -0.000000 0.000002 0.000022 -179.999991 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.564293 -0.042715 -82.588489 0.000000 -0.512511 -0.000001 0.879869 -0.033829 -4.403510 -0.000002 -0.000002 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000001 0.000000 -0.000001 0.000000 0.000001 -9.751429 0.000000 -2.684963 16.049544 82.051110 -0.000000 -0.000000 -0.000001 1.046036 0.047841 5.237180 -0.000000 -0.000001 -0.000000 0.000000 -0.000000 -0.000001 -0.000001 -0.000000 -0.000001 0.000000 -0.000002 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000001 -0.000002 -0.000000 0.000001 -0.000002 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.054261 -9.168893 0.676697 0.004054 -3.412389 0.136113 -0.000001 -8.655416 -0.000000 -0.000001 -7.848160 -0.000000 0.000002 0.000026 -179.999991 0.000000 0.000003 0.000000 0.000000 0.000003 0.000000 0.000000 0.000003 -0.000000 0.000000 0.000002 -0.000000 0.000000 0.000001 0.000000 -0.564067 -0.042427 -82.424134 -0.000000 -0.583367 -0.000001 0.879869 -0.033831 -4.403510 0.000001 -0.000000 0.000000 -0.000001 0.000000 -0.000000 -0.000001 -0.000000 -0.000001 -0.000000 -0.000001 0.000000 0.000001 -10.643416 -0.000000 -2.723767 16.058946 82.020921 -0.000001 -0.000000 0.000001 1.046036 0.047840 5.237182 0.000000 0.000001 0.000000 -0.000001 -0.000000 0.000001 -0.000001 -0.000000 0.000001 -0.000000 -0.000002 0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.063975 -9.946286 0.735197 0.004769 -3.700595 0.147639 -0.000001 -9.386329 -0.000000 -0.000001 -8.560942 -0.000000 0.000002 0.000021 -179.999991 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000000 0.000000 -0.563799 -0.042201 -82.252171 -0.000000 -0.660051 -0.000001 0.879870 -0.033829 -4.403510 -0.000003 -0.000001 -0.000000 0.000000 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000001 -11.547090 -0.000000 -2.760247 16.066060 81.986381 -0.000000 -0.000000 0.000001 1.046035 0.047839 5.237182 0.000000 0.000003 0.000000 0.000000 -0.000000 0.000001 0.000000 0.000000 0.000001 -0.000000 0.000000 -0.000000 0.000000 -0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000001 -0.000000 0.000000 -0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.074614 -10.730323 0.794481 0.005550 -3.991210 0.159270 -0.000002 -10.123251 -0.000000 -0.000001 -9.289370 -0.000000 0.000002 0.000024 -179.999991 0.000000 0.000003 0.000000 0.000000 0.000003 0.000000 0.000000 0.000003 -0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.563494 -0.042038 -82.072701 -0.000001 -0.742767 0.000002 0.879871 -0.033830 -4.403510 -0.000000 0.000000 -0.000000 0.000001 -0.000000 0.000001 -0.000001 0.000000 0.000002 -0.000000 0.000000 -0.000000 0.000001 -12.458562 -0.000000 -2.794448 16.071148 81.947285 0.000000 -0.000000 0.000001 1.046036 0.047840 5.237182 -0.000000 -0.000000 0.000000 0.000001 0.000000 0.000001 0.000001 0.000000 0.000001 0.000000 -0.000001 0.000000 -0.000000 0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000000 -0.000001 -0.000000 0.000001 -0.000002 0.000000 0.000001 -0.000002 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.086160 -11.517685 0.854328 0.006392 -4.283020 0.170957 -0.000002 -10.863119 -0.000000 -0.000001 -10.031352 0.000000 0.000002 0.000025 -179.999991 -0.000000 0.000003 0.000000 -0.000000 0.000003 0.000000 -0.000000 0.000003 0.000000 0.000000 0.000002 0.000000 -0.000000 0.000001 -0.000000 -0.563154 -0.041935 -81.885861 0.000000 -0.831723 0.000001 0.879869 -0.033828 -4.403512 0.000001 -0.000002 0.000000 0.000001 -0.000000 -0.000001 0.000000 0.000000 0.000001 -0.000000 0.000001 0.000000 0.000001 -13.373931 -0.000000 -2.826410 16.074475 81.903428 -0.000000 -0.000000 0.000000 1.046035 0.047840 5.237180 0.000000 0.000003 0.000000 -0.000001 0.000000 -0.000001 0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000001 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000002 -0.000000 0.000001 0.000001 -0.000000 0.000001 -0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.098581 -12.305030 0.914510 0.007296 -4.574828 0.182653 -0.000001 -11.602877 -0.000000 -0.000001 -10.784812 -0.000000 0.000002 0.000027 -179.999991 -0.000000 0.000003 0.000000 -0.000000 0.000003 0.000000 -0.000000 0.000003 0.000000 0.000000 0.000005 -0.000000 0.000000 0.000003 -0.000000 -0.562785 -0.041896 -81.691754 0.000001 -0.927122 -0.000000 0.879870 -0.033829 -4.403510 0.000001 0.000001 -0.000000 0.000002 -0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000001 0.000000 0.000001 -14.289304 -0.000000 -2.856179 16.076286 81.854606 0.000001 -0.000000 0.000000 1.046034 0.047840 5.237180 -0.000001 0.000002 0.000001 -0.000002 -0.000000 -0.000000 0.000000 -0.000000 0.000001 0.000000 -0.000003 0.000000 0.000001 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000001 0.000001 -0.000000 0.000001 -0.000001 0.000000 0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.111832 -13.089033 0.974797 0.008255 -4.865423 0.194309 -0.000002 -12.339467 -0.000000 -0.000001 -11.547680 -0.000000 0.000002 0.000018 -179.999991 0.000000 -0.000004 0.000000 0.000000 -0.000004 0.000000 0.000000 -0.000004 0.000000 -0.000000 0.000002 -0.000000 -0.000001 0.000001 -0.000000 -0.562392 -0.041923 -81.490543 -0.000001 -1.029169 0.000000 0.879871 -0.033829 -4.403511 -0.000001 0.000001 -0.000000 0.000003 0.000000 -0.000001 -0.000003 0.000000 -0.000000 -0.000000 -0.000001 -0.000000 0.000000 -15.200764 -0.000000 -2.883801 16.076853 81.800634 -0.000001 -0.000000 -0.000001 1.046035 0.047840 5.237181 0.000001 0.000001 -0.000000 -0.000000 0.000000 0.000000 -0.000002 0.000000 -0.000001 0.000000 -0.000003 0.000000 -0.000001 0.000001 0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000001 -0.000000 -0.000001 -0.000001 -0.000000 0.000001 -0.000001 0.000000 0.000001 -0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.125854 -13.866364 1.034953 0.009265 -5.153598 0.205879 -0.000002 -13.069885 -0.000000 -0.000002 -12.317869 -0.000000 0.000002 0.000021 -179.999991 -0.000000 -0.000003 -0.000000 -0.000000 -0.000003 -0.000000 -0.000000 -0.000003 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000002 0.000000 -0.561978 -0.042015 -81.282297 0.000000 -1.138071 -0.000001 0.879871 -0.033829 -4.403511 0.000001 0.000000 -0.000000 0.000002 -0.000000 -0.000000 -0.000001 0.000000 -0.000001 -0.000000 -0.000000 0.000000 0.000001 -16.104445 0.000000 -2.909318 16.076418 81.741279 0.000000 -0.000000 -0.000000 1.046035 0.047840 5.237181 0.000000 -0.000001 -0.000001 -0.000002 -0.000000 0.000001 -0.000001 0.000000 -0.000000 -0.000000 -0.000003 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 0.000000 -0.000002 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.140569 -14.633711 1.094733 0.010321 -5.438153 0.217313 -0.000002 -13.791087 -0.000000 -0.000002 -13.093297 -0.000000 0.000002 0.000020 -179.999991 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000001 -0.000000 -0.000001 0.000004 0.000000 -0.561547 -0.042169 -81.067160 0.000004 -1.254032 -0.000000 0.879869 -0.033829 -4.403510 0.000003 0.000000 0.000001 0.000001 0.000000 -0.000001 0.000001 0.000000 -0.000000 0.000000 0.000001 0.000000 0.000001 -16.996429 -0.000000 -2.932775 16.075255 81.676386 -0.000002 -0.000000 -0.000000 1.046037 0.047841 5.237181 -0.000003 0.000002 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000002 -0.000000 -0.000000 0.000003 0.000000 -0.000001 0.000004 0.000000 -0.000001 0.000003 0.000000 -0.000000 0.000003 0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.155890 -15.387745 1.153886 0.011413 -5.717878 0.228564 -0.000002 -14.500094 -0.000000 -0.000002 -13.871891 -0.000000 0.000002 0.000022 -179.999991 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000001 -0.000000 -0.561105 -0.042390 -80.845261 0.000004 -1.377257 0.000000 0.879871 -0.033830 -4.403511 -0.000003 0.000001 0.000000 0.000002 -0.000000 -0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000001 -17.872875 -0.000000 -2.954213 16.073605 81.605727 -0.000002 -0.000000 0.000000 1.046035 0.047840 5.237182 0.000000 0.000001 -0.000000 -0.000000 -0.000001 0.000001 -0.000003 -0.000000 0.000000 -0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000003 -0.000000 -0.000000 -0.000004 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.171712 -16.125177 1.212153 0.012538 -5.991576 0.239583 -0.000002 -15.193915 -0.000000 -0.000002 -14.651582 -0.000000 0.000003 0.000024 -179.999991 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000001 -0.000003 0.000000 -0.560655 -0.042683 -80.616702 -0.000000 -1.507951 -0.000001 0.879868 -0.033830 -4.403510 -0.000002 0.000001 -0.000000 0.000001 0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 -0.000001 0.000000 0.000001 -18.729895 0.000000 -2.973678 16.071741 81.529127 -0.000003 -0.000001 -0.000000 1.046035 0.047840 5.237181 -0.000002 -0.000000 0.000000 -0.000001 0.000000 0.000001 -0.000001 -0.000000 0.000000 0.000000 -0.000001 0.000000 -0.000001 -0.000003 0.000000 -0.000001 -0.000002 0.000000 -0.000001 -0.000003 0.000000 -0.000001 -0.000002 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000001 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.187919 -16.842724 1.269268 0.013683 -6.258043 0.250321 -0.000002 -15.869565 -0.000000 -0.000002 -15.430306 -0.000000 0.000002 0.000025 -179.999991 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000002 -0.000000 0.000000 0.000001 -0.000000 -0.560202 -0.043039 -80.381607 0.000003 -1.646320 -0.000000 0.879869 -0.033829 -4.403509 -0.000001 0.000001 0.000000 0.000001 -0.000000 0.000001 0.000001 0.000000 0.000001 0.000000 -0.000001 0.000000 0.000002 -19.563668 -0.000000 -2.991214 16.069895 81.446365 -0.000002 -0.000000 0.000001 1.046037 0.047840 5.237182 0.000001 0.000001 0.000000 0.000001 -0.000000 0.000001 -0.000001 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000000 0.000000 0.000002 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000002 -0.000000 0.000000 0.000002 -0.000000 0.000000 0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.204377 -17.537105 1.324954 0.014841 -6.516083 0.260731 -0.000002 -16.524111 -0.000000 -0.000002 -16.206010 -0.000000 0.000002 0.000018 -179.999991 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000002 -0.000000 -0.000000 0.000002 -0.000000 -0.559749 -0.043469 -80.140078 -0.000001 -1.792569 0.000000 0.879866 -0.033829 -4.403511 -0.000001 -0.000000 0.000000 -0.000002 -0.000000 -0.000000 -0.000002 0.000000 0.000000 -0.000000 -0.000002 -0.000000 0.000002 -20.370387 -0.000000 -3.006857 16.068355 81.357252 -0.000004 -0.000000 0.000001 1.046036 0.047840 5.237181 0.000001 0.000002 -0.000001 -0.000002 0.000000 -0.000000 -0.000001 -0.000000 0.000001 -0.000000 0.000001 -0.000000 0.000000 0.000004 -0.000000 -0.000000 0.000003 -0.000000 -0.000000 0.000004 -0.000000 0.000000 0.000004 -0.000000 0.000000 -0.000002 -0.000000 0.000000 -0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.220939 -18.205074 1.378927 0.016002 -6.764487 0.270761 -0.000002 -17.154631 -0.000000 -0.000002 -16.976638 -0.000000 0.000002 0.000019 -179.999991 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -0.000000 -0.000001 -0.000000 -0.000001 -0.000001 0.000000 -0.559301 -0.043967 -79.892231 0.000003 -1.946903 -0.000001 0.879868 -0.033829 -4.403510 -0.000002 -0.000002 0.000000 0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000001 0.000000 -0.000001 0.000000 0.000001 -21.146281 -0.000000 -3.020653 16.067339 81.261588 -0.000002 -0.000000 -0.000001 1.046036 0.047840 5.237181 0.000002 0.000002 0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000000 0.000002 0.000000 -0.000000 -0.000003 0.000000 -0.000001 -0.000000 -0.000000 -0.000001 0.000001 0.000000 -0.000000 -0.000001 0.000000 0.000000 0.000001 -0.000000 0.000000 0.000002 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.237450 -18.843403 1.430894 0.017153 -7.002067 0.280365 -0.000002 -17.758188 -0.000001 -0.000002 -17.740166 -0.000000 0.000002 0.000022 -179.999991 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000003 0.000000 0.000000 0.000002 -0.000000 -0.558862 -0.044537 -79.638175 0.000005 -2.109524 -0.000000 0.879870 -0.033829 -4.403510 -0.000001 -0.000002 0.000000 -0.000001 -0.000000 0.000001 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000002 -21.887585 -0.000000 -3.032640 16.067130 81.159183 -0.000001 -0.000000 0.000000 1.046038 0.047840 5.237182 -0.000002 0.000000 0.000000 0.000001 -0.000000 0.000000 -0.000002 0.000000 0.000000 0.000000 -0.000004 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000003 -0.000000 0.000000 -0.000002 -0.000000 0.000000 0.000000 -0.000000 0.000001 0.000001 0.000000 0.000001 0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.253737 -19.448861 1.480553 0.018283 -7.227619 0.289491 -0.000003 -18.331874 -0.000000 -0.000003 -18.494552 -0.000000 0.000002 0.000023 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000002 0.000000 -0.000001 -0.000001 0.000000 -0.558437 -0.045184 -79.378020 0.000002 -2.280639 -0.000001 0.879872 -0.033829 -4.403511 -0.000003 -0.000001 0.000000 0.000000 0.000000 0.000000 -0.000001 0.000001 -0.000000 -0.000000 0.000000 0.000000 0.000001 -22.590562 -0.000000 -3.042856 16.067971 81.049818 -0.000000 -0.000001 0.000001 1.046035 0.047840 5.237181 -0.000001 0.000000 0.000000 -0.000001 0.000000 -0.000000 0.000001 -0.000000 0.000001 0.000000 0.000003 -0.000000 -0.000000 -0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000002 -0.000000 -0.000000 -0.000001 -0.000000 0.000001 -0.000001 0.000000 0.000001 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.269620 -20.018251 1.527593 0.019380 -7.439951 0.298091 -0.000003 -18.872788 -0.000001 -0.000002 -19.237796 -0.000000 0.000002 0.000022 -179.999991 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 -0.000002 0.000000 -0.000001 0.000003 -0.000000 -0.558028 -0.045895 -79.111882 0.000002 -2.460454 0.000000 0.879870 -0.033829 -4.403510 -0.000003 -0.000001 -0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000001 -0.000000 0.000001 -23.251502 -0.000000 -3.051339 16.070134 80.933323 -0.000002 -0.000000 -0.000000 1.046034 0.047840 5.237181 -0.000001 0.000001 -0.000001 -0.000003 -0.000000 -0.000000 -0.000003 0.000000 -0.000000 0.000000 0.000003 -0.000000 -0.000000 0.000001 -0.000000 -0.000001 0.000002 0.000000 -0.000001 0.000003 -0.000000 -0.000000 0.000001 -0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.284910 -20.548392 1.571699 0.020433 -7.637858 0.306114 -0.000002 -19.378071 -0.000001 -0.000003 -19.967880 -0.000000 0.000003 0.000025 -179.999991 0.000000 0.000003 -0.000000 0.000000 0.000003 -0.000000 0.000000 0.000003 -0.000000 -0.000000 -0.000004 0.000000 0.000000 0.000002 -0.000000 -0.557641 -0.046689 -78.839849 0.000002 -2.649173 0.000000 0.879870 -0.033830 -4.403510 -0.000000 -0.000003 0.000001 -0.000000 -0.000000 -0.000001 0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000000 0.000002 -23.866766 -0.000000 -3.058121 16.073839 80.809471 -0.000002 -0.000000 0.000000 1.046033 0.047840 5.237180 -0.000004 0.000001 -0.000001 -0.000002 0.000001 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000001 -0.000000 0.000000 0.000002 -0.000000 0.000000 0.000003 -0.000000 0.000000 0.000002 -0.000000 0.000000 0.000004 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.299411 -21.036115 1.612547 0.021427 -7.820156 0.313510 -0.000003 -19.844807 -0.000000 -0.000002 -20.682832 -0.000000 0.000002 0.000022 -179.999991 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.557279 -0.047561 -78.562024 0.000000 -2.846999 0.000000 0.879867 -0.033829 -4.403511 -0.000004 0.000002 -0.000001 -0.000002 -0.000000 -0.000000 -0.000001 -0.000000 0.000000 0.000000 0.000001 -0.000000 0.000002 -24.432669 0.000000 -3.063242 16.079372 80.678058 -0.000001 -0.000001 0.000000 1.046029 0.047840 5.237182 0.000002 0.000001 0.000000 -0.000004 -0.000001 0.000001 -0.000002 -0.000000 0.000001 -0.000000 0.000000 -0.000000 -0.000000 0.000002 0.000000 -0.000000 0.000001 -0.000000 -0.000001 -0.000000 0.000000 -0.000000 0.000002 -0.000000 -0.000000 -0.000003 0.000000 0.000000 -0.000001 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.312921 -21.478264 1.649811 0.022351 -7.985633 0.320230 -0.000003 -20.270125 -0.000001 -0.000003 -21.380676 -0.000001 0.000002 0.000023 -179.999991 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000004 -0.000000 -0.000000 0.000001 0.000000 -0.556946 -0.048513 -78.278544 0.000001 -3.054134 0.000000 0.879866 -0.033827 -4.403513 0.000004 -0.000002 0.000000 0.000001 -0.000000 -0.000000 -0.000001 0.000000 0.000000 0.000000 -0.000003 0.000000 0.000002 -24.945577 -0.000000 -3.066731 16.086970 80.538920 0.000002 -0.000000 0.000000 1.046035 0.047840 5.237181 -0.000002 -0.000001 -0.000001 -0.000001 -0.000001 -0.000000 0.000001 -0.000000 0.000001 0.000000 0.000000 -0.000000 -0.000000 0.000003 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000003 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.325238 -21.871678 1.683159 0.023192 -8.133107 0.326224 -0.000003 -20.651111 -0.000001 -0.000003 -22.059441 -0.000001 0.000002 0.000021 -179.999991 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 -0.000000 0.000000 0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.556645 -0.049532 -77.989443 0.000003 -3.270785 -0.000000 0.879867 -0.033829 -4.403510 -0.000001 0.000001 -0.000001 0.000003 -0.000000 0.000001 -0.000001 0.000000 -0.000000 0.000000 0.000003 -0.000000 0.000002 -25.401870 -0.000000 -3.068617 16.096888 80.391825 0.000000 -0.000000 0.000000 1.046035 0.047839 5.237182 0.000003 0.000003 0.000001 0.000001 -0.000000 0.000001 -0.000001 -0.000000 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000003 0.000000 0.000000 0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000003 -0.000000 0.000001 -0.000004 0.000000 0.000001 -0.000004 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.336159 -22.213227 1.712260 0.023936 -8.261364 0.331440 -0.000002 -20.984872 -0.000001 -0.000003 -22.717192 -0.000001 0.000002 0.000020 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000003 -0.000000 -0.556382 -0.050646 -77.694891 0.000003 -3.497154 -0.000000 0.879872 -0.033830 -4.403510 -0.000003 0.000001 0.000000 0.000003 -0.000000 -0.000000 0.000000 0.000000 0.000001 -0.000000 0.000001 -0.000000 0.000002 -25.797923 -0.000000 -3.068925 16.109377 80.236554 -0.000001 -0.000001 0.000002 1.046037 0.047840 5.237182 0.000000 0.000002 0.000001 0.000001 -0.000000 -0.000000 -0.000000 -0.000000 0.000002 0.000000 -0.000001 0.000000 0.000001 0.000003 -0.000000 0.000000 0.000002 -0.000000 0.000000 0.000001 -0.000000 0.000001 0.000003 -0.000000 0.000001 0.000001 0.000000 0.000001 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.345487 -22.499755 1.736783 0.024570 -8.369227 0.335829 -0.000003 -21.268480 -0.000000 -0.000003 -23.351976 -0.000001 0.000002 0.000019 -179.999991 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 0.000000 -0.000002 -0.000000 -0.000000 0.000000 0.000000 -0.556160 -0.051835 -77.394923 -0.000002 -3.733441 0.000001 0.879871 -0.033828 -4.403511 -0.000003 0.000001 -0.000002 0.000003 -0.000000 -0.000001 -0.000003 0.000001 0.000001 0.000000 0.000000 0.000000 0.000002 -26.130139 0.000000 -3.067684 16.124695 80.072951 -0.000004 -0.000001 0.000000 1.046038 0.047839 5.237180 0.000002 0.000000 0.000000 0.000004 -0.000000 0.000000 -0.000002 -0.000001 0.000000 0.000000 -0.000003 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000002 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.353030 -22.728127 1.756402 0.025084 -8.455477 0.339341 -0.000003 -21.498973 -0.000001 -0.000003 -23.961868 -0.000001 0.000002 0.000022 -179.999991 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000004 -0.000000 -0.555982 -0.053106 -77.089688 0.000002 -3.979853 -0.000001 0.879872 -0.033830 -4.403511 -0.000001 -0.000003 0.000000 0.000004 -0.000001 -0.000001 0.000000 0.000001 -0.000000 0.000000 0.000005 -0.000000 0.000002 -26.394882 -0.000000 -3.064913 16.143103 79.900776 -0.000001 -0.000001 0.000000 1.046035 0.047841 5.237180 0.000004 0.000001 0.000000 -0.000000 0.000001 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000003 -0.000000 -0.000000 -0.000002 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000001 -0.000000 0.000001 -0.000002 0.000000 0.000001 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.358611 -22.895180 1.770795 0.025465 -8.518915 0.341924 -0.000003 -21.673358 -0.000000 -0.000003 -24.544961 -0.000001 0.000002 0.000022 -179.999991 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 -0.555853 -0.054470 -76.779236 0.000004 -4.236588 -0.000001 0.879867 -0.033831 -4.403508 -0.000001 0.000000 -0.000000 0.000002 -0.000002 0.000000 0.000001 0.000001 -0.000000 0.000000 0.000004 -0.000000 0.000002 -26.588521 -0.000000 -3.060631 16.164819 79.719851 -0.000003 -0.000001 -0.000000 1.046036 0.047840 5.237182 -0.000006 0.000004 0.000001 0.000002 -0.000000 0.000000 -0.000003 -0.000000 -0.000000 0.000000 -0.000004 0.000000 0.000000 0.000002 0.000000 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000000 0.000000 -0.000001 -0.000000 0.000001 0.000001 -0.000000 0.000001 0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.362063 -22.997756 1.779650 0.025704 -8.558342 0.343530 -0.000002 -21.788626 -0.000001 -0.000003 -25.099323 -0.000001 0.000002 0.000022 -179.999991 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 -0.000000 -0.000003 -0.000000 0.000000 0.000000 -0.000000 -0.555776 -0.055918 -76.463667 0.000004 -4.503849 -0.000000 0.879868 -0.033828 -4.403511 -0.000009 0.000000 -0.000001 0.000003 -0.000000 -0.000001 -0.000001 0.000000 0.000000 0.000000 0.000005 0.000000 0.000002 -26.707411 -0.000000 -3.054852 16.190132 79.529944 -0.000001 -0.000001 -0.000001 1.046035 0.047840 5.237182 -0.000000 -0.000000 0.000002 0.000003 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 0.000000 -0.000004 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000001 -0.000000 0.000001 -0.000001 0.000000 0.000001 -0.000002 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.363243 -23.032661 1.782666 0.025790 -8.572547 0.344109 -0.000003 -21.841688 -0.000000 -0.000003 -25.623062 -0.000000 0.000003 0.000023 -179.999991 0.000000 0.000002 0.000000 0.000000 0.000002 0.000000 0.000000 0.000002 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000002 0.000000 -0.555756 -0.057457 -76.143072 0.000002 -4.781833 0.000001 0.879870 -0.033828 -4.403510 -0.000003 -0.000000 0.000000 0.000003 0.000000 -0.000002 -0.000001 0.000001 0.000000 -0.000000 0.000005 -0.000000 0.000002 -26.747871 0.000000 -3.047587 16.219268 79.330865 -0.000001 -0.000001 -0.000000 1.046037 0.047840 5.237182 0.000000 0.000004 -0.000000 0.000001 0.000001 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000004 0.000000 0.000000 0.000002 -0.000000 -0.000000 0.000003 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000002 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 0.116206 -0.000000 -0.000000 0.352208 -22.997901 1.778349 0.003342 -8.560751 0.342841 -0.055140 -21.851421 -0.003580 -0.032212 -26.120233 0.002472 0.000002 0.000022 -179.999991 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000003 -0.000000 -0.003748 -0.021326 -0.029988 -0.555642 -0.089851 -75.817764 -0.000000 -5.070631 0.000001 0.942304 -0.036147 -4.345855 0.000000 -0.000001 0.000001 0.000002 -0.000001 0.000001 -0.000003 0.000001 -0.000000 0.000000 0.000003 0.000000 0.003673 -26.687574 0.031693 -3.033861 16.255989 79.114457 -0.000002 0.025372 -0.000000 1.108234 0.050511 5.178407 0.000002 0.000001 0.000001 -0.000002 -0.000000 0.000001 -0.000003 -0.000000 0.000000 -0.000000 0.000001 -0.000000 -0.000000 -0.000002 0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000003 0.000000 -0.000000 -0.000004 0.000000 -0.120921 -0.012068 0.000210 0.008465 0.000035 -0.000388 0.008297 0.000932 -0.000833 -0.000013 0.000016 -0.000030 0.000000 0.000000 -0.000000 -0.000013 0.000015 -0.000030 -0.000001 0.000001 0.000000 -0.000000 0.000002 0.000135 -0.120897 0.011325 0.000282 0.007808 0.000049 -0.000581 0.009875 -0.001097 0.000878 0.000015 -0.000013 0.000025 -0.000000 -0.000000 0.000000 0.000016 -0.000013 0.000025 -0.000001 0.000001 0.000000 0.000000 0.000002 -0.000099 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 0.458190 -0.000000 -0.000000 0.319814 -22.895749 1.765711 -0.062637 -8.523757 0.339049 -0.217373 -21.839424 -0.014087 -0.127088 -26.596521 0.009170 0.000002 0.000021 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.014826 -0.084001 -0.118127 -0.554941 -0.182016 -75.488309 0.000002 -5.369677 0.000002 1.125903 -0.042603 -4.176302 0.000000 -0.000003 -0.000001 0.000001 -0.000000 -0.000001 -0.000000 0.000001 0.000001 0.000000 0.000002 0.000000 0.014238 -26.510304 0.124742 -3.008972 16.303452 78.873556 0.000004 0.099930 0.000001 1.291158 0.057988 5.005544 -0.000001 0.000002 -0.000001 -0.000000 0.000001 0.000000 0.000001 0.000001 0.000001 0.000000 0.000002 0.000000 -0.000000 -0.000002 0.000000 -0.000000 -0.000002 -0.000000 -0.000000 0.000002 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000001 0.000000 -0.476839 -0.047591 0.000682 0.033339 0.000130 -0.001926 0.032675 0.003667 -0.003288 -0.000008 0.000016 -0.000030 -0.000000 -0.000000 -0.000000 -0.000007 0.000017 -0.000030 -0.000001 0.000001 0.000000 -0.000000 0.000003 0.000136 -0.476747 0.044657 0.001251 0.030749 0.000185 -0.001997 0.038913 -0.004324 0.003466 0.000009 -0.000014 0.000027 0.000000 -0.000000 -0.000000 0.000012 -0.000015 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 1.016676 -0.000000 -0.000000 0.267158 -22.729372 1.745283 -0.170087 -8.462756 0.332935 -0.481912 -21.806603 -0.031083 -0.281997 -27.052440 0.019097 0.000002 0.000021 -179.999991 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.033075 -0.186033 -0.261705 -0.553156 -0.331162 -75.155235 0.000001 -5.678187 0.000000 1.425338 -0.051967 -3.899772 0.000001 -0.000004 0.000000 0.000003 -0.000000 0.000001 -0.000004 0.000000 0.000001 0.000000 0.000002 -0.000000 0.030736 -26.221388 0.276006 -2.973350 16.361042 78.609542 -0.000003 0.221346 0.000000 1.589498 0.069001 4.723611 0.000002 0.000001 0.000001 -0.000003 -0.000001 0.000001 -0.000003 0.000000 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000003 0.000000 0.000000 0.000002 -0.000000 0.000000 0.000002 0.000000 0.000001 -0.000002 -0.000000 0.000001 -0.000001 -0.000000 -1.058271 -0.105625 0.000978 0.073842 0.000283 -0.004431 0.072377 0.008120 -0.007286 -0.000011 0.000015 -0.000029 -0.000000 0.000000 -0.000000 -0.000012 0.000015 -0.000029 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000137 -1.058065 0.099092 0.003280 0.068104 0.000406 -0.004303 0.086199 -0.009576 0.007682 0.000011 -0.000012 0.000028 0.000000 -0.000000 -0.000000 0.000011 -0.000013 0.000026 0.000000 0.000002 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 1.783146 -0.000000 -0.000000 0.195382 -22.501899 1.717664 -0.316936 -8.378914 0.324750 -0.843927 -21.753784 -0.054016 -0.494290 -27.488537 0.031367 0.000002 0.000021 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000002 -0.000000 -0.058438 -0.325451 -0.458042 -0.549813 -0.534501 -74.819026 0.000002 -5.995376 0.000001 1.835471 -0.062443 -3.521002 -0.000001 0.000001 0.000000 0.000004 0.000001 -0.000000 0.000001 0.000001 -0.000000 -0.000000 0.000003 -0.000000 0.051870 -25.825970 0.482233 -2.927409 16.428128 78.323671 -0.000000 0.387299 0.000000 1.998160 0.081702 4.337417 -0.000000 0.000003 0.000000 -0.000004 -0.000000 -0.000001 -0.000002 0.000000 0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000001 -0.000000 -0.000000 0.000003 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000001 0.000000 -1.856616 -0.185310 0.000426 0.129191 0.000489 -0.007855 0.126629 0.014199 -0.012754 -0.000010 0.000016 -0.000030 0.000000 0.000000 0.000000 -0.000010 0.000016 -0.000028 -0.000002 0.000000 0.000000 -0.000000 0.000003 0.000136 -1.856251 0.173796 0.006963 0.119154 0.000704 -0.007454 0.150813 -0.016747 0.013448 0.000009 -0.000013 0.000027 0.000000 -0.000000 -0.000000 0.000008 -0.000013 0.000027 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000099 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 2.749661 -0.000000 -0.000001 0.105657 -22.216437 1.683510 -0.501106 -8.273389 0.314781 -1.298545 -21.681846 -0.082241 -0.761295 -27.905289 0.045196 0.000002 0.000022 -179.999991 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 0.000000 0.000000 0.000000 0.000000 -0.090937 -0.500250 -0.704484 -0.544463 -0.789248 -74.480180 0.000000 -6.320459 0.000001 2.351303 -0.071769 -3.044599 -0.000003 -0.000001 -0.000001 0.000005 0.000001 0.000000 -0.000001 0.000000 0.000000 0.000000 0.000006 -0.000000 0.076091 -25.329167 0.740105 -2.871563 16.504064 78.017262 -0.000001 0.595469 0.000000 2.512179 0.093760 3.851635 0.000000 0.000002 -0.000000 -0.000006 -0.000000 0.000000 -0.000001 0.000000 0.000000 0.000000 -0.000001 0.000000 0.000001 -0.000000 0.000000 0.000000 0.000001 0.000000 0.000000 0.000003 0.000000 0.000001 0.000002 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000002 0.000000 -2.863957 -0.285829 -0.001856 0.198610 0.000743 -0.012149 0.194671 0.021817 -0.019618 -0.000008 0.000017 -0.000032 -0.000000 0.000000 0.000000 -0.000009 0.000017 -0.000030 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000137 -2.863382 0.267968 0.013097 0.183177 0.001076 -0.011407 0.231857 -0.025731 0.020690 0.000007 -0.000015 0.000026 0.000000 -0.000000 -0.000000 0.000007 -0.000016 0.000026 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 3.908686 -0.000000 -0.000001 -0.000823 -21.876088 1.643515 -0.720516 -8.147352 0.303342 -1.840849 -21.591587 -0.115038 -1.080318 -28.303203 0.059898 0.000002 0.000021 -179.999991 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000002 0.000000 -0.130661 -0.708445 -0.998395 -0.536689 -1.092599 -74.139190 0.000001 -6.652654 0.000000 2.967907 -0.077288 -2.475109 0.000001 0.000003 -0.000001 0.000001 -0.000000 0.000000 -0.000001 -0.000000 -0.000001 -0.000000 0.000005 -0.000000 0.101650 -24.735995 1.046267 -2.806224 16.588228 77.691626 -0.000001 0.843543 -0.000000 3.126704 0.102456 3.270876 0.000001 0.000001 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000001 0.000000 0.000003 -0.000000 0.000000 -0.000005 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000001 -0.000000 0.000000 -0.000003 -0.000000 0.000001 -0.000000 0.000000 0.000000 -0.000001 0.000000 -4.072855 -0.406384 -0.006927 0.281313 0.001039 -0.017265 0.275738 0.030880 -0.027806 -0.000007 0.000016 -0.000029 0.000000 0.000000 -0.000000 -0.000007 0.000016 -0.000029 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 -4.072020 0.380816 0.022640 0.259455 0.001512 -0.016115 0.328409 -0.036426 0.029344 0.000009 -0.000013 0.000026 0.000000 0.000000 -0.000000 0.000007 -0.000014 0.000026 -0.000001 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 5.252909 -0.000001 -0.000001 -0.122848 -21.483959 1.598406 -0.973080 -8.001965 0.290772 -2.465870 -21.483851 -0.151624 -1.448632 -28.682806 0.074877 0.000002 0.000022 -179.999991 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000004 0.000000 -0.177747 -0.948005 -1.337160 -0.526105 -1.441771 -73.796526 0.000000 -6.991164 0.000001 3.680374 -0.076035 -1.817088 0.000002 -0.000001 0.000000 0.000002 -0.000000 -0.000001 -0.000001 0.000001 -0.000000 -0.000000 0.000001 -0.000000 0.126678 -24.051471 1.397366 -2.731808 16.679966 77.348061 0.000001 1.129210 0.000000 3.836836 0.104748 2.599752 -0.000002 -0.000000 0.000001 0.000003 -0.000000 0.000001 -0.000002 0.000000 0.000001 0.000000 0.000002 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 0.000000 0.000001 -0.000001 0.000000 -5.476154 -0.546149 -0.016001 0.376524 0.001370 -0.023157 0.369065 0.041302 -0.037252 -0.000011 0.000018 -0.000031 -0.000000 0.000000 0.000000 -0.000011 0.000018 -0.000031 -0.000001 0.000001 0.000000 -0.000000 0.000003 0.000136 -5.475001 0.511518 0.036701 0.347266 0.002007 -0.021537 0.439568 -0.048715 0.039319 0.000012 -0.000015 0.000030 0.000000 0.000000 -0.000000 0.000013 -0.000015 0.000030 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000099 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 6.775065 -0.000001 -0.000001 -0.259210 -21.043154 1.548919 -1.256710 -7.838397 0.277420 -3.168584 -21.359473 -0.191170 -1.863479 -29.044553 0.089622 0.000002 0.000023 -179.999991 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000000 0.000000 -0.232361 -1.216918 -1.718173 -0.512360 -1.833931 -73.452708 0.000003 -7.335210 0.000001 4.483711 -0.064805 -1.075153 -0.000005 0.000001 -0.000000 0.000001 -0.000001 0.000001 0.000000 0.000000 0.000001 0.000000 0.000002 -0.000000 0.149235 -23.280638 1.790081 -2.648731 16.778641 76.987884 0.000001 1.450153 0.000000 4.637625 0.097350 1.842944 0.000004 0.000003 -0.000000 -0.000001 0.000000 0.000000 0.000002 0.000001 0.000000 0.000000 0.000002 -0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000002 0.000000 -0.000000 -0.000003 0.000000 0.000000 -0.000001 0.000000 0.000000 0.000002 0.000000 0.000000 0.000001 0.000000 -7.066788 -0.704241 -0.030421 0.483462 0.001730 -0.029772 0.473888 0.052989 -0.047882 -0.000008 0.000018 -0.000033 0.000000 0.000000 0.000000 -0.000009 0.000018 -0.000032 -0.000002 0.000000 0.000000 -0.000000 0.000003 0.000136 -7.065252 0.659191 0.056501 0.445893 0.002552 -0.027628 0.564423 -0.062497 0.050555 0.000006 -0.000014 0.000027 -0.000000 -0.000000 -0.000000 0.000007 -0.000014 0.000025 -0.000001 0.000000 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 8.467771 -0.000001 -0.000002 -0.408697 -20.556759 1.495797 -1.569314 -7.657819 0.263647 -3.943911 -21.219299 -0.232820 -2.322064 -29.388907 0.103704 0.000003 0.000022 -179.999991 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000003 0.000000 -0.294690 -1.513143 -2.138833 -0.495142 -2.266259 -73.108173 0.000003 -7.684001 0.000000 5.372795 -0.040241 -0.254063 -0.000001 -0.000001 0.000000 0.000004 -0.000001 0.000000 -0.000000 0.000001 -0.000000 -0.000000 -0.000001 -0.000000 0.167367 -22.428557 2.221144 -2.557422 16.883615 76.612422 -0.000002 1.804059 -0.000000 5.524003 0.076825 1.005270 -0.000001 0.000001 0.000000 -0.000002 -0.000000 0.000000 -0.000000 -0.000001 0.000000 0.000000 0.000001 0.000000 -0.000001 0.000002 -0.000000 -0.000001 0.000001 0.000000 -0.000001 -0.000001 0.000000 -0.000001 0.000002 0.000000 0.000002 0.000003 -0.000000 0.000002 0.000003 -0.000000 -8.837577 -0.879679 -0.051630 0.601345 0.002114 -0.037067 0.589444 0.065850 -0.059624 -0.000012 0.000015 -0.000032 0.000000 0.000000 0.000000 -0.000012 0.000014 -0.000030 -0.000001 0.000001 0.000000 -0.000000 0.000003 0.000136 -8.835586 0.822857 0.083355 0.554613 0.003142 -0.034343 0.702061 -0.077660 0.062978 0.000011 -0.000015 0.000031 -0.000000 -0.000000 -0.000000 0.000011 -0.000016 0.000029 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 10.323368 -0.000001 -0.000002 -0.570118 -20.027908 1.439773 -1.908802 -7.461407 0.249811 -4.786710 -21.064209 -0.275700 -2.821550 -29.716333 0.116766 0.000003 0.000022 -179.999991 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000001 -0.000000 -0.364920 -1.834622 -2.596547 -0.474171 -2.735915 -72.763385 -0.000003 -8.036742 0.000001 6.342328 0.001083 0.641240 -0.000002 0.000000 0.000000 0.000005 -0.000000 0.000000 -0.000002 0.000001 0.000000 0.000000 -0.000000 0.000000 0.179153 -21.500409 2.687377 -2.458306 16.994241 76.222965 -0.000002 2.188608 -0.000001 6.490711 0.039655 0.091739 0.000000 -0.000000 -0.000001 -0.000004 0.000001 -0.000001 -0.000002 -0.000000 -0.000001 0.000000 0.000003 -0.000001 0.000000 -0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000001 -0.000001 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000002 -0.000000 0.000000 -0.000001 0.000000 -10.781051 -1.071352 -0.081133 0.729393 0.002512 -0.044992 0.714968 0.079793 -0.072407 -0.000015 0.000019 -0.000035 -0.000000 0.000000 0.000000 -0.000014 0.000019 -0.000035 -0.000002 0.000001 0.000000 -0.000000 0.000002 0.000136 -10.778521 1.001412 0.118628 0.672710 0.003768 -0.041640 0.851576 -0.094097 0.076506 0.000005 -0.000017 0.000030 -0.000000 0.000000 -0.000000 0.000006 -0.000016 0.000030 0.000000 0.000000 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 12.333758 -0.000002 -0.000002 -0.742287 -19.459720 1.381567 -2.273080 -7.250344 0.236267 -5.691782 -20.895116 -0.318933 -3.359065 -30.027277 0.128527 0.000003 0.000021 -179.999991 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000001 0.000000 -0.443231 -2.179285 -3.088718 -0.449216 -3.240055 -72.418822 0.000005 -8.392648 -0.000000 7.386772 0.062596 1.605589 0.000000 -0.000000 0.000000 0.000001 -0.000000 -0.000001 0.000001 -0.000000 -0.000001 0.000000 -0.000003 0.000000 0.182749 -20.501448 3.185694 -2.351830 17.109895 75.820858 0.000002 2.601479 0.000001 7.532236 -0.017680 -0.892406 -0.000001 0.000001 -0.000000 0.000002 0.000000 0.000001 0.000001 -0.000000 0.000001 0.000001 -0.000000 0.000000 0.000001 -0.000001 0.000000 0.000000 -0.000002 0.000000 -0.000000 -0.000001 0.000000 0.000001 -0.000001 0.000001 0.000001 -0.000001 -0.000000 0.000001 -0.000002 -0.000000 -12.889279 -1.277983 -0.120466 0.866826 0.002922 -0.053497 0.849701 0.094723 -0.086157 -0.000016 0.000020 -0.000037 -0.000000 -0.000000 -0.000000 -0.000016 0.000019 -0.000038 -0.000002 0.000000 0.000000 -0.000000 0.000003 0.000137 -12.886117 1.193603 0.163709 0.799459 0.004422 -0.049471 1.012050 -0.111699 0.091081 0.000013 -0.000017 0.000031 0.000000 0.000000 0.000000 0.000015 -0.000017 0.000029 -0.000000 0.000001 0.000000 0.000000 0.000003 -0.000099 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 14.490274 -0.000002 -0.000003 -0.924048 -18.855347 1.321871 -2.660054 -7.025817 0.223358 -6.653866 -20.712941 -0.361662 -3.931691 -30.322164 0.138760 0.000003 0.000022 -179.999991 0.000001 0.000001 0.000000 0.000001 0.000001 0.000000 0.000001 0.000001 -0.000000 -0.000000 -0.000004 0.000000 -0.529777 -2.545052 -3.612748 -0.420084 -3.775809 -72.074936 -0.000002 -8.750918 -0.000000 8.500332 0.147631 2.633537 0.000003 0.000000 0.000001 0.000004 0.000000 0.000000 -0.000003 0.000000 -0.000001 -0.000000 0.000001 0.000001 0.176415 -19.437060 3.713119 -2.238448 17.229948 75.407406 -0.000002 3.040341 -0.000001 8.642805 -0.098611 -1.941646 -0.000001 0.000001 -0.000000 -0.000001 -0.000001 0.000001 -0.000002 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000002 0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000001 -0.000001 -0.000000 0.000001 -0.000001 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000001 -0.000001 -15.153692 -1.498113 -0.171146 1.012862 0.003333 -0.062538 0.992860 0.110557 -0.100812 -0.000009 0.000019 -0.000037 0.000000 -0.000000 0.000000 -0.000008 0.000018 -0.000037 -0.000001 0.000001 0.000000 -0.000000 0.000002 0.000136 -15.149780 1.397995 0.219962 0.934143 0.005100 -0.057794 1.182583 -0.130362 0.106622 0.000011 -0.000017 0.000028 -0.000000 -0.000000 -0.000000 0.000012 -0.000016 0.000027 -0.000000 0.000000 0.000000 0.000000 0.000003 -0.000101 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 16.783576 -0.000002 -0.000003 -1.114271 -18.217964 1.261348 -3.067630 -6.789033 0.211414 -7.667652 -20.518696 -0.403049 -4.536466 -30.601409 0.147308 0.000002 0.000022 -179.999991 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 0.000000 -0.000004 0.000000 -0.624679 -2.929826 -4.166027 -0.386624 -4.340297 -71.732197 0.000005 -9.110759 0.000000 9.676904 0.259339 3.719362 -0.000001 -0.000001 0.000001 0.000001 -0.000000 0.000000 0.000002 0.000001 -0.000001 0.000000 -0.000003 0.000000 0.158559 -18.312767 4.266794 -2.118630 17.353779 74.983968 -0.000000 3.502863 0.000002 9.816339 -0.206372 -3.050169 -0.000002 0.000003 0.000000 -0.000002 -0.000001 0.000000 0.000001 -0.000002 0.000001 0.000000 0.000000 -0.000000 -0.000002 -0.000000 0.000001 -0.000002 -0.000001 0.000000 -0.000001 -0.000002 0.000000 -0.000001 -0.000002 0.000001 -0.000000 -0.000001 0.000001 -0.000001 0.000000 0.000001 -17.564950 -1.730073 -0.234626 1.166722 0.003742 -0.072064 1.143695 0.127198 -0.116295 -0.000012 0.000018 -0.000035 -0.000000 -0.000000 -0.000000 -0.000014 0.000018 -0.000034 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 -17.560155 1.612969 0.288681 1.076040 0.005790 -0.066564 1.362263 -0.149971 0.123051 0.000013 -0.000014 0.000030 0.000000 0.000000 -0.000000 0.000013 -0.000013 0.000028 -0.000001 0.000001 0.000000 0.000000 0.000002 -0.000099 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 19.203512 -0.000003 -0.000003 -1.311847 -17.550758 1.200621 -3.493721 -6.541184 0.200737 -8.727765 -20.313384 -0.442303 -5.170395 -30.865454 0.154063 0.000003 0.000024 -179.999991 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 -0.000000 0.000000 0.000000 -0.728012 -3.331481 -4.745939 -0.348735 -4.930623 -71.391036 0.000002 -9.471381 -0.000000 10.910109 0.400617 4.857030 0.000001 -0.000001 0.000000 0.000004 -0.000000 -0.000000 -0.000002 -0.000001 -0.000001 -0.000000 -0.000001 0.000000 0.127753 -17.134228 4.843973 -1.992856 17.480788 74.551897 -0.000002 3.986700 0.000001 11.046444 -0.343952 -4.211843 -0.000001 0.000000 -0.000000 -0.000002 -0.000001 0.000000 -0.000001 -0.000000 0.000003 -0.000000 0.000000 0.000001 0.000001 0.000001 -0.000000 0.000002 0.000001 -0.000000 0.000001 0.000004 0.000000 0.000000 0.000001 -0.000000 0.000001 0.000001 -0.000000 0.000002 0.000000 -0.000001 -20.112805 -1.971984 -0.312237 1.327623 0.004142 -0.082025 1.301444 0.144555 -0.132532 -0.000008 0.000023 -0.000043 0.000000 0.000000 -0.000000 -0.000010 0.000022 -0.000042 -0.000001 0.000000 -0.000000 -0.000000 0.000002 0.000138 -20.106988 1.836711 0.371039 1.224431 0.006491 -0.075739 1.550171 -0.170424 0.140304 0.000011 -0.000013 0.000029 -0.000000 0.000000 0.000000 0.000011 -0.000015 0.000027 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 21.739112 -0.000003 -0.000004 -1.515704 -16.856948 1.140272 -3.936229 -6.283499 0.191615 -9.828801 -20.098076 -0.478682 -5.830431 -31.114667 0.158970 0.000003 0.000023 -179.999991 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 0.000000 -0.000001 0.000000 -0.839796 -3.747920 -5.349848 -0.306355 -5.543884 -71.051931 0.000001 -9.831980 0.000000 12.193226 0.574004 6.040232 -0.000002 -0.000001 0.000000 0.000002 0.000000 0.000000 -0.000002 -0.000001 -0.000001 0.000001 0.000001 -0.000000 0.082750 -15.907260 5.442029 -1.861622 17.610352 74.112552 -0.000001 4.489506 0.000002 12.326422 -0.513980 -5.420242 -0.000000 0.000004 -0.000000 -0.000001 0.000001 -0.000000 -0.000002 -0.000001 0.000003 0.000001 -0.000002 0.000001 -0.000001 0.000003 0.000000 -0.000001 0.000002 -0.000000 0.000000 0.000002 -0.000000 0.000001 0.000001 0.000000 0.000002 -0.000001 0.000001 0.000001 -0.000001 0.000000 -22.786042 -2.221756 -0.405136 1.494784 0.004528 -0.092376 1.465327 0.162543 -0.149452 -0.000012 0.000019 -0.000039 0.000000 -0.000000 0.000000 -0.000012 0.000019 -0.000040 -0.000001 0.000001 0.000000 -0.000000 0.000003 0.000138 -22.779036 2.067214 0.468034 1.378594 0.007193 -0.085271 1.745398 -0.191614 0.158296 0.000010 -0.000015 0.000031 -0.000000 0.000000 -0.000000 0.000012 -0.000015 0.000031 -0.000001 0.000001 0.000000 0.000000 0.000002 -0.000099 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 24.378496 -0.000004 -0.000004 -1.724793 -16.139776 1.080836 -4.393075 -6.017186 0.184296 -10.965307 -19.873902 -0.511507 -6.513496 -31.349486 0.162019 0.000004 0.000021 -179.999991 0.000001 0.000001 0.000000 0.000001 0.000001 0.000000 0.000001 0.000001 -0.000000 -0.000001 0.000000 0.000002 -0.959996 -4.177008 -5.975103 -0.259469 -6.177168 -70.715312 0.000001 -10.191762 -0.000001 13.519276 0.781616 7.262367 0.000002 -0.000001 -0.000001 0.000002 -0.000000 -0.000000 -0.000003 -0.000000 -0.000001 -0.000000 0.000000 -0.000002 0.022508 -14.637831 6.058432 -1.725443 17.741898 73.667306 -0.000002 5.008927 -0.000001 13.649283 -0.718651 -6.668656 -0.000000 0.000002 0.000001 0.000001 -0.000001 -0.000001 -0.000001 -0.000001 -0.000000 -0.000001 -0.000002 0.000000 -0.000001 -0.000001 0.000001 -0.000001 -0.000001 0.000001 -0.000001 -0.000001 0.000001 -0.000001 -0.000002 0.000001 -0.000000 -0.000001 0.000001 0.000000 -0.000002 0.000000 -25.572377 -2.477102 -0.514243 1.667423 0.004896 -0.103069 1.634589 0.181067 -0.166976 -0.000015 0.000022 -0.000041 0.000000 0.000000 0.000000 -0.000017 0.000023 -0.000038 -0.000001 0.000001 0.000000 -0.000000 0.000003 0.000136 -25.563989 2.302301 0.580438 1.537808 0.007891 -0.095118 1.947028 -0.213434 0.176953 0.000013 -0.000016 0.000035 -0.000000 -0.000000 -0.000000 0.000014 -0.000016 0.000032 0.000000 0.000000 0.000000 0.000000 0.000002 -0.000099 0.000002 -0.000000 -0.000000 0.000002 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 27.108884 -0.000004 -0.000004 -1.938107 -15.402498 1.022798 -4.862158 -5.743479 0.179004 -12.131802 -19.641983 -0.540179 -7.216473 -31.570306 0.163233 0.000003 0.000021 -179.999991 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -0.000003 -0.000001 -1.088487 -4.616615 -6.619028 -0.208118 -6.827539 -70.381657 -0.000001 -10.549930 0.000000 14.881053 1.025060 8.516612 -0.000004 0.000001 -0.000001 -0.000002 -0.000000 0.000000 -0.000000 0.000002 -0.000001 -0.000002 0.000002 -0.000000 -0.053800 -13.332009 6.690744 -1.584851 17.874848 73.217511 0.000001 5.542600 0.000000 15.007777 -0.959639 -7.950123 -0.000000 0.000001 0.000000 -0.000002 0.000001 0.000000 -0.000001 -0.000001 0.000002 -0.000001 -0.000004 0.000001 -0.000002 -0.000001 0.000000 -0.000002 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000001 0.000001 -0.000000 -0.000000 0.000000 -0.000000 -28.458477 -2.735579 -0.640192 1.844757 0.005239 -0.114051 1.808466 0.200043 -0.185038 -0.000013 0.000021 -0.000040 -0.000000 0.000000 -0.000000 -0.000015 0.000022 -0.000040 -0.000001 0.000001 0.000000 -0.000000 0.000002 0.000137 -28.448489 2.539658 0.708744 1.701353 0.008580 -0.105235 2.154157 -0.235778 0.196197 0.000012 -0.000015 0.000030 -0.000000 0.000000 0.000000 0.000012 -0.000016 0.000029 -0.000002 -0.000000 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 29.916673 -0.000005 -0.000005 -2.154677 -14.648406 0.966595 -5.341414 -5.463623 0.175924 -13.322799 -19.403528 -0.564176 -7.936215 -31.777500 0.162680 0.000003 0.000022 -179.999991 0.000001 -0.000001 -0.000000 0.000001 -0.000001 -0.000000 0.000001 -0.000001 -0.000001 0.000001 -0.000000 -0.000001 -1.225081 -5.064607 -7.278927 -0.152377 -7.492075 -70.051424 0.000002 -10.905685 0.000000 16.271128 1.305389 9.795952 0.000001 -0.000000 -0.000001 0.000003 0.000000 0.000000 -0.000002 0.000000 -0.000001 0.000001 0.000000 -0.000000 -0.146783 -11.996022 7.336616 -1.440400 18.008639 72.764601 0.000000 6.088167 -0.000000 16.394467 -1.238057 -9.257482 0.000001 -0.000000 0.000000 0.000000 0.000001 0.000001 0.000000 -0.000002 0.000001 -0.000002 -0.000004 0.000001 -0.000002 0.000001 -0.000000 -0.000003 0.000000 -0.000000 -0.000001 0.000001 0.000000 -0.000002 0.000001 0.000000 0.000001 0.000001 -0.000001 0.000002 -0.000000 -0.000001 -31.429952 -2.994626 -0.783280 2.026006 0.005555 -0.125278 1.986184 0.219379 -0.203554 -0.000017 0.000022 -0.000043 0.000000 0.000000 0.000000 -0.000019 0.000024 -0.000043 -0.000001 0.000000 0.000000 -0.000000 0.000002 0.000136 -31.418133 2.776872 0.853126 1.868506 0.009254 -0.115578 2.365872 -0.258543 0.215952 0.000014 -0.000015 0.000032 0.000000 -0.000000 0.000000 0.000016 -0.000016 0.000029 -0.000001 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 32.787422 -0.000005 -0.000005 -2.373542 -13.880795 0.912607 -5.828743 -5.178847 0.175204 -14.532790 -19.159756 -0.583072 -8.669535 -31.971477 0.160459 0.000000 0.000020 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 -0.000001 -1.369500 -5.518881 -7.952076 -0.092382 -8.167828 -69.725132 -0.000000 -11.258218 0.000001 17.681931 1.623023 11.093233 -0.000000 -0.000002 -0.000001 0.000004 -0.000000 0.000000 -0.000001 -0.000001 0.000000 -0.000000 -0.000001 0.000001 -0.256801 -10.636187 7.993744 -1.292646 18.142710 72.309956 0.000000 6.643257 -0.000000 17.801744 -1.554378 -10.583440 0.000001 0.000003 -0.000001 -0.000000 -0.000001 0.000000 0.000001 -0.000001 0.000001 -0.000001 0.000002 -0.000001 -0.000000 0.000000 -0.000000 -0.000001 0.000001 -0.000000 -0.000002 -0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000001 0.000001 -0.000000 -34.471439 -3.251618 -0.943423 2.210385 0.005840 -0.136701 2.166973 0.238991 -0.222457 -0.000014 0.000023 -0.000042 -0.000000 0.000000 -0.000000 -0.000015 0.000023 -0.000042 -0.000000 0.000001 0.000000 -0.000001 0.000002 0.000136 -34.457563 3.011492 1.013403 2.038547 0.009910 -0.126099 2.581249 -0.281628 0.236136 0.000016 -0.000018 0.000035 -0.000000 0.000000 -0.000000 0.000016 -0.000018 0.000034 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 35.706036 -0.000006 -0.000005 -2.593782 -13.103000 0.861163 -6.322078 -4.890406 0.176954 -15.756277 -18.911897 -0.596532 -9.413228 -32.152637 0.156691 0.000002 0.000022 -179.999991 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000001 0.000000 0.000001 -1.521386 -5.977309 -8.635713 -0.028303 -8.851859 -69.403226 0.000002 -11.606742 -0.000000 19.105801 1.977729 12.401246 -0.000003 -0.000001 0.000000 -0.000001 0.000000 -0.000000 0.000002 0.000001 -0.000000 0.000001 0.000002 -0.000000 -0.384003 -9.258905 8.659868 -1.142179 18.276533 71.855011 -0.000000 7.205478 -0.000001 19.221945 -1.908397 -11.920632 0.000002 0.000003 0.000000 -0.000000 -0.000002 0.000000 -0.000000 -0.000000 -0.000001 0.000001 -0.000001 -0.000000 -0.000002 0.000001 0.000000 0.000000 -0.000001 0.000001 -0.000001 0.000000 0.000001 -0.000003 -0.000001 0.000000 0.000001 -0.000001 -0.000000 -0.000001 -0.000000 -0.000001 -37.566741 -3.503946 -1.120145 2.397113 0.006092 -0.148268 2.350079 0.258793 -0.241663 -0.000020 0.000023 -0.000046 -0.000000 -0.000000 -0.000000 -0.000021 0.000023 -0.000047 -0.000001 0.000000 -0.000000 -0.000000 0.000002 0.000137 -37.550532 3.241090 1.189017 2.210753 0.010541 -0.136758 2.799378 -0.304927 0.256661 0.000013 -0.000019 0.000034 0.000000 0.000000 -0.000000 0.000013 -0.000018 0.000035 -0.000001 0.000000 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 38.656897 -0.000007 -0.000005 -2.814497 -12.318343 0.812536 -6.819345 -4.599541 0.181241 -16.987792 -18.661228 -0.604333 -10.164080 -32.321405 0.151514 0.000001 0.000023 -179.999991 -0.000000 0.000002 -0.000001 -0.000000 0.000002 -0.000001 -0.000000 0.000002 -0.000001 -0.000001 -0.000002 0.000002 -1.680267 -6.437823 -9.327060 0.039631 -9.541233 -69.086250 0.000005 -11.950444 -0.000000 20.535128 2.368597 13.712802 0.000001 -0.000001 -0.000000 0.000002 0.000002 -0.000000 0.000002 0.000001 -0.000001 0.000003 -0.000001 -0.000000 -0.528267 -7.870634 9.332756 -0.989601 18.409586 71.401145 0.000000 7.772469 -0.000002 20.647382 -2.299223 -13.261710 0.000000 -0.000002 -0.000002 0.000001 -0.000002 -0.000000 0.000000 0.000000 -0.000001 -0.000002 -0.000001 -0.000000 -0.000001 0.000001 0.000001 -0.000002 0.000003 -0.000001 -0.000001 0.000003 0.000000 0.000000 0.000002 0.000001 0.000003 -0.000000 -0.000001 0.000002 -0.000001 0.000000 -40.698932 -3.749077 -1.312550 2.585406 0.006307 -0.159935 2.534725 0.278696 -0.261088 -0.000017 0.000024 -0.000047 -0.000000 -0.000000 -0.000000 -0.000017 0.000024 -0.000047 -0.000001 0.000001 0.000000 -0.000000 0.000002 0.000136 -40.680135 3.463333 1.379032 2.384402 0.011145 -0.147508 3.019348 -0.328347 0.277453 0.000015 -0.000017 0.000032 0.000000 0.000000 -0.000000 0.000016 -0.000017 0.000030 -0.000001 -0.000000 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 41.623962 -0.000007 -0.000006 -3.034833 -11.530167 0.766949 -7.318477 -4.307507 0.188091 -18.221883 -18.409030 -0.606353 -10.918827 -32.478140 0.145093 0.000001 0.000026 -179.999991 -0.000001 0.000002 0.000000 -0.000001 0.000002 0.000000 -0.000001 0.000002 -0.000000 0.000000 -0.000004 0.000002 -1.845601 -6.898333 -10.023292 0.111139 -10.233017 -68.774732 0.000003 -12.288525 -0.000001 21.962364 2.794041 15.020810 -0.000000 0.000000 -0.000001 0.000001 0.000001 -0.000000 0.000000 -0.000001 -0.000002 0.000001 0.000002 -0.000000 -0.689256 -6.477874 10.010168 -0.835522 18.541365 70.949847 0.000000 8.341843 -0.000002 22.070486 -2.725278 -14.599406 0.000000 -0.000001 0.000000 -0.000000 -0.000002 0.000000 0.000000 -0.000000 -0.000001 -0.000001 -0.000001 0.000000 -0.000002 0.000001 -0.000000 -0.000001 0.000002 0.000000 -0.000001 -0.000001 0.000000 -0.000003 0.000001 -0.000000 -0.000004 -0.000002 0.000001 -0.000004 -0.000000 -0.000000 -43.850586 -3.984644 -1.519351 2.774482 0.006483 -0.171649 2.720145 0.298620 -0.280661 -0.000017 0.000024 -0.000047 0.000000 -0.000001 0.000000 -0.000016 0.000024 -0.000046 -0.000001 0.000000 -0.000000 0.000000 0.000001 0.000136 -43.828945 3.676052 1.582143 2.558774 0.011722 -0.158303 3.240242 -0.351778 0.298415 0.000014 -0.000019 0.000036 -0.000000 -0.000000 -0.000000 0.000015 -0.000019 0.000035 -0.000002 -0.000001 0.000000 0.000000 0.000004 -0.000099 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 44.591033 -0.000008 -0.000006 -3.253933 -10.741826 0.724571 -7.817401 -4.015548 0.197491 -19.453135 -18.156566 -0.602566 -11.674228 -32.623282 0.137597 0.000002 0.000024 -179.999991 0.000000 0.000002 -0.000000 0.000000 0.000002 -0.000000 0.000000 0.000002 -0.000000 -0.000001 -0.000004 -0.000001 -2.016729 -7.356816 -10.721565 0.185912 -10.924274 -68.469190 0.000001 -12.620193 -0.000000 23.380069 3.251788 16.318333 0.000001 -0.000001 0.000000 0.000004 0.000001 -0.000000 0.000001 0.000001 0.000001 0.000005 -0.000001 -0.000003 -0.866362 -5.087098 10.689845 -0.680586 18.671388 70.502551 0.000001 8.911212 -0.000001 23.483797 -3.184278 -15.926627 -0.000002 0.000000 0.000002 -0.000001 -0.000002 -0.000002 0.000000 -0.000001 -0.000000 -0.000001 0.000002 -0.000001 0.000003 -0.000000 -0.000000 0.000005 -0.000001 0.000000 0.000006 -0.000001 0.000000 0.000002 -0.000000 0.000000 -0.000008 -0.000002 0.000001 -0.000006 -0.000002 0.000001 -47.003972 -4.208506 -1.738884 2.963559 0.006623 -0.183364 2.905571 0.318481 -0.300300 -0.000018 0.000024 -0.000047 0.000000 0.000000 -0.000000 -0.000019 0.000023 -0.000047 -0.000001 0.000001 0.000000 -0.000001 0.000002 0.000137 -46.979226 3.877312 1.796708 2.733145 0.012260 -0.169102 3.461151 -0.375133 0.319472 0.000011 -0.000016 0.000034 -0.000001 0.000000 -0.000000 0.000011 -0.000017 0.000033 -0.000002 -0.000001 -0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 47.541877 -0.000009 -0.000006 -3.470970 -9.956678 0.685519 -8.314048 -3.724913 0.209376 -20.676204 -17.905121 -0.593067 -12.427011 -32.757215 0.129212 0.000002 0.000027 -179.999991 0.000000 0.000003 0.000000 0.000000 0.000003 0.000000 0.000000 0.000003 0.000000 0.000001 -0.000003 -0.000001 -2.192905 -7.811258 -11.418984 0.263570 -11.612078 -68.170233 0.000004 -12.944634 -0.000000 24.781072 3.738939 17.598674 0.000000 -0.000002 0.000000 0.000006 -0.000001 0.000002 -0.000000 0.000001 0.000001 0.000003 -0.000001 0.000001 -1.058756 -3.704769 11.369476 -0.525441 18.799182 70.060706 0.000000 9.478201 -0.000000 24.880139 -3.673298 -17.236517 -0.000001 0.000003 0.000002 -0.000000 -0.000004 -0.000000 -0.000001 0.000001 0.000000 0.000004 -0.000002 0.000001 -0.000000 -0.000002 0.000001 0.000002 0.000000 0.000000 -0.000002 -0.000000 0.000000 -0.000002 -0.000001 -0.000000 -0.000001 -0.000002 0.000001 -0.000006 -0.000002 0.000001 -50.141313 -4.418825 -1.969159 3.151852 0.006722 -0.195033 3.090242 0.338196 -0.319922 -0.000018 0.000024 -0.000045 0.000000 0.000000 0.000000 -0.000019 0.000025 -0.000046 -0.000001 0.000002 0.000000 -0.000000 0.000003 0.000135 -50.113231 4.065468 2.020788 2.906796 0.012768 -0.179857 3.681145 -0.398307 0.340529 0.000014 -0.000019 0.000037 0.000000 -0.000000 -0.000000 0.000016 -0.000020 0.000034 -0.000001 0.000000 -0.000000 -0.000000 0.000003 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 50.460512 -0.000009 -0.000006 -3.685131 -9.178063 0.649864 -8.806348 -3.436845 0.223648 -21.885806 -17.655942 -0.578040 -13.173916 -32.880384 0.120125 0.000003 0.000022 -179.999991 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 -0.000001 0.000002 -0.000000 -2.373281 -8.259696 -12.112628 0.343703 -12.293531 -67.878420 0.000004 -13.261059 -0.000001 26.158470 4.251995 18.855449 -0.000000 -0.000001 -0.000000 0.000001 -0.000002 0.000001 0.000002 0.000004 -0.000001 0.000004 0.000000 -0.000003 -1.265340 -2.337273 12.046689 -0.370772 18.924304 69.625801 0.000001 10.040428 -0.000001 26.252565 -4.188787 -18.522522 -0.000003 0.000002 0.000001 0.000001 0.000001 0.000000 -0.000000 0.000003 -0.000000 -0.000002 0.000001 -0.000001 -0.000004 0.000002 -0.000000 -0.000002 0.000002 -0.000000 -0.000003 0.000001 -0.000000 -0.000005 0.000001 -0.000000 0.000005 0.000000 -0.000000 0.000000 0.000000 -0.000001 -53.244999 -4.614109 -2.207924 3.338580 0.006785 -0.206603 3.273376 0.357685 -0.339443 -0.000021 0.000023 -0.000043 -0.000000 0.000000 0.000000 -0.000022 0.000021 -0.000042 -0.000001 0.000001 0.000000 -0.000000 0.000003 0.000135 -53.213396 4.239215 2.252213 3.079001 0.013237 -0.190523 3.899320 -0.421211 0.361502 0.000014 -0.000018 0.000034 -0.000000 0.000001 0.000000 0.000016 -0.000018 0.000035 -0.000001 -0.000002 -0.000000 0.000000 0.000001 -0.000099 0.000002 -0.000000 0.000000 0.000002 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 53.331254 -0.000010 -0.000006 -3.895619 -8.409340 0.617625 -9.292281 -3.152586 0.240165 -23.076728 -17.410277 -0.557777 -13.911674 -32.993181 0.110519 0.000001 0.000023 -179.999991 -0.000001 0.000003 -0.000001 -0.000001 0.000003 -0.000001 -0.000001 0.000003 -0.000001 -0.000002 0.000002 -0.000001 -2.556913 -8.700214 -12.799535 0.425842 -12.965736 -67.594407 0.000002 -13.568655 0.000000 27.505705 4.786922 20.082607 0.000000 0.000001 0.000000 -0.000003 -0.000001 0.000002 0.000000 0.000003 0.000001 -0.000001 -0.000000 -0.000000 -1.484790 -0.990919 12.719035 -0.217232 19.046314 69.199297 -0.000001 10.595511 -0.000002 27.594531 -4.726680 -19.778467 -0.000001 0.000001 0.000002 0.000001 -0.000000 0.000000 -0.000001 -0.000002 -0.000001 0.000001 0.000001 -0.000002 -0.000003 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000005 -0.000001 0.000000 -0.000003 0.000001 -0.000000 0.000001 0.000000 -0.000000 0.000003 0.000000 -0.000000 -56.297841 -4.793250 -2.452722 3.522961 0.006806 -0.218029 3.454219 0.376868 -0.358778 -0.000015 0.000026 -0.000047 0.000001 -0.000000 -0.000000 -0.000016 0.000024 -0.000046 -0.000000 0.000002 0.000000 -0.000000 0.000002 0.000135 -56.262515 4.397608 2.488638 3.249043 0.013670 -0.201059 4.114767 -0.443744 0.382288 0.000015 -0.000017 0.000034 -0.000000 0.000000 -0.000000 0.000017 -0.000018 0.000034 -0.000000 -0.000000 -0.000000 -0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 56.139032 -0.000011 -0.000006 -4.101646 -7.653834 0.588781 -9.769771 -2.873368 0.258745 -24.243835 -17.169328 -0.532655 -14.637037 -33.096040 0.100583 0.000003 0.000019 -179.999991 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000001 0.000001 0.000000 -2.742777 -9.130928 -13.476714 0.509490 -13.625805 -67.318795 0.000003 -13.866629 0.000001 28.816602 5.339218 21.274516 0.000002 -0.000002 0.000000 0.000003 -0.000003 0.000001 -0.000001 0.000001 -0.000001 -0.000000 -0.000000 -0.000000 -1.715532 0.328115 13.383955 -0.065536 19.164794 68.782641 0.000000 11.141080 -0.000001 28.899845 -5.282396 -20.998541 0.000001 0.000003 0.000002 0.000000 -0.000002 0.000000 -0.000000 -0.000000 0.000000 -0.000001 0.000001 -0.000001 -0.000001 0.000000 -0.000001 -0.000007 -0.000000 -0.000000 -0.000005 0.000001 -0.000000 -0.000002 0.000000 0.000000 0.000003 -0.000001 -0.000000 0.000001 -0.000001 -0.000000 -59.283248 -4.955546 -2.700979 3.704210 0.006794 -0.229259 3.632002 0.395665 -0.377847 -0.000023 0.000025 -0.000048 0.000001 -0.000000 0.000000 -0.000023 0.000025 -0.000046 -0.000000 0.000002 0.000000 -0.000001 0.000002 0.000136 -59.244091 4.540095 2.727628 3.416196 0.014064 -0.211414 4.326547 -0.465821 0.402815 0.000014 -0.000017 0.000037 -0.000001 -0.000001 -0.000000 0.000015 -0.000017 0.000035 -0.000001 -0.000001 -0.000000 0.000000 0.000003 -0.000100 0.000002 0.000000 -0.000000 0.000002 0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 58.869441 -0.000011 -0.000006 -4.302424 -6.914879 0.563266 -10.236764 -2.600412 0.279166 -25.382100 -16.934284 -0.503138 -15.346750 -33.189405 0.090498 0.000003 0.000015 -179.999991 0.000001 -0.000005 -0.000000 0.000001 -0.000005 -0.000000 0.000001 -0.000005 -0.000000 0.000000 0.000001 0.000001 -2.929733 -9.550011 -14.141131 0.594089 -14.270902 -67.052288 -0.000003 -14.154171 0.000001 30.085368 5.903989 22.425941 0.000001 -0.000001 0.000001 0.000000 -0.000001 0.000000 -0.000001 0.000002 -0.000001 -0.000001 -0.000001 0.000001 -1.955759 1.613791 14.038786 0.083622 19.279338 68.377379 0.000001 11.674760 -0.000002 30.162764 -5.850974 -22.177392 0.000004 0.000001 0.000001 0.000000 0.000000 0.000000 0.000001 0.000005 -0.000000 0.000003 0.000001 -0.000000 0.000001 0.000001 -0.000000 0.000002 -0.000001 0.000000 -0.000001 -0.000000 0.000000 0.000001 0.000000 0.000001 -0.000002 -0.000001 -0.000000 -0.000003 -0.000001 0.000000 -62.185478 -5.100698 -2.950079 3.881542 0.006747 -0.240248 3.805943 0.413998 -0.396557 -0.000019 0.000024 -0.000042 -0.000000 0.000000 -0.000000 -0.000020 0.000024 -0.000039 -0.000001 0.000001 0.000000 -0.000000 0.000002 0.000136 -62.142386 4.666496 2.966718 3.579743 0.014421 -0.221549 4.533774 -0.487347 0.422970 0.000014 -0.000017 0.000037 -0.000001 0.000000 -0.000000 0.000016 -0.000016 0.000035 -0.000000 0.000000 0.000000 -0.000000 0.000003 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 61.508804 -0.000012 -0.000006 -4.497185 -6.195785 0.540976 -10.691236 -2.334938 0.301173 -26.486545 -16.706270 -0.469775 -16.037598 -33.273693 0.080429 0.000003 0.000022 -179.999991 0.000000 -0.000002 -0.000000 0.000000 -0.000002 -0.000000 0.000000 -0.000002 -0.000001 -0.000001 0.000001 -0.000000 -3.116597 -9.955693 -14.789736 0.679055 -14.898159 -66.795596 -0.000001 -14.430487 -0.000001 31.306623 6.476012 23.532081 0.000004 -0.000003 0.000000 0.000003 -0.000001 -0.000000 -0.000003 0.000005 -0.000002 -0.000000 0.000000 0.000002 -2.203439 2.860227 14.680727 0.229502 19.389555 67.984991 0.000004 12.194176 -0.000001 31.377910 -6.427122 -23.310083 -0.000003 0.000000 -0.000000 -0.000002 0.000002 0.000000 0.000001 0.000002 0.000000 0.000001 -0.000001 0.000001 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000001 0.000000 0.000000 0.000000 0.000002 0.000000 -0.000000 -0.000003 0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -64.989585 -5.228780 -3.197417 4.054182 0.006670 -0.250945 3.975285 0.431791 -0.414826 -0.000021 0.000023 -0.000049 -0.000000 -0.000000 0.000000 -0.000021 0.000022 -0.000047 -0.000001 0.000001 0.000000 -0.000000 0.000002 0.000136 -64.942525 4.776980 3.203477 3.738959 0.014740 -0.231416 4.735512 -0.508234 0.442668 0.000020 -0.000018 0.000035 -0.000000 -0.000000 0.000000 0.000019 -0.000020 0.000034 -0.000000 -0.000001 0.000001 0.000000 0.000002 -0.000101 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 64.044409 -0.000012 -0.000006 -4.685146 -5.499846 0.521772 -11.131111 -2.078153 0.324476 -27.552344 -16.486398 -0.433176 -16.706339 -33.349348 0.070536 0.000003 0.000023 -179.999991 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 -0.000000 0.000001 0.000001 0.000001 -3.302078 -10.346248 -15.419427 0.763758 -15.504779 -66.549450 0.000000 -14.694768 0.000001 32.475364 7.049834 24.588553 0.000002 -0.000001 0.000000 0.000002 -0.000003 0.000002 -0.000001 0.000006 -0.000001 -0.000002 -0.000003 0.000001 -2.456317 4.061715 15.306842 0.371379 19.495079 67.606968 0.000001 12.696984 -0.000000 32.540377 -7.005318 -24.392101 -0.000000 -0.000001 -0.000000 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000001 -0.000002 0.000001 0.000001 -0.000001 -0.000001 0.000000 0.000003 -0.000001 -0.000000 0.000003 -0.000001 0.000000 0.000002 0.000000 0.000001 -0.000001 -0.000001 -0.000000 -0.000001 -0.000001 -0.000000 -67.681806 -5.340230 -3.440488 4.221342 0.006561 -0.261303 4.139268 0.448970 -0.432567 -0.000018 0.000025 -0.000043 0.000000 -0.000000 -0.000000 -0.000020 0.000023 -0.000043 -0.000000 0.000002 0.000000 0.000000 0.000002 0.000135 -67.630778 4.872054 3.435576 3.893122 0.015025 -0.240969 4.930855 -0.528389 0.461810 0.000017 -0.000017 0.000034 -0.000001 0.000000 -0.000000 0.000017 -0.000018 0.000033 -0.000001 0.000001 0.000000 -0.000000 0.000002 -0.000100 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 66.464352 -0.000013 -0.000006 -4.865538 -4.830340 0.505480 -11.554376 -1.831252 0.348755 -28.574706 -16.275694 -0.394008 -17.349816 -33.416817 0.060966 0.000002 0.000021 -179.999991 0.000000 -0.000003 -0.000002 0.000000 -0.000003 -0.000002 0.000000 -0.000003 -0.000002 0.000000 0.000001 -0.000000 -3.484828 -10.720011 -16.027109 0.847544 -16.087956 -66.314594 0.000003 -14.946226 -0.000001 33.587080 7.619855 25.591385 -0.000003 0.000002 0.000000 0.000002 -0.000003 0.000001 -0.000001 0.000002 -0.000000 0.000001 0.000001 0.000001 -2.711936 5.212761 15.914069 0.508526 19.595567 67.244831 0.000003 13.180821 0.000000 33.645666 -7.579861 -25.419377 0.000002 0.000002 -0.000001 -0.000002 0.000001 -0.000000 0.000002 0.000001 0.000001 0.000001 0.000000 0.000002 -0.000004 0.000000 -0.000000 -0.000003 0.000000 0.000000 -0.000002 0.000001 0.000000 -0.000000 0.000000 -0.000000 -0.000003 -0.000000 -0.000000 -0.000002 -0.000000 0.000000 -70.249370 -5.435783 -3.676921 4.382245 0.006430 -0.271272 4.297110 0.465454 -0.449688 -0.000019 0.000025 -0.000046 0.000000 -0.000000 0.000000 -0.000019 0.000023 -0.000046 -0.000001 0.000001 -0.000000 0.000000 0.000002 0.000136 -70.194428 4.952502 3.660824 4.041514 0.015274 -0.250167 5.118887 -0.547729 0.480301 0.000015 -0.000016 0.000036 0.000000 0.000000 -0.000000 0.000017 -0.000017 0.000035 -0.000001 -0.000001 -0.000000 -0.000000 0.000002 -0.000100 -0.000002 0.000000 -0.000000 -0.000002 0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 68.757650 -0.000013 -0.000006 -5.037586 -4.190523 0.491901 -11.958977 -1.595425 0.373664 -29.548983 -16.075195 -0.352996 -17.964834 -33.476543 0.051851 0.000002 0.000021 -179.999991 -0.000000 -0.000001 -0.000001 -0.000000 -0.000001 -0.000001 -0.000000 -0.000001 -0.000001 0.000002 -0.000000 0.000000 -3.663431 -11.075360 -16.609616 0.929698 -16.644911 -66.091827 -0.000005 -15.184048 0.000000 34.637539 8.180386 26.537008 -0.000000 -0.000000 -0.000000 -0.000002 -0.000003 -0.000000 -0.000005 0.000002 0.000001 -0.000001 -0.000000 0.000001 -2.967646 6.308020 16.499183 0.640192 19.690648 66.900077 -0.000000 13.643339 -0.000002 34.689609 -8.144976 -26.388210 -0.000001 -0.000000 -0.000001 -0.000000 0.000001 -0.000000 -0.000000 0.000004 -0.000001 0.000000 -0.000000 0.000001 0.000005 0.000000 0.000000 -0.000001 0.000000 -0.000000 -0.000001 -0.000000 0.000000 0.000004 0.000000 0.000000 -0.000001 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -72.680548 -5.516435 -3.904516 4.536105 0.006278 -0.280804 4.448050 0.481176 -0.466103 -0.000023 0.000025 -0.000044 -0.000000 0.000000 0.000000 -0.000024 0.000025 -0.000043 -0.000000 0.000001 0.000000 0.000000 0.000002 0.000137 -72.621822 5.019335 3.877206 4.183414 0.015489 -0.258963 5.298695 -0.566167 0.498043 0.000015 -0.000019 0.000036 -0.000000 -0.000000 -0.000000 0.000015 -0.000020 0.000033 -0.000001 -0.000001 0.000000 -0.000000 0.000003 -0.000101 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 70.914186 -0.000014 -0.000006 -5.200509 -3.583621 0.480810 -12.342888 -1.371850 0.398833 -30.470563 -15.885842 -0.310897 -18.548248 -33.528958 0.043299 0.000003 0.000020 -179.999991 -0.000000 -0.000004 0.000000 -0.000000 -0.000004 0.000000 -0.000000 -0.000004 0.000000 -0.000000 0.000000 0.000001 -3.836431 -11.410731 -17.163818 1.009531 -17.172892 -65.881956 -0.000001 -15.407442 -0.000001 35.622876 8.725696 27.422151 -0.000000 -0.000003 0.000000 0.000002 0.000002 -0.000001 -0.000003 0.000005 -0.000000 0.000002 -0.000001 -0.000000 -3.220629 7.342365 17.058838 0.765621 19.779996 66.574236 -0.000002 14.082206 -0.000001 35.668436 -8.694879 -27.295256 0.000000 0.000003 -0.000001 -0.000001 -0.000001 0.000000 -0.000002 0.000002 0.000001 0.000000 0.000001 -0.000002 -0.000002 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000002 -0.000001 0.000000 -0.000001 -0.000001 -0.000000 -74.964700 -5.583372 -4.121273 4.682144 0.006111 -0.289852 4.591324 0.496058 -0.481726 -0.000024 0.000023 -0.000042 0.000000 -0.000000 -0.000000 -0.000024 0.000023 -0.000041 -0.000000 0.000001 -0.000000 -0.000000 0.000002 0.000136 -74.902306 5.073744 4.082891 4.318099 0.015672 -0.267310 5.469366 -0.583612 0.514932 0.000013 -0.000019 0.000037 0.000000 0.000000 -0.000000 0.000016 -0.000019 0.000037 -0.000001 -0.000000 -0.000001 -0.000001 0.000003 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 72.924564 -0.000014 -0.000006 -5.353526 -3.012870 0.471962 -12.704072 -1.161693 0.423874 -31.334961 -15.708573 -0.268497 -19.096929 -33.574492 0.035412 0.000002 0.000023 -179.999991 -0.000000 0.000001 -0.000002 -0.000000 0.000001 -0.000002 -0.000000 0.000001 -0.000001 -0.000001 -0.000001 -0.000000 -4.002323 -11.724586 -17.686505 1.086270 -17.669146 -65.685806 0.000005 -15.615609 -0.000002 36.539480 9.250101 28.243874 -0.000000 -0.000001 -0.000000 -0.000001 -0.000001 0.000000 -0.000001 0.000005 -0.000002 0.000004 -0.000000 -0.000001 -3.467907 8.310837 17.589542 0.884057 19.863293 66.268804 -0.000002 14.495080 -0.000002 36.578607 -9.223781 -28.137451 0.000001 0.000003 0.000000 0.000000 0.000005 -0.000001 -0.000002 0.000006 -0.000003 -0.000002 -0.000000 -0.000002 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000002 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 -77.092079 -5.637925 -4.325394 4.819577 0.005933 -0.298367 4.726159 0.510025 -0.496454 -0.000026 0.000023 -0.000048 -0.000001 -0.000000 0.000001 -0.000027 0.000024 -0.000045 -0.000000 0.000001 -0.000000 0.000000 0.000003 0.000136 -77.026202 5.117040 4.276253 4.444851 0.015827 -0.275169 5.629987 -0.599984 0.530876 0.000013 -0.000020 0.000036 -0.000000 -0.000001 -0.000001 0.000014 -0.000021 0.000035 -0.000000 0.000001 -0.000000 0.000000 0.000002 -0.000101 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 74.780162 -0.000015 -0.000006 -5.495846 -2.481456 0.465100 -13.040494 -0.966115 0.448385 -32.137700 -15.544261 -0.226604 -19.607784 -33.613625 0.028261 0.000003 0.000020 -179.999991 0.000001 -0.000002 0.000001 0.000001 -0.000002 0.000001 0.000001 -0.000002 0.000001 -0.000002 0.000001 -0.000000 -4.159563 -12.015440 -18.174508 1.159170 -18.130969 -65.504253 -0.000002 -15.807742 -0.000002 37.383992 9.747999 28.999474 0.000001 -0.000001 0.000000 0.000001 -0.000003 0.000001 -0.000002 0.000004 -0.000002 0.000004 -0.000000 -0.000000 -3.706366 9.208621 18.087676 0.994759 19.940208 65.985310 -0.000001 14.879622 -0.000002 37.416873 -9.726026 -28.911993 -0.000001 -0.000000 -0.000000 -0.000001 0.000004 -0.000003 -0.000002 0.000000 -0.000002 -0.000002 0.000002 -0.000000 -0.000000 0.000001 -0.000000 0.000001 0.000001 -0.000000 0.000001 0.000001 -0.000000 -0.000001 0.000001 -0.000000 0.000001 -0.000000 0.000000 0.000002 -0.000000 0.000000 -79.053784 -5.681507 -4.515287 4.947625 0.005748 -0.306299 4.851788 0.523009 -0.510211 -0.000017 0.000024 -0.000047 -0.000001 -0.000000 0.000000 -0.000019 0.000026 -0.000048 -0.000001 0.000000 -0.000000 0.000000 0.000002 0.000136 -78.984635 5.150607 4.455855 4.562948 0.015958 -0.282490 5.779636 -0.615199 0.545774 0.000013 -0.000018 0.000036 0.000000 -0.000001 0.000000 0.000014 -0.000019 0.000033 -0.000001 -0.000001 0.000000 0.000000 0.000002 -0.000101 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 76.472861 -0.000015 -0.000006 -5.626665 -1.992563 0.459956 -13.350136 -0.786269 0.471952 -32.874442 -15.393771 -0.186026 -20.077727 -33.646775 0.021901 0.000002 0.000026 -179.999991 -0.000000 0.000003 0.000000 -0.000000 0.000003 0.000000 -0.000000 0.000003 0.000000 0.000000 0.000002 -0.000001 -4.306597 -12.281845 -18.624628 1.227462 -18.555638 -65.338150 0.000001 -15.983047 -0.000000 38.153269 10.213924 29.686410 0.000000 -0.000001 0.000001 0.000000 0.000001 -0.000002 -0.000003 0.000002 0.000001 0.000006 0.000002 -0.000000 -3.932848 10.031089 18.549556 1.096940 20.010414 65.725278 -0.000001 15.233526 -0.000002 38.180156 -10.196065 -29.616298 -0.000002 0.000002 -0.000001 -0.000001 0.000002 -0.000001 -0.000001 0.000002 -0.000001 -0.000002 0.000000 -0.000000 -0.000001 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000001 0.000000 0.000000 0.000001 -0.000001 -0.000000 -0.000001 -0.000001 -0.000000 -80.841579 -5.715564 -4.689549 5.065509 0.005561 -0.313604 4.967450 0.534937 -0.522901 -0.000020 0.000024 -0.000046 0.000000 -0.000001 0.000000 -0.000020 0.000024 -0.000045 -0.000001 0.000002 0.000001 0.000000 0.000002 0.000135 -80.769446 5.175856 4.620444 4.671672 0.016064 -0.289229 5.917410 -0.629172 0.559521 0.000014 -0.000015 0.000034 0.000001 -0.000000 -0.000000 0.000012 -0.000016 0.000033 -0.000001 -0.000000 -0.000000 0.000000 0.000003 -0.000100 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 77.995023 -0.000016 -0.000006 -5.745198 -1.549361 0.456259 -13.630962 -0.623294 0.494163 -33.540819 -15.257917 -0.147571 -20.503707 -33.674414 0.016369 0.000002 0.000022 -179.999991 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000001 -0.000001 0.000000 -4.441863 -12.522354 -19.033663 1.290362 -18.940471 -65.188364 0.000001 -16.140727 -0.000002 38.844225 10.642542 30.302302 -0.000000 -0.000001 0.000000 0.000002 -0.000001 -0.000001 -0.000001 0.000001 -0.000000 -0.000001 0.000001 -0.000001 -4.144094 10.773695 18.971356 1.189873 20.073607 65.490197 -0.000003 15.554468 -0.000001 38.865477 -10.628507 -30.247834 -0.000001 0.000001 -0.000000 -0.000003 0.000005 -0.000001 -0.000001 -0.000001 -0.000001 -0.000000 0.000001 0.000002 0.000001 0.000000 -0.000000 0.000002 0.000000 0.000000 0.000001 0.000000 0.000000 0.000003 0.000000 0.000000 -0.000003 -0.000000 -0.000000 -0.000004 -0.000000 0.000000 -82.447760 -5.741533 -4.846945 5.172447 0.005381 -0.320225 5.072377 0.545733 -0.534431 -0.000021 0.000024 -0.000044 -0.000001 0.000001 0.000000 -0.000022 0.000023 -0.000043 -0.000000 0.000001 -0.000000 0.000000 0.000003 0.000137 -82.372922 5.194175 4.768914 4.770298 0.016148 -0.295342 6.042387 -0.641818 0.572023 0.000014 -0.000015 0.000031 0.000000 -0.000000 -0.000000 0.000016 -0.000016 0.000030 -0.000001 -0.000001 -0.000000 0.000000 0.000002 -0.000098 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 79.339232 -0.000016 -0.000005 -5.850618 -1.155013 0.453741 -13.880921 -0.478342 0.514602 -34.132518 -15.137519 -0.112033 -20.882675 -33.696967 0.011687 0.000002 0.000021 -179.999991 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000001 -0.000002 0.000000 -0.000001 -4.563798 -12.735540 -19.398403 1.347127 -19.282770 -65.055803 0.000004 -16.279969 -0.000002 39.453813 11.028703 30.844759 -0.000002 0.000002 -0.000000 0.000003 0.000001 -0.000003 -0.000001 0.000004 0.000002 0.000001 0.000001 0.000000 -4.336846 11.431955 19.349236 1.272784 20.129483 65.281582 -0.000004 15.840136 -0.000001 39.469911 -11.018135 -30.804153 -0.000001 0.000000 -0.000000 -0.000001 0.000005 -0.000000 -0.000003 -0.000000 -0.000001 -0.000000 0.000002 0.000001 -0.000004 0.000000 -0.000000 -0.000003 -0.000000 0.000000 -0.000003 -0.000000 -0.000000 -0.000005 0.000000 0.000000 0.000002 0.000000 0.000000 0.000001 0.000000 0.000000 -83.864949 -5.760794 -4.986376 5.267658 0.005209 -0.326124 5.165793 0.555327 -0.544716 -0.000022 0.000021 -0.000042 -0.000000 -0.000000 0.000000 -0.000020 0.000021 -0.000041 -0.000000 0.000001 0.000001 -0.000001 0.000003 0.000136 -83.787693 5.206896 4.900296 4.858112 0.016215 -0.300788 6.153664 -0.653054 0.583175 0.000016 -0.000016 0.000033 -0.000001 -0.000000 -0.000001 0.000014 -0.000016 0.000033 -0.000001 -0.000001 -0.000001 0.000000 0.000002 -0.000100 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 80.498267 -0.000016 -0.000005 -5.942111 -0.812655 0.452144 -14.098022 -0.352545 0.532861 -34.645236 -15.033371 -0.080178 -21.211600 -33.714849 0.007848 0.000002 0.000027 -179.999991 -0.000001 0.000003 0.000000 -0.000001 0.000003 0.000000 -0.000001 0.000003 -0.000000 0.000000 0.000001 -0.000000 -4.670862 -12.919999 -19.715676 1.396983 -19.579835 -64.941336 0.000000 -16.399989 -0.000003 39.979057 11.367483 31.311445 -0.000000 -0.000001 -0.000001 0.000002 -0.000001 -0.000002 -0.000002 0.000004 -0.000001 0.000001 0.000002 -0.000000 -4.507871 12.001478 19.679312 1.344930 20.177700 65.100965 0.000001 16.088213 -0.000001 39.990556 -11.359978 -31.282847 -0.000001 0.000002 -0.000000 -0.000000 -0.000000 0.000002 0.000003 0.000003 -0.000001 -0.000000 0.000001 0.000001 -0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -85.085927 -5.774628 -5.106851 5.350363 0.005050 -0.331244 5.246947 0.563649 -0.553665 -0.000023 0.000023 -0.000042 -0.000000 0.000000 0.000001 -0.000023 0.000021 -0.000043 -0.000000 0.000000 0.000000 -0.000000 0.000002 0.000137 -85.006581 5.215263 5.013705 4.934390 0.016265 -0.305517 6.250328 -0.662797 0.592882 0.000012 -0.000016 0.000028 0.000000 -0.000000 -0.000001 0.000016 -0.000017 0.000028 -0.000001 -0.000001 -0.000001 0.000000 0.000003 -0.000100 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 81.464773 -0.000016 -0.000005 -6.018855 -0.525456 0.451226 -14.280205 -0.247043 0.548551 -35.074667 -14.946271 -0.052743 -21.487471 -33.728533 0.004831 0.000002 0.000023 -179.999991 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000001 -0.000000 -0.000001 0.000001 -4.761547 -13.074283 -19.982272 1.439214 -19.828994 -64.845836 0.000000 -16.499983 -0.000003 40.416821 11.654130 31.699885 0.000000 -0.000001 -0.000000 0.000004 -0.000001 -0.000002 -0.000002 0.000006 -0.000003 -0.000000 0.000001 0.000001 -4.654002 12.477807 19.957710 1.405579 20.217942 64.949833 -0.000001 16.296387 -0.000003 40.424355 -11.649227 -31.681313 0.000001 0.000004 -0.000001 -0.000003 0.000003 -0.000002 -0.000000 0.000003 -0.000002 0.000002 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000003 -0.000000 -0.000000 -0.000003 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -86.103386 -5.784205 -5.207450 5.419780 0.004912 -0.335545 5.315057 0.570624 -0.561180 -0.000020 0.000023 -0.000044 0.000000 0.000000 0.000000 -0.000020 0.000023 -0.000043 -0.000000 0.000000 0.000000 -0.000000 0.000002 0.000137 -86.022298 5.220398 5.108330 4.998415 0.016303 -0.309487 6.331459 -0.670958 0.601038 0.000016 -0.000018 0.000035 -0.000000 -0.000000 -0.000000 0.000019 -0.000018 0.000036 -0.000001 0.000000 0.000001 -0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 82.231250 -0.000016 -0.000005 -6.080011 -0.296550 0.450770 -14.425450 -0.162979 0.561297 -35.416443 -14.877030 -0.030412 -21.707285 -33.738430 0.002600 0.000002 0.000023 -179.999991 -0.000000 0.000001 0.000001 -0.000000 0.000001 0.000001 -0.000000 0.000001 0.000001 -0.000002 -0.000001 0.000000 -4.834386 -13.196952 -20.195046 1.473115 -20.027537 -64.770144 -0.000001 -16.579150 -0.000003 40.763829 11.884146 32.007465 -0.000001 -0.000001 0.000000 0.000002 -0.000000 -0.000000 -0.000001 0.000007 -0.000001 0.000001 0.000003 -0.000000 -4.772228 12.856505 20.180590 1.453976 20.249890 64.829717 -0.000001 16.462341 -0.000007 40.768170 -11.881333 -31.996861 -0.000001 0.000001 -0.000000 -0.000002 0.000001 0.000000 -0.000000 0.000006 -0.000003 0.000001 0.000003 0.000002 -0.000003 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 0.000000 -0.000000 0.000004 0.000000 -0.000000 0.000003 0.000000 -0.000000 -86.909779 -5.790532 -5.287293 5.475130 0.004799 -0.338973 5.369368 0.576176 -0.567179 -0.000018 0.000025 -0.000042 -0.000000 0.000000 0.000000 -0.000020 0.000025 -0.000043 0.000001 -0.000000 -0.000000 -0.000000 0.000003 0.000137 -86.827291 5.223281 5.183379 5.049465 0.016330 -0.312653 6.396159 -0.677461 0.607552 0.000008 -0.000015 0.000034 -0.000000 -0.000001 -0.000000 0.000012 -0.000014 0.000031 -0.000001 -0.000001 -0.000000 0.000001 0.000002 -0.000101 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 82.789727 -0.000017 -0.000005 -6.124750 -0.129110 0.450591 -14.531728 -0.101498 0.570758 -35.666189 -14.826483 -0.013818 -21.868025 -33.744973 0.001101 0.000002 0.000021 -179.999991 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000001 0.000000 -0.000000 -0.000000 -4.887986 -13.286519 -20.350863 1.498030 -20.172745 -64.715120 0.000001 -16.636695 -0.000000 41.016611 12.053253 32.231328 0.000000 -0.000000 0.000000 0.000002 -0.000003 0.000000 -0.000001 0.000002 0.000001 -0.000002 0.000001 -0.000001 -4.859696 13.132970 20.344200 1.489412 20.273171 64.742072 -0.000001 16.583751 -0.000005 41.018578 -12.051982 -32.226554 0.000001 -0.000001 -0.000000 -0.000000 -0.000003 0.000002 -0.000001 0.000002 -0.000002 -0.000002 0.000002 0.000002 -0.000000 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000002 -0.000001 0.000000 -0.000003 -0.000001 0.000000 -87.497114 -5.794435 -5.345493 5.515633 0.004714 -0.341482 5.409111 0.580238 -0.571575 -0.000017 0.000025 -0.000044 0.000000 -0.000000 0.000000 -0.000019 0.000023 -0.000043 0.000000 0.000001 0.000000 0.000000 0.000003 0.000136 -87.413594 5.224718 5.238059 5.086822 0.016350 -0.314967 6.443495 -0.682214 0.612326 0.000011 -0.000016 0.000029 -0.000001 -0.000000 -0.000000 0.000010 -0.000016 0.000027 -0.000001 -0.000000 -0.000000 0.000000 0.000003 -0.000099 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 83.131708 -0.000017 -0.000005 -6.152217 -0.026299 0.450545 -14.596985 -0.063752 0.576623 -35.819404 -14.795484 -0.003519 -21.966679 -33.748590 0.000264 0.000002 0.000023 -179.999991 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000001 0.000000 -0.000001 -4.921032 -13.341437 -20.446608 1.513367 -20.261905 -64.681550 -0.000001 -16.671797 -0.000001 41.171380 12.157438 32.368301 0.000001 -0.000002 0.000000 0.000002 0.000003 -0.000002 -0.000004 0.000002 -0.000003 -0.000000 0.000002 0.000002 -4.913815 13.302477 20.444887 1.511180 20.287421 64.688394 0.000001 16.658321 -0.000003 41.171868 -12.157114 -32.367095 0.000002 0.000000 -0.000001 -0.000002 0.000004 -0.000000 -0.000001 0.000002 -0.000000 0.000000 0.000002 -0.000000 -0.000002 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000002 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000001 0.000000 0.000001 -0.000001 0.000000 -87.856614 -5.796530 -5.381138 5.540509 0.004661 -0.343023 5.433525 0.582734 -0.574275 -0.000021 0.000022 -0.000038 -0.000000 0.000000 -0.000000 -0.000022 0.000022 -0.000037 -0.000001 0.000002 -0.000000 0.000001 0.000003 0.000135 -87.772507 5.225324 5.271539 5.109762 0.016359 -0.316389 6.472563 -0.685132 0.615257 0.000011 -0.000017 0.000032 -0.000001 0.000000 -0.000000 0.000012 -0.000017 0.000030 -0.000001 -0.000001 -0.000001 -0.000000 0.000003 -0.000099 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 1.067000 -0.000000 83.247937 -0.000017 -0.000005 -6.161565 0.008684 0.450541 -14.619192 -0.050909 0.578629 -35.871511 -14.784942 0.000006 -22.000231 -33.749696 0.000004 0.000002 0.000024 -179.999991 0.000000 0.000001 0.000001 0.000000 0.000001 0.000001 0.000000 0.000001 0.000001 -0.000002 0.000001 0.000000 -4.932297 -13.360113 -20.479192 1.518588 -20.292243 -64.670184 0.000006 -16.683683 -0.000002 41.223962 12.192947 32.414835 0.000000 0.000002 0.000000 0.000002 -0.000001 -0.000000 0.000002 0.000002 0.000001 0.000001 -0.000000 -0.000000 -4.932296 13.360120 20.479192 1.518588 20.292256 64.670178 -0.000004 16.683686 -0.000004 41.223952 -12.192952 -32.414828 0.000000 0.000004 0.000000 -0.000002 0.000001 -0.000001 -0.000001 0.000004 -0.000003 0.000001 -0.000001 0.000001 0.000002 0.000000 0.000000 0.000001 -0.000000 0.000000 0.000002 0.000000 0.000000 0.000002 0.000000 -0.000000 0.000002 -0.000001 0.000000 0.000003 -0.000001 0.000000 -87.978758 -5.797193 -5.393254 5.548971 0.004638 -0.343552 5.441830 0.583579 -0.575192 -0.000021 0.000023 -0.000046 -0.000001 0.000001 0.000000 -0.000023 0.000024 -0.000045 0.000000 0.000001 0.000000 -0.000000 0.000002 0.000136 -87.894412 5.225483 5.282915 5.117572 0.016364 -0.316871 6.482464 -0.686124 0.616256 0.000011 -0.000015 0.000030 -0.000000 0.000000 0.000000 0.000013 -0.000016 0.000028 -0.000000 -0.000000 -0.000001 0.000001 0.000002 -0.000101 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
461
res/anims/poses/Bracelets.bvh
Normal file
461
res/anims/poses/Bracelets.bvh
Normal file
@@ -0,0 +1,461 @@
|
||||
HIERARCHY
|
||||
ROOT mPelvis
|
||||
{
|
||||
OFFSET 0.000000 1.067000 -0.000000
|
||||
CHANNELS 6 Xposition Yposition Zposition Xrotation Yrotation Zrotation
|
||||
JOINT mTorso
|
||||
{
|
||||
OFFSET 0.000000 0.084000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mChest
|
||||
{
|
||||
OFFSET 0.000000 0.205000 -0.015000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mNeck
|
||||
{
|
||||
OFFSET 0.000000 0.251000 -0.010000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mHead
|
||||
{
|
||||
OFFSET 0.000000 0.076000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mSkull
|
||||
{
|
||||
OFFSET 0.000000 0.079000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT mEyeRight
|
||||
{
|
||||
OFFSET -0.036000 0.079000 0.098000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT mEyeLeft
|
||||
{
|
||||
OFFSET 0.036000 0.079000 0.098000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT HEAD
|
||||
{
|
||||
OFFSET 0.000000 0.070000 0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT NECK
|
||||
{
|
||||
OFFSET 0.000000 0.020000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT mCollarLeft
|
||||
{
|
||||
OFFSET 0.085000 0.165000 -0.021000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mShoulderLeft
|
||||
{
|
||||
OFFSET 0.079000 0.000000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mElbowLeft
|
||||
{
|
||||
OFFSET 0.248000 0.000000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mWristLeft
|
||||
{
|
||||
OFFSET 0.205000 0.000000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT L_HAND
|
||||
{
|
||||
OFFSET 0.050000 0.000000 0.010000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_LOWER_ARM
|
||||
{
|
||||
OFFSET 0.100000 0.000000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_UPPER_ARM
|
||||
{
|
||||
OFFSET 0.120000 0.010000 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_CLAVICLE
|
||||
{
|
||||
OFFSET 0.000000 0.020000 0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT mCollarRight
|
||||
{
|
||||
OFFSET -0.085000 0.165000 -0.021000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mShoulderRight
|
||||
{
|
||||
OFFSET -0.079000 0.000000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mElbowRight
|
||||
{
|
||||
OFFSET -0.248000 0.000000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mWristRight
|
||||
{
|
||||
OFFSET -0.205000 0.000000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT R_HAND
|
||||
{
|
||||
OFFSET -0.050000 0.000000 0.010000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_LOWER_ARM
|
||||
{
|
||||
OFFSET -0.100000 0.000000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_UPPER_ARM
|
||||
{
|
||||
OFFSET -0.120000 0.010000 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_CLAVICLE
|
||||
{
|
||||
OFFSET 0.000000 0.020000 0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT CHEST
|
||||
{
|
||||
OFFSET 0.000000 0.070000 0.028000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT LEFT_PEC
|
||||
{
|
||||
OFFSET 0.082000 0.042000 0.119000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT RIGHT_PEC
|
||||
{
|
||||
OFFSET -0.082000 0.042000 0.119000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT UPPER_BACK
|
||||
{
|
||||
OFFSET 0.000000 0.017253 0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT BELLY
|
||||
{
|
||||
OFFSET 0.000000 0.040000 0.028000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT LOWER_BACK
|
||||
{
|
||||
OFFSET 0.000000 0.022848 -0.000000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT mHipRight
|
||||
{
|
||||
OFFSET -0.129000 -0.041000 0.034000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mKneeRight
|
||||
{
|
||||
OFFSET 0.049000 -0.491000 -0.001000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mAnkleRight
|
||||
{
|
||||
OFFSET -0.000000 -0.468000 -0.029000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mFootRight
|
||||
{
|
||||
OFFSET 0.000000 -0.061000 0.112000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mToeRight
|
||||
{
|
||||
OFFSET 0.000000 0.000000 0.109000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_FOOT
|
||||
{
|
||||
OFFSET 0.000000 -0.041000 0.077000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_LOWER_LEG
|
||||
{
|
||||
OFFSET -0.000000 -0.200000 -0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT R_UPPER_LEG
|
||||
{
|
||||
OFFSET 0.050000 -0.220000 -0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT mHipLeft
|
||||
{
|
||||
OFFSET 0.127000 -0.041000 0.034000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mKneeLeft
|
||||
{
|
||||
OFFSET -0.046000 -0.491000 -0.001000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mAnkleLeft
|
||||
{
|
||||
OFFSET 0.001000 -0.468000 -0.029000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mFootLeft
|
||||
{
|
||||
OFFSET 0.000000 -0.061000 0.112000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
JOINT mToeLeft
|
||||
{
|
||||
OFFSET 0.000000 0.000000 0.109000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_FOOT
|
||||
{
|
||||
OFFSET 0.000000 -0.041000 0.077000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET 0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_LOWER_LEG
|
||||
{
|
||||
OFFSET -0.000000 -0.200000 -0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT L_UPPER_LEG
|
||||
{
|
||||
OFFSET -0.050000 -0.220000 -0.020000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
JOINT PELVIS
|
||||
{
|
||||
OFFSET -0.000000 -0.020000 -0.010000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
JOINT BUTT
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 -0.060000
|
||||
CHANNELS 3 Xrotation Yrotation Zrotation
|
||||
End Site
|
||||
{
|
||||
OFFSET -0.000000 -0.100000 0.000000
|
||||
}
|
||||
}
|
||||
}
|
||||
MOTION
|
||||
Frames: 91
|
||||
Frame Time: 0.022222
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.555755 -0.057458 -84.096424 -0.000000 0.000000 0.000001 0.879869 -0.033829 -4.403510 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -1.541243 15.193717 82.081778 0.000002 0.000000 0.000001 1.046036 0.047842 5.237183 -0.000001 -0.000001 -0.000000 0.000001 0.000000 0.000001 -0.000001 0.000000 0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.016257 -0.000000 -0.000000 0.013241 -0.000000 -0.000000 0.000002 0.000022 -179.999991 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.014918 -0.000000 -0.556154 -0.057079 -84.248908 -0.000000 -0.000000 0.000000 0.879869 -0.033830 -4.403510 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.001596 -0.011474 0.003432 -1.547198 15.199871 82.196853 0.000002 0.000000 0.000001 1.046037 0.047839 5.237183 -0.000002 0.000001 0.000000 -0.000001 -0.000000 0.000001 -0.000001 0.000000 0.000001 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.063978 -0.000000 -0.000000 0.052204 -0.000000 -0.000000 0.000002 0.000022 -179.999991 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.058710 0.000000 -0.556499 -0.056714 -84.390901 -0.000000 -0.000000 0.000000 0.879869 -0.033829 -4.403510 -0.000000 -0.000002 -0.000000 0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.006424 -0.045157 0.013506 -1.552686 15.204703 82.304087 0.000002 0.000000 0.000001 1.046035 0.047841 5.237182 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000001 0.000001 0.000000 0.000001 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.141596 -0.000000 -0.000000 0.115745 -0.000000 -0.000000 0.000002 0.000022 -179.999991 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.129931 0.000000 -0.556792 -0.056365 -84.522758 0.000000 -0.000000 -0.000000 0.879869 -0.033829 -4.403510 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.014538 -0.099941 0.029882 -1.557716 15.208301 82.403787 0.000001 0.000000 -0.000000 1.046039 0.047839 5.237182 0.000000 0.000001 0.000000 0.000001 0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.247540 -0.000000 -0.000000 0.202725 -0.000000 -0.000000 0.000002 0.000022 -179.999991 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.227139 0.000000 -0.557034 -0.056030 -84.644943 0.000000 0.000000 -0.000000 0.879869 -0.033829 -4.403510 -0.000000 -0.000002 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.025988 -0.174718 0.052222 -1.562299 15.210731 82.496254 0.000000 0.000000 0.000001 1.046039 0.047839 5.237183 0.000000 0.000003 -0.000000 -0.000000 -0.000000 0.000000 -0.000001 0.000000 0.000001 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.380243 -0.000000 -0.000000 0.312002 -0.000000 -0.000000 0.000002 0.000022 -179.999991 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.348890 0.000000 -0.557230 -0.055712 -84.757839 -0.000000 0.000000 -0.000000 0.879869 -0.033831 -4.403510 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.040817 -0.268382 0.080179 -1.566444 15.212086 82.581789 0.000001 0.000000 0.000001 1.046038 0.047839 5.237181 0.000000 0.000003 -0.000000 0.000001 -0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.538139 -0.000000 -0.000000 0.442436 -0.000000 -0.000000 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.493740 0.000000 -0.557382 -0.055410 -84.861897 0.000000 0.000000 0.000000 0.879869 -0.033831 -4.403510 -0.000000 -0.000002 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.059067 -0.379829 0.113408 -1.570161 15.212431 82.660712 0.000001 0.000000 0.000000 1.046036 0.047839 5.237182 0.000003 0.000001 0.000001 -0.000001 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.719661 -0.000000 -0.000000 0.592887 -0.000000 -0.000000 0.000002 0.000022 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.660245 0.000000 -0.557493 -0.055124 -84.957520 0.000000 0.000000 0.000000 0.879869 -0.033830 -4.403510 -0.000000 -0.000002 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.080776 -0.507952 0.151559 -1.573469 15.211842 82.733337 0.000002 0.000000 0.000000 1.046036 0.047839 5.237182 0.000000 0.000000 -0.000000 -0.000001 -0.000000 0.000001 0.000001 0.000000 0.000001 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.923242 -0.000000 -0.000000 0.762217 -0.000000 -0.000000 0.000002 0.000022 -179.999991 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 0.846961 0.000000 -0.557564 -0.054856 -85.045131 -0.000000 0.000000 0.000000 0.879869 -0.033830 -4.403510 -0.000000 0.000001 -0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.105980 -0.651650 0.194279 -1.576375 15.210401 82.799952 0.000001 -0.000000 0.000001 1.046037 0.047840 5.237182 0.000002 0.000001 0.000000 -0.000001 -0.000000 0.000002 0.000000 -0.000000 0.000001 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 1.147314 -0.000000 -0.000000 0.949284 -0.000000 -0.000000 0.000002 0.000022 -179.999991 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 1.052444 0.000000 -0.557600 -0.054605 -85.125146 -0.000000 0.000000 -0.000000 0.879869 -0.033831 -4.403510 0.000000 -0.000001 -0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.134717 -0.809819 0.241215 -1.578891 15.208179 82.860884 0.000001 -0.000000 -0.000000 1.046037 0.047840 5.237181 -0.000001 0.000002 -0.000000 0.000001 0.000000 0.000000 0.000001 -0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 1.390311 -0.000000 -0.000000 1.152948 -0.000000 -0.000000 0.000003 0.000022 -179.999991 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 1.275250 0.000000 -0.557602 -0.054372 -85.198011 0.000000 0.000000 -0.000000 0.879869 -0.033830 -4.403510 -0.000000 -0.000001 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.167023 -0.981355 0.292010 -1.581037 15.205270 82.916461 0.000001 -0.000000 -0.000000 1.046035 0.047840 5.237180 -0.000001 0.000002 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 1.650661 -0.000000 -0.000000 1.372067 -0.000000 -0.000000 0.000003 0.000022 -179.999991 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 1.513933 0.000000 -0.557574 -0.054157 -85.264161 0.000000 0.000000 0.000000 0.879869 -0.033832 -4.403510 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.202935 -1.165157 0.346308 -1.582822 15.201725 82.966957 0.000000 -0.000000 0.000000 1.046037 0.047841 5.237181 0.000000 0.000000 0.000000 0.000001 0.000000 -0.000001 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 1.926794 -0.000000 -0.000000 1.605502 -0.000000 -0.000000 0.000003 0.000022 -179.999991 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 1.767048 0.000000 -0.557517 -0.053960 -85.323959 -0.000000 0.000000 0.000000 0.879869 -0.033829 -4.403510 -0.000000 0.000001 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.242496 -1.360122 0.403749 -1.584263 15.197637 83.012733 -0.000001 -0.000000 -0.000000 1.046035 0.047840 5.237181 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000001 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 2.217138 -0.000000 -0.000000 1.852108 -0.000000 -0.000000 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 2.033152 0.000000 -0.557435 -0.053781 -85.377918 0.000000 0.000000 -0.000000 0.879869 -0.033831 -4.403510 0.000000 0.000001 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.285746 -1.565147 0.463973 -1.585372 15.193074 83.054055 0.000000 0.000000 0.000000 1.046036 0.047839 5.237182 -0.000001 0.000000 -0.000000 0.000001 -0.000000 0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 2.520120 -0.000000 -0.000000 2.110745 -0.000000 -0.000000 0.000002 0.000022 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 2.310796 0.000000 -0.557331 -0.053621 -85.426399 0.000000 0.000000 -0.000000 0.879869 -0.033830 -4.403510 0.000000 -0.000001 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.332734 -1.779131 0.526622 -1.586164 15.188117 83.091259 -0.000000 -0.000000 0.000001 1.046036 0.047840 5.237182 -0.000000 0.000001 -0.000000 0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 2.834162 -0.000000 -0.000001 2.380265 -0.000000 -0.000000 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 2.598536 0.000000 -0.557207 -0.053480 -85.469886 0.000000 0.000000 -0.000000 0.879869 -0.033830 -4.403511 0.000000 0.000001 -0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.383509 -2.000971 0.591334 -1.586659 15.182845 83.124679 0.000001 -0.000000 0.000001 1.046034 0.047840 5.237182 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 3.157690 -0.000000 -0.000001 2.659528 -0.000000 -0.000001 0.000002 0.000022 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 2.894927 0.000000 -0.557065 -0.053358 -85.508750 0.000000 0.000000 0.000000 0.879869 -0.033831 -4.403510 -0.000000 -0.000002 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.438126 -2.229563 0.657747 -1.586865 15.177322 83.154582 0.000000 0.000000 0.000000 1.046035 0.047840 5.237182 -0.000000 0.000001 0.000000 0.000001 0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 3.489123 -0.000000 -0.000001 2.947385 -0.000000 -0.000001 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 3.198524 0.000000 -0.556908 -0.053254 -85.543461 0.000000 0.000000 -0.000001 0.879869 -0.033829 -4.403510 0.000000 -0.000002 0.000000 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000000 -0.496645 -2.463807 0.725503 -1.586805 15.171631 83.181336 0.000001 -0.000001 0.000000 1.046035 0.047839 5.237183 0.000001 0.000001 0.000000 0.000001 0.000000 0.000000 0.000001 -0.000001 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 3.826882 -0.000001 -0.000001 3.242691 -0.000000 -0.000001 0.000002 0.000022 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 3.507881 0.000001 -0.556739 -0.053171 -85.574436 0.000000 0.000000 0.000000 0.879869 -0.033830 -4.403510 -0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.559130 -2.702598 0.794240 -1.586487 15.165849 83.205221 -0.000000 0.000000 0.000000 1.046037 0.047840 5.237181 -0.000000 -0.000000 0.000000 0.000001 0.000000 0.000000 -0.000000 -0.000000 0.000001 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 4.169389 -0.000001 -0.000001 3.544299 -0.000000 -0.000001 0.000001 0.000022 -179.999991 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 3.821556 0.000001 -0.556561 -0.053107 -85.602105 0.000000 0.000000 -0.000000 0.879870 -0.033829 -4.403511 0.000000 -0.000002 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.625651 -2.944831 0.863598 -1.585930 15.160052 83.226579 0.000001 -0.000000 0.000000 1.046037 0.047840 5.237181 0.000000 0.000003 0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000001 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 4.515059 -0.000001 -0.000001 3.851062 -0.000000 -0.000001 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 4.138103 0.000001 -0.556376 -0.053063 -85.626885 0.000000 0.000000 -0.000000 0.879870 -0.033831 -4.403511 0.000000 -0.000002 -0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.696285 -3.189407 0.933219 -1.585145 15.154300 83.245663 0.000000 0.000000 0.000000 1.046037 0.047841 5.237181 0.000001 -0.000001 -0.000000 0.000001 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000001 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 4.862313 -0.000001 -0.000001 4.161832 -0.000001 -0.000001 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 4.456079 0.000001 -0.556186 -0.053038 -85.649206 -0.000000 0.000000 -0.000000 0.879869 -0.033831 -4.403510 0.000000 -0.000002 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.771112 -3.435218 1.002747 -1.584154 15.148694 83.262875 0.000000 -0.000000 0.000000 1.046036 0.047839 5.237182 0.000000 0.000003 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 5.209565 -0.000001 -0.000001 4.475460 -0.000001 -0.000001 0.000001 0.000022 -179.999991 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 4.774044 0.000001 -0.555995 -0.053034 -85.669485 0.000000 0.000000 0.000000 0.879869 -0.033830 -4.403510 -0.000001 -0.000001 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.850220 -3.681163 1.071824 -1.582967 15.143282 83.278461 0.000000 0.000000 0.000000 1.046036 0.047840 5.237182 0.000000 0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 5.555237 -0.000001 -0.000001 4.790797 -0.000001 -0.000001 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 5.090559 0.000001 -0.555804 -0.053049 -85.688172 0.000000 0.000000 -0.000000 0.879869 -0.033829 -4.403510 0.000000 -0.000001 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.933702 -3.926135 1.140098 -1.581600 15.138155 83.292757 -0.000000 -0.000000 -0.000000 1.046035 0.047840 5.237181 -0.000000 -0.000002 -0.000000 -0.000000 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 5.897743 -0.000001 -0.000001 5.106700 -0.000001 -0.000001 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 5.404184 0.000001 -0.555616 -0.053085 -85.705699 -0.000000 -0.000000 0.000000 0.879869 -0.033831 -4.403510 -0.000000 -0.000002 0.000000 -0.000000 0.000000 0.000000 -0.000001 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -1.021657 -4.169030 1.207217 -1.580068 15.133380 83.306076 0.000000 0.000000 -0.000000 1.046034 0.047839 5.237182 0.000001 0.000001 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 6.235503 -0.000001 -0.000001 5.422015 -0.000001 -0.000001 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 5.713480 0.000001 -0.555435 -0.053142 -85.722446 -0.000000 -0.000000 -0.000000 0.879869 -0.033831 -4.403509 0.000001 0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -1.114189 -4.408742 1.272831 -1.578386 15.129045 83.318746 0.000000 0.000000 -0.000000 1.046036 0.047840 5.237181 0.000000 0.000002 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 6.566936 -0.000001 -0.000001 5.735599 -0.000001 -0.000001 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 6.017012 0.000001 -0.555262 -0.053220 -85.738887 -0.000000 0.000000 -0.000000 0.879869 -0.033829 -4.403510 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -1.211408 -4.644166 1.336598 -1.576568 15.125201 83.331040 0.000001 0.000000 0.000000 1.046037 0.047839 5.237182 -0.000001 0.000002 -0.000000 0.000000 0.000000 0.000000 0.000001 0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 6.890463 -0.000001 -0.000001 6.046298 -0.000001 -0.000001 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 6.313347 0.000001 -0.555100 -0.053318 -85.755429 -0.000000 -0.000000 0.000000 0.879869 -0.033830 -4.403510 -0.000001 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000001 -0.000000 0.000000 0.000000 0.000000 -0.000000 -1.313427 -4.874195 1.398172 -1.574630 15.121945 83.343300 -0.000000 -0.000001 -0.000000 1.046036 0.047839 5.237182 0.000000 0.000001 -0.000000 0.000000 -0.000001 0.000000 -0.000001 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 7.204507 -0.000001 -0.000001 6.352975 -0.000001 -0.000001 0.000002 0.000022 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 6.601049 0.000001 -0.554951 -0.053437 -85.772484 -0.000000 0.000000 0.000000 0.879869 -0.033829 -4.403511 -0.000000 -0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 0.000000 0.000000 -0.000001 -0.000000 -1.420366 -5.097719 1.457218 -1.572586 15.119337 83.355840 0.000000 -0.000000 -0.000000 1.046036 0.047842 5.237182 0.000001 0.000001 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000001 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 7.507486 -0.000001 -0.000001 6.654474 -0.000001 -0.000001 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000001 6.878689 0.000001 -0.554819 -0.053579 -85.790509 -0.000000 -0.000000 -0.000000 0.879869 -0.033829 -4.403510 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -1.532347 -5.313633 1.513400 -1.570452 15.117457 83.368961 0.000000 -0.000000 -0.000000 1.046036 0.047841 5.237181 0.000001 -0.000001 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000001 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 7.797831 -0.000001 -0.000001 6.949661 -0.000001 -0.000001 0.000002 0.000022 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000001 7.144838 0.000001 -0.554705 -0.053742 -85.809900 0.000000 -0.000000 0.000000 0.879869 -0.033831 -4.403510 -0.000000 -0.000001 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -1.649497 -5.520827 1.566391 -1.568241 15.116380 83.382990 -0.000001 -0.000000 0.000000 1.046035 0.047841 5.237182 0.000000 0.000002 -0.000000 -0.000000 -0.000000 0.000001 -0.000001 -0.000000 0.000000 -0.000000 0.000001 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 8.073964 -0.000001 -0.000001 7.237382 -0.000001 -0.000001 0.000002 0.000022 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000001 7.398068 0.000001 -0.554613 -0.053926 -85.831101 -0.000000 0.000000 -0.000000 0.879869 -0.033829 -4.403510 0.000000 0.000002 0.000000 0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000000 0.000000 -0.000001 0.000000 -1.771946 -5.718189 1.615867 -1.565967 15.116190 83.398235 -0.000000 -0.000000 -0.000000 1.046037 0.047840 5.237182 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 8.334314 -0.000001 -0.000002 7.516499 -0.000001 -0.000001 0.000002 0.000022 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000001 7.636947 0.000001 -0.554544 -0.054132 -85.854549 0.000001 0.000000 -0.000000 0.879870 -0.033831 -4.403510 -0.000000 -0.000002 0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000001 -0.000000 -1.899825 -5.904605 1.661513 -1.563647 15.116944 83.414997 -0.000000 -0.000000 -0.000001 1.046036 0.047842 5.237182 0.000001 0.000003 -0.000000 0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000001 -0.000000 0.000001 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 8.577311 -0.000001 -0.000002 7.785869 -0.000001 -0.000001 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 -0.000001 7.860052 0.000001 -0.554502 -0.054360 -85.880654 0.000000 0.000000 0.000000 0.879869 -0.033829 -4.403511 -0.000000 -0.000002 -0.000000 0.000001 0.000000 0.000000 0.000001 -0.000000 0.000000 0.000000 -0.000001 -0.000000 -2.033266 -6.078964 1.703018 -1.561296 15.118735 83.433629 0.000000 0.000000 0.000000 1.046035 0.047840 5.237181 0.000000 0.000002 -0.000000 -0.000001 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 8.801383 -0.000001 -0.000002 8.044352 -0.000001 -0.000001 0.000002 0.000022 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000001 8.065957 0.000001 -0.554490 -0.054612 -85.909853 0.000001 0.000000 -0.000000 0.879870 -0.033830 -4.403510 -0.000000 -0.000002 -0.000000 0.000002 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000000 -0.000001 -0.000000 -2.172406 -6.240146 1.740081 -1.558924 15.121627 83.454393 -0.000000 0.000001 -0.000001 1.046036 0.047841 5.237182 -0.000000 0.000002 -0.000000 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 0.000001 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 9.004966 -0.000001 -0.000002 8.290809 -0.000001 -0.000002 0.000002 0.000022 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 -0.000001 8.253230 0.000001 -0.554508 -0.054885 -85.942556 0.000001 0.000000 -0.000000 0.879870 -0.033830 -4.403510 0.000001 0.000003 0.000000 0.000001 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000001 -0.000000 -2.317376 -6.387036 1.772408 -1.556554 15.125696 83.477629 0.000001 -0.000001 -0.000001 1.046036 0.047840 5.237181 0.000000 0.000001 0.000000 0.000001 -0.000001 -0.000001 0.000001 -0.000001 -0.000001 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 9.186485 -0.000001 -0.000002 8.524098 -0.000001 -0.000002 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 -0.000001 8.420444 0.000001 -0.554562 -0.055183 -85.979234 0.000001 0.000000 -0.000001 0.879870 -0.033829 -4.403511 0.000000 -0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000001 0.000000 -0.000001 -0.000000 -2.468310 -6.518507 1.799713 -1.554194 15.131024 83.503666 0.000000 0.000001 -0.000000 1.046036 0.047841 5.237182 0.000002 -0.000002 0.000001 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 9.344380 -0.000001 -0.000002 8.743084 -0.000001 -0.000002 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000001 8.566172 0.000001 -0.554652 -0.055504 -86.020304 0.000001 0.000000 -0.000000 0.879869 -0.033830 -4.403510 0.000001 -0.000001 -0.000000 0.000001 -0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000000 -0.000001 -0.000000 -2.625339 -6.633436 1.821723 -1.551866 15.137695 83.532824 -0.000001 -0.000000 0.000000 1.046036 0.047841 5.237181 0.000001 0.000001 -0.000000 -0.000000 -0.000000 0.000000 -0.000001 -0.000001 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 9.477086 -0.000001 -0.000002 8.946625 -0.000001 -0.000002 0.000000 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 -0.000001 8.688982 0.000001 -0.554782 -0.055847 -86.066203 0.000001 0.000000 -0.000000 0.879869 -0.033829 -4.403510 -0.000000 0.000002 -0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000001 -0.000000 -2.788591 -6.730694 1.838173 -1.549582 15.145762 83.565397 0.000000 -0.000001 0.000000 1.046035 0.047841 5.237181 0.000002 0.000000 0.000000 -0.000001 -0.000000 0.000000 0.000000 -0.000001 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 9.583028 -0.000001 -0.000002 9.133594 -0.000001 -0.000002 0.000002 0.000022 -179.999991 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000001 8.787438 0.000001 -0.554955 -0.056213 -86.117381 0.000001 0.000000 0.000000 0.879869 -0.033831 -4.403510 0.000001 0.000003 -0.000000 0.000001 -0.000000 0.000000 0.000001 0.000000 0.000000 0.000000 -0.000001 -0.000000 -2.958190 -6.809148 1.848813 -1.547362 15.155326 83.601707 0.000000 -0.000000 0.000000 1.046037 0.047843 5.237181 0.000000 0.000001 0.000000 -0.000000 0.000000 -0.000000 -0.000001 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 9.660646 -0.000001 -0.000002 9.302838 -0.000001 -0.000002 0.000002 0.000022 -179.999991 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000001 8.860103 0.000001 -0.555172 -0.056604 -86.174256 0.000001 0.000000 -0.000000 0.879869 -0.033831 -4.403510 -0.000000 0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000001 -0.000000 -3.134254 -6.867659 1.853401 -1.545219 15.166449 83.642100 0.000000 0.000000 0.000000 1.046035 0.047841 5.237182 0.000001 0.000001 -0.000000 -0.000001 -0.000000 0.000000 0.000000 -0.000001 0.000000 -0.000000 0.000001 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 9.708370 -0.000001 -0.000002 9.453232 -0.000001 -0.000002 0.000002 0.000022 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000001 8.905536 0.000001 -0.555438 -0.057019 -86.237285 -0.000000 0.000000 -0.000000 0.879868 -0.033830 -4.403510 0.000001 -0.000001 -0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000001 -0.000000 -3.316895 -6.905086 1.851712 -1.543174 15.179219 83.686872 0.000000 -0.000000 -0.000000 1.046037 0.047842 5.237181 0.000000 0.000001 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000001 -0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.067000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 9.724624 -0.000001 -0.000002 9.583636 -0.000001 -0.000002 0.000002 0.000022 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 -0.000001 8.922288 0.000001 -0.555754 -0.057458 -86.306933 0.000000 0.000000 -0.000000 0.879870 -0.033828 -4.403510 -0.000000 -0.000001 -0.000000 0.000001 -0.000000 0.000000 0.000001 0.000000 -0.000000 0.000000 -0.000001 -0.000000 -3.506220 -6.920278 1.843535 -1.541243 15.193718 83.736384 0.000000 -0.000000 0.000000 1.046035 0.047843 5.237182 0.000001 0.000000 -0.000000 -0.000001 -0.000000 0.000000 0.000000 -0.000001 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000003 0.000136 -0.000005 0.000000 -0.000000 -0.000008 0.000017 -0.000027 0.000000 -0.000000 -0.000000 -0.000010 0.000016 -0.000028 -0.000001 0.000000 0.000000 -0.000000 0.000003 0.000136 0.000000 0.000000 -0.000000 0.000000 0.000002 -0.000100 -0.000003 0.000002 -0.000001 0.000009 -0.000013 0.000025 0.000000 -0.000000 0.000000 0.000009 -0.000013 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 1.020322 0.000000 0.012797 -0.000000 -0.000000 -0.009974 0.000053 0.000728 -0.007397 0.000012 0.000294 9.724169 -0.000001 -0.000002 9.701078 -0.000001 -0.000002 0.000000 0.000022 -179.999991 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.025324 8.904778 0.013049 -0.520969 -0.167789 -86.401777 0.000001 -0.112681 -0.000000 0.877007 -0.033608 -4.389155 -0.000000 -0.000001 0.000000 0.000002 -0.000000 0.000000 0.000001 0.000000 -0.000000 0.000000 -0.000001 0.000000 -3.702956 -6.907490 1.818051 -1.503623 15.313158 83.809932 0.000000 0.114848 -0.000000 1.041823 0.047456 5.216028 0.000001 -0.000003 0.000000 -0.000001 -0.000000 -0.000001 0.000000 -0.000001 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.100227 -0.002747 0.004686 0.156847 0.000591 -0.009565 0.110274 -0.011640 -0.007078 -0.000009 0.000015 -0.000027 0.000000 -0.000000 -0.000000 -0.000009 0.000015 -0.000027 -0.000001 0.000000 -0.000000 -0.000000 0.000003 0.000137 -0.099873 0.000511 -0.005233 0.156651 0.000923 -0.009769 0.112416 0.016109 -0.019158 0.000013 -0.000015 0.000027 0.000000 -0.000000 0.000000 0.000013 -0.000016 0.000025 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000101 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 0.883034 0.000000 0.050437 -0.000000 -0.000000 -0.039311 0.000209 0.002869 -0.029153 0.000046 0.001161 9.722837 -0.000001 -0.000002 9.813415 -0.000001 -0.000002 0.000000 0.000022 -179.999991 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 0.000000 -0.000000 0.000000 -0.099799 8.849482 0.051387 -0.418246 -0.492411 -86.538674 0.000001 -0.444625 -0.000000 0.868586 -0.032967 -4.346936 0.000001 -0.000001 0.000000 -0.000000 0.000000 0.000000 0.000001 -0.000000 -0.000000 -0.000000 -0.000001 -0.000000 -3.907371 -6.862603 1.765515 -1.396692 15.635454 83.925253 -0.000001 0.453200 0.000000 1.029428 0.046331 5.153813 0.000000 -0.000000 -0.000000 -0.000001 -0.000001 -0.000000 -0.000000 -0.000001 0.000000 0.000000 -0.000001 -0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -0.395367 -0.010884 0.018458 0.620207 0.002173 -0.038237 0.435119 -0.046012 -0.027794 -0.000005 0.000016 -0.000033 -0.000000 0.000000 0.000000 -0.000007 0.000016 -0.000030 -0.000002 0.000001 0.000000 -0.000000 0.000003 0.000135 -0.393970 0.002071 -0.020634 0.619413 0.003487 -0.038346 0.443651 0.063351 -0.075783 0.000008 -0.000013 0.000029 0.000000 -0.000000 -0.000000 0.000010 -0.000013 0.000027 -0.000001 0.000000 0.000000 0.000000 0.000002 -0.000100 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000
|
||||
0.000000 0.659255 0.000000 0.111792 -0.000000 -0.000000 -0.087130 0.000460 0.006359 -0.064614 0.000101 0.002572 9.720655 -0.000001 -0.000002 9.920764 -0.000001 -0.000002 0.000002 0.000022 -179.999991 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.221145 8.757978 0.113737 -0.251141 -1.023914 -86.715105 0.000001 -0.987371 0.000000 0.854859 -0.031930 -4.278115 -0.000000 0.000001 0.000000 0.000001 0.000000 -0.000000 0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 -4.118848 -6.786906 1.687347 -1.223685 16.153399 84.079977 0.000000 1.006508 0.000000 1.009220 0.044528 5.052390 -0.000000 -0.000000 0.000000 -0.000000 -0.000001 0.000001 -0.000001 -0.000001 0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 0.000000 -0.877580 -0.024332 0.040870 1.382052 0.004271 -0.085398 0.966177 -0.102453 -0.061245 -0.000007 0.000014 -0.000030 -0.000000 0.000000 0.000000 -0.000008 0.000013 -0.000028 -0.000001 0.000001 0.000000 -0.000000 0.000003 0.000137 -0.874471 0.004788 -0.045781 1.380230 0.007201 -0.085372 0.985432 0.139896 -0.168970 0.000012 -0.000012 0.000027 0.000000 -0.000000 0.000000 0.000013 -0.000013 0.000027 -0.000001 0.000001 0.000000 0.000000 0.000002 -0.000101 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 0.353102 0.000000 0.195735 -0.000000 -0.000000 -0.152554 0.000799 0.011134 -0.113131 0.000175 0.004504 9.717677 -0.000001 -0.000002 10.023239 -0.000001 -0.000002 0.000002 0.000022 -179.999991 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.387036 8.631800 0.198739 -0.023291 -1.755780 -86.928084 -0.000000 -1.733252 -0.000000 0.836076 -0.030540 -4.183954 0.000000 -0.000002 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 0.000000 -0.000001 -0.000000 -4.336732 -6.681679 1.584966 -0.987765 16.860621 84.271345 -0.000000 1.767065 -0.000000 0.981567 0.042117 4.913612 0.000000 0.000001 -0.000000 0.000000 -0.000001 0.000000 -0.000000 -0.000001 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -1.539553 -0.043098 0.071450 2.437625 0.006140 -0.150781 1.695829 -0.180511 -0.106354 -0.000007 0.000017 -0.000028 0.000000 0.000000 0.000000 -0.000009 0.000017 -0.000028 -0.000001 -0.000000 0.000000 -0.000000 0.000003 0.000137 -1.534082 0.008862 -0.080262 2.434278 0.011314 -0.150595 1.730377 0.243672 -0.298240 0.000009 -0.000013 0.000027 0.000000 -0.000000 0.000000 0.000010 -0.000014 0.000026 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000101 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 -0.031304 0.000000 0.301142 -0.000000 -0.000000 -0.234703 0.001218 0.017130 -0.174050 0.000266 0.006929 9.713933 -0.000001 -0.000002 10.120952 -0.000001 -0.000002 0.000002 0.000022 -179.999991 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.595110 8.472432 0.304967 0.261625 -2.682192 -87.174258 -0.000001 -2.675220 -0.000001 0.812487 -0.028838 -4.065716 -0.000000 -0.000001 0.000000 -0.000001 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -4.560341 -6.548218 1.459793 -0.692003 17.751368 84.496250 0.000000 2.727836 0.000000 0.946828 0.039181 4.739329 -0.000001 -0.000002 -0.000000 0.000000 0.000000 -0.000000 -0.000001 -0.000001 0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -2.374384 -0.067267 0.109704 3.784978 0.006776 -0.234270 2.617040 -0.279880 -0.161876 -0.000008 0.000017 -0.000029 0.000000 0.000000 -0.000000 -0.000009 0.000017 -0.000031 -0.000001 0.000001 0.000000 -0.000000 0.000003 0.000135 -2.365915 0.014564 -0.123675 3.779516 0.014820 -0.233925 2.671802 0.372354 -0.463457 0.000006 -0.000014 0.000025 -0.000000 -0.000000 0.000000 0.000006 -0.000014 0.000024 -0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 -0.489846 0.000000 0.426887 -0.000000 -0.000000 -0.332700 0.001706 0.024284 -0.246719 0.000370 0.009822 9.709472 -0.000001 -0.000002 10.214014 -0.000001 -0.000002 -0.000001 0.000022 -179.999991 -0.000003 -0.000000 -0.000000 -0.000003 -0.000000 -0.000000 -0.000003 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.842971 8.281323 0.430938 0.599924 -3.797827 -87.449917 0.000000 -3.806679 -0.000000 0.784343 -0.026873 -3.924659 0.000001 0.000002 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -4.788961 -6.387806 1.313244 -0.339363 18.820361 84.751269 -0.000001 3.882261 -0.000000 0.905370 0.035819 4.531388 0.000000 0.000002 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000001 0.000000 0.000001 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000001 -0.000001 0.000000 -0.000001 -0.000001 -0.000000 -3.375459 -0.096981 0.155106 5.424551 0.004902 -0.335849 3.723192 -0.400370 -0.226441 -0.000004 0.000013 -0.000028 -0.000001 -0.000000 -0.000000 -0.000007 0.000013 -0.000026 -0.000002 0.000001 0.000000 -0.000000 0.000003 0.000135 -3.363365 0.022233 -0.175617 5.416265 0.016445 -0.335388 3.803553 0.523362 -0.664751 0.000010 -0.000011 0.000023 -0.000000 -0.000000 0.000000 0.000009 -0.000011 0.000023 -0.000001 0.000001 0.000000 0.000000 0.000002 -0.000100 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000
|
||||
0.000000 -1.018404 0.000000 0.571844 -0.000000 -0.000000 -0.445667 0.002253 0.032532 -0.330487 0.000486 0.013158 9.704327 -0.000001 -0.000002 10.302540 -0.000001 -0.000002 -0.000000 0.000022 -179.999991 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000001 0.000000 -0.000000 -1.128203 8.059914 0.575130 0.987975 -5.097646 -87.751094 0.000000 -5.121313 -0.000000 0.751889 -0.024695 -3.762043 0.000000 -0.000001 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000001 -0.000000 -5.021877 -6.201750 1.146731 0.067310 20.062564 85.032727 0.000001 5.224098 -0.000001 0.857557 0.032133 4.291635 0.000001 -0.000003 0.000000 0.000000 -0.000002 0.000001 0.000000 -0.000000 -0.000000 0.000000 0.000001 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 -4.536339 -0.132426 0.207097 7.358751 -0.001045 -0.455552 5.007935 -0.541865 -0.298493 -0.000002 0.000010 -0.000025 -0.000000 0.000000 -0.000000 -0.000005 0.000010 -0.000024 -0.000002 0.000000 -0.000000 -0.000001 0.000002 0.000136 -4.520003 0.032255 -0.235670 7.346786 0.014636 -0.455065 5.119804 0.693859 -0.902444 0.000005 -0.000011 0.000019 -0.000001 0.000000 -0.000000 0.000008 -0.000011 0.000019 0.000000 0.000001 0.000000 0.000000 0.000002 -0.000100 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000
|
||||
0.000000 -1.612862 0.000000 0.734890 -0.000000 -0.000000 -0.572724 0.002849 0.041810 -0.424701 0.000611 0.016909 9.698541 -0.000001 -0.000002 10.386642 -0.000001 -0.000002 -0.000000 0.000022 -179.999991 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000001 0.000000 0.000000 -1.448371 7.809620 0.735988 1.422238 -6.576718 -88.073643 -0.000000 -6.612915 -0.000001 0.715378 -0.022352 -3.579129 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -5.258346 -5.991361 0.961659 0.525353 21.473058 85.336657 0.000001 6.747218 -0.000000 0.803751 0.028221 4.021913 -0.000001 0.000004 -0.000000 0.000001 -0.000000 -0.000000 -0.000000 -0.000001 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -5.850638 -0.173818 0.265082 9.591527 -0.012928 -0.593393 6.465017 -0.704265 -0.376364 -0.000005 0.000015 -0.000025 -0.000001 0.000000 0.000000 -0.000004 0.000015 -0.000025 -0.000002 -0.000000 -0.000000 0.000000 0.000003 0.000136 -5.829448 0.045063 -0.303398 9.574843 0.007539 -0.593017 6.614889 0.880722 -1.176935 0.000010 -0.000008 0.000023 -0.000001 0.000000 -0.000000 0.000008 -0.000008 0.000021 -0.000001 0.000001 0.000000 -0.000000 0.000002 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 -2.269098 0.000000 0.914898 -0.000000 -0.000000 -0.712997 0.003483 0.052054 -0.528710 0.000741 0.021051 9.692151 -0.000002 -0.000002 10.466442 -0.000001 -0.000002 0.000003 0.000022 -179.999991 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000000 0.000000 0.000000 -1.801031 7.531872 0.911940 1.899315 -8.229994 -88.413233 0.000000 -8.275229 -0.000001 0.675060 -0.019901 -3.377178 -0.000000 -0.000002 0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -5.497628 -5.757959 0.759419 1.032285 23.046805 85.658844 -0.000000 8.445452 -0.000000 0.744310 0.024197 3.724071 0.000001 0.000000 0.000001 -0.000001 -0.000002 0.000000 -0.000002 -0.000001 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 -7.311910 -0.221388 0.328417 12.127852 -0.032930 -0.749276 8.088130 -0.887458 -0.458229 0.000006 0.000006 -0.000018 0.000001 0.000000 0.000000 0.000005 0.000005 -0.000019 -0.000002 0.000000 0.000000 0.000000 0.000003 0.000136 -7.285262 0.061114 -0.378331 12.105212 -0.007018 -0.749214 8.283115 1.080554 -1.488656 0.000006 -0.000007 0.000015 0.000001 -0.000000 0.000000 0.000006 -0.000008 0.000014 -0.000001 0.000001 0.000000 0.000000 0.000002 -0.000098 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000
|
||||
0.000000 -2.982996 0.000000 1.110743 -0.000000 -0.000000 -0.865603 0.004144 0.063200 -0.641862 0.000875 0.025557 9.685205 -0.000001 -0.000002 10.542042 -0.000001 -0.000002 0.000000 0.000022 -179.999991 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 0.000000 0.000000 -0.000000 -2.183734 7.228096 1.101403 2.416011 -10.052131 -88.765371 -0.000000 -10.101786 -0.000001 0.631183 -0.017394 -3.157449 0.000000 -0.000000 0.000000 0.000000 0.000001 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000001 -0.000000 -5.738984 -5.502885 0.541391 1.585890 24.778494 85.994766 -0.000003 10.312409 -0.000001 0.679610 0.020170 3.399957 0.000000 -0.000001 0.000001 -0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 0.000001 -0.000001 0.000000 0.000001 -0.000001 0.000000 -8.913545 -0.275365 0.396422 14.973211 -0.063555 -0.922907 9.870793 -1.091263 -0.542132 0.000003 0.000007 -0.000021 -0.000000 -0.000000 0.000000 0.000004 0.000008 -0.000020 -0.000000 -0.000000 0.000000 -0.000000 0.000003 0.000135 -8.880847 0.080888 -0.459962 14.943149 -0.031530 -0.923443 10.118574 1.289683 -1.837961 0.000009 -0.000007 0.000012 -0.000001 -0.000000 -0.000000 0.000005 -0.000006 0.000011 0.000000 0.000002 0.000000 0.000000 0.000002 -0.000099 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000
|
||||
0.000000 -3.750436 0.000000 1.321299 -0.000000 -0.000000 -1.029665 0.004822 0.075186 -0.763506 0.001009 0.030402 9.677734 -0.000001 -0.000002 10.613558 -0.000001 -0.000002 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -2.594030 6.899744 1.302798 2.969375 -12.037280 -89.125438 -0.000000 -12.085745 -0.000001 0.583998 -0.014891 -2.921208 0.000000 -0.000002 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -5.981677 -5.227498 0.308943 2.184242 26.662374 86.339656 -0.000003 12.341314 -0.000001 0.610008 0.016247 3.051426 0.000002 0.000001 0.000001 -0.000002 0.000001 0.000000 -0.000002 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -10.648669 -0.335963 0.468362 18.132938 -0.107617 -1.113678 11.806195 -1.315389 -0.626009 0.000004 0.000007 -0.000013 0.000003 0.000000 0.000000 0.000003 0.000007 -0.000012 -0.000001 0.000000 0.000000 -0.000000 0.000002 0.000137 -10.609327 0.104864 -0.547735 18.093728 -0.068810 -1.115183 12.114997 1.504147 -2.225002 0.000003 -0.000003 0.000013 -0.000001 -0.000000 -0.000000 0.000002 -0.000004 0.000010 0.000000 0.000001 -0.000000 -0.000001 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 -4.567299 0.000000 1.545440 -0.000000 -0.000000 -1.204306 0.005506 0.087946 -0.892987 0.001139 0.035559 9.669781 -0.000001 -0.000002 10.681106 -0.000001 -0.000002 -0.000000 0.000022 -179.999991 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 0.000000 0.000000 0.000000 -3.029479 6.548291 1.514556 3.556758 -14.178934 -89.488763 0.000000 -14.219763 -0.000001 0.533756 -0.012435 -2.669712 -0.000001 -0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -6.224973 -4.933167 0.063423 2.825812 28.692095 86.688426 0.000002 14.524843 -0.000001 0.535875 0.012536 2.680324 0.000001 0.000002 -0.000000 -0.000002 -0.000001 0.000000 0.000001 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -12.510058 -0.403363 0.543462 21.611466 -0.168204 -1.320542 13.887057 -1.559384 -0.707704 0.000004 0.000001 -0.000004 -0.000004 0.000000 0.000000 0.000006 0.000001 -0.000002 -0.000003 0.000001 0.000000 -0.000001 0.000002 0.000137 -12.463488 0.133515 -0.641042 21.561114 -0.121951 -1.323486 14.265536 1.719758 -2.649705 0.000003 -0.000003 0.000004 -0.000001 0.000000 -0.000000 0.000003 -0.000003 0.000004 0.000000 0.000002 0.000000 -0.000000 0.000002 -0.000099 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000
|
||||
0.000000 -5.429468 0.000000 1.782038 -0.000000 -0.000000 -1.388645 0.006186 0.101417 -1.029654 0.001264 0.041002 9.661391 -0.000001 -0.000002 10.744799 -0.000001 -0.000002 0.000002 0.000022 -179.999991 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 -3.487651 6.175247 1.735130 4.175859 -16.469732 -89.850537 -0.000000 -16.495853 -0.000002 0.480710 -0.010090 -2.404230 -0.000000 -0.000001 -0.000000 -0.000001 -0.000003 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -6.468158 -4.621286 -0.193836 3.509514 30.860526 87.035584 -0.000001 16.854993 -0.000001 0.457587 0.009140 2.288522 0.000000 -0.000001 0.000000 -0.000000 -0.000002 0.000001 0.000001 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 -14.490035 -0.477697 0.620902 25.411435 -0.248604 -1.541876 16.105511 -1.822609 -0.784991 0.000010 0.000003 -0.000001 -0.000001 0.000000 0.000000 0.000008 0.000001 -0.000001 -0.000002 0.000001 0.000000 0.000002 0.000003 0.000135 -14.435683 0.167287 -0.739217 25.347705 -0.194261 -1.546847 16.562642 1.932108 -3.111597 -0.000001 0.000002 0.000006 0.000001 0.000000 -0.000000 0.000002 0.000001 0.000004 -0.000001 0.000001 0.000000 0.000002 0.000002 -0.000100 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 -6.332822 0.000000 2.029962 -0.000000 -0.000000 -1.581801 0.006852 0.115535 -1.172855 0.001382 0.046706 9.652598 -0.000001 -0.000002 10.804750 -0.000001 -0.000002 0.000004 0.000022 -179.999991 0.000002 0.000000 -0.000000 0.000002 0.000000 -0.000000 0.000002 0.000000 0.000000 -0.000001 0.000000 -0.000000 -3.966132 5.782150 1.962997 4.824799 -18.901348 -90.205864 -0.000001 -18.905255 -0.000002 0.425110 -0.007889 -2.126026 -0.000001 -0.000002 0.000000 -0.000001 -0.000001 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -6.710531 -4.293265 -0.461523 4.234815 33.159680 87.375270 -0.000002 19.322948 -0.000001 0.375512 0.006155 1.877872 -0.000001 0.000004 -0.000000 0.000000 0.000001 -0.000000 -0.000002 0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000001 -0.000001 0.000000 0.000001 -0.000001 0.000000 -16.580441 -0.559033 0.699827 29.532754 -0.352181 -1.775344 18.453040 -2.104180 -0.855618 0.000009 -0.000004 0.000006 0.000002 0.000000 0.000000 0.000014 -0.000002 0.000006 -0.000001 0.000001 0.000000 -0.000002 0.000002 0.000136 -16.517745 0.206585 -0.841539 29.453111 -0.289143 -1.783056 18.997888 2.136653 -3.609773 0.000002 0.000001 -0.000003 -0.000003 -0.000000 -0.000000 0.000006 0.000000 -0.000004 -0.000001 0.000002 -0.000000 -0.000001 0.000002 -0.000099 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 -7.273244 0.000000 2.288086 -0.000000 -0.000000 -1.782896 0.007495 0.130235 -1.321938 0.001490 0.052644 9.643446 -0.000002 -0.000002 10.861071 -0.000001 -0.000002 0.000001 0.000022 -179.999991 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -0.000000 0.000000 0.000000 0.000000 -4.462529 5.370583 2.196675 5.502165 -21.464356 -90.549710 -0.000001 -21.438395 -0.000002 0.367212 -0.005883 -1.836366 -0.000001 -0.000001 0.000000 0.000000 0.000000 -0.000001 -0.000000 -0.000000 -0.000000 0.000000 -0.000001 -0.000000 -6.951411 -3.950542 -0.738346 5.001895 35.580586 87.701077 0.000001 21.918989 -0.000002 0.290021 0.003670 1.450251 -0.000000 0.000007 -0.000001 0.000001 0.000001 -0.000001 0.000002 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -18.772558 -0.647363 0.779352 33.971517 -0.482199 -2.017787 20.920359 -2.402960 -0.917354 0.000016 -0.000008 0.000013 -0.000003 0.000000 0.000000 0.000019 -0.000008 0.000012 0.000001 0.000001 0.000000 -0.000000 0.000002 0.000135 -18.700985 0.251758 -0.947228 33.873193 -0.409926 -2.029092 21.561898 2.328782 -4.142802 0.000004 0.000008 -0.000008 -0.000001 0.000000 -0.000001 0.000005 0.000007 -0.000009 0.000003 0.000002 0.000000 0.000003 0.000002 -0.000099 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 -8.246617 0.000000 2.555278 -0.000000 -0.000000 -1.991049 0.008106 0.145453 -1.476248 0.001584 0.058792 9.633968 -0.000001 -0.000002 10.913878 -0.000001 -0.000002 0.000001 0.000022 -179.999991 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 0.000000 0.000000 0.000000 0.000000 -4.974473 4.942176 2.434728 6.207088 -24.148156 -90.876862 -0.000000 -24.084772 -0.000003 0.307267 -0.004120 -1.536520 -0.000001 -0.000003 0.000000 -0.000001 0.000000 -0.000001 -0.000001 -0.000000 -0.000000 -0.000000 -0.000001 -0.000000 -7.190138 -3.594563 -1.023033 5.811767 38.113173 88.005888 0.000002 24.632415 -0.000002 0.201496 0.001770 1.007528 -0.000002 0.000002 0.000001 0.000002 0.000002 -0.000000 0.000003 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000001 0.000000 -0.000001 0.000001 -0.000000 -0.000001 0.000001 0.000000 -0.000000 0.000001 -0.000000 0.000001 -0.000001 -0.000000 0.000001 -0.000001 -0.000000 -21.057075 -0.742585 0.858573 38.718840 -0.641582 -2.265137 23.497365 -2.717517 -0.968040 0.000018 -0.000009 0.000020 0.000001 0.000000 -0.000000 0.000020 -0.000009 0.000020 -0.000001 0.000001 0.000000 0.000001 0.000003 0.000135 -20.976127 0.303083 -1.055455 38.598919 -0.559632 -2.281031 24.244187 2.503920 -4.708668 0.000003 0.000013 -0.000020 -0.000006 -0.000000 0.000001 0.000004 0.000012 -0.000020 -0.000002 0.000002 -0.000000 -0.000004 0.000003 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 -9.248819 0.000000 2.830407 -0.000000 -0.000001 -2.205377 0.008676 0.161125 -1.635134 0.001665 0.065121 9.624216 -0.000002 -0.000002 10.963284 -0.000001 -0.000002 0.000001 0.000022 -179.999991 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -5.499624 4.498603 2.675761 6.939313 -26.940911 -91.181905 -0.000001 -26.832922 -0.000003 0.245534 -0.002631 -1.227756 -0.000002 -0.000000 -0.000001 0.000000 -0.000000 0.000001 -0.000002 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -7.426082 -3.226810 -1.314334 6.666519 40.746306 88.281800 -0.000001 27.451485 -0.000002 0.110312 0.000527 0.551580 -0.000003 -0.000003 -0.000001 0.000002 -0.000000 0.000001 -0.000003 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -23.424117 -0.844499 0.936588 43.759875 -0.832635 -2.512424 26.173080 -3.046136 -1.005628 0.000030 -0.000016 0.000028 -0.000002 0.000000 0.000000 0.000028 -0.000015 0.000029 -0.000001 0.000001 -0.000000 0.000001 0.000002 0.000135 -23.333292 0.360748 -1.165349 43.615307 -0.740696 -2.534035 27.033175 2.657646 -5.304684 -0.000009 0.000017 -0.000030 -0.000005 -0.000000 -0.000000 -0.000008 0.000017 -0.000032 0.000004 0.000002 0.000000 -0.000000 0.000003 -0.000100 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 -10.275733 0.000000 3.112341 -0.000000 -0.000001 -2.425001 0.009201 0.177186 -1.797940 0.001728 0.071607 9.614217 -0.000001 -0.000002 11.009398 -0.000001 -0.000002 0.000002 0.000022 -179.999991 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000001 -0.000000 0.000000 -6.035666 4.041579 2.918445 7.699296 -29.829553 -91.459040 -0.000001 -29.670482 -0.000003 0.182262 -0.001449 -0.911348 0.000000 0.000001 0.000001 -0.000001 0.000003 -0.000000 0.000002 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -7.658628 -2.848768 -1.611021 7.569570 43.467693 88.519737 -0.000004 30.363483 -0.000003 0.016857 0.000012 0.084288 0.000001 0.000001 -0.000001 -0.000000 -0.000001 -0.000001 -0.000005 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -25.863189 -0.952797 1.012509 49.072932 -1.056709 -2.753855 28.935734 -3.386798 -1.028280 0.000035 -0.000017 0.000033 -0.000003 -0.000000 -0.000000 0.000032 -0.000018 0.000033 0.000000 0.000001 -0.000000 -0.000001 0.000003 0.000135 -25.762056 0.424843 -1.276004 48.900681 -0.954648 -2.782432 29.916126 2.785826 -5.927577 -0.000011 0.000021 -0.000034 -0.000001 -0.000000 -0.000000 -0.000012 0.000020 -0.000034 0.000001 0.000002 0.000000 0.000000 0.000002 -0.000099 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 -11.323239 0.000001 3.399946 -0.000000 -0.000001 -2.649037 0.009672 0.193572 -1.964016 0.001775 0.078224 9.604023 -0.000001 -0.000002 11.052338 -0.000002 -0.000002 0.000003 0.000022 -179.999991 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -6.580326 3.572876 3.161507 8.488314 -32.799876 -91.702195 -0.000001 -32.584135 -0.000004 0.117711 -0.000604 -0.588567 0.000003 -0.000002 0.000001 0.000001 0.000001 -0.000000 -0.000001 0.000000 -0.000000 0.000001 0.000001 0.000000 -7.887206 -2.461957 -1.911889 8.526082 46.264006 88.709206 -0.000000 33.354655 -0.000003 -0.078497 0.000271 -0.392460 -0.000000 0.000001 0.000001 0.000001 0.000002 0.000001 0.000002 -0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -28.363267 -1.067055 1.085474 54.628854 -1.313899 -2.983024 31.772708 -3.737227 -1.034400 0.000032 -0.000025 0.000044 -0.000001 -0.000000 -0.000000 0.000030 -0.000024 0.000045 -0.000001 0.000002 0.000000 -0.000003 0.000002 0.000135 -28.251396 0.495345 -1.386504 54.425990 -1.201797 -3.019915 32.879192 2.884727 -6.573384 -0.000009 0.000027 -0.000044 0.000001 -0.000000 0.000000 -0.000007 0.000028 -0.000050 0.000004 0.000003 0.000001 -0.000002 0.000002 -0.000099 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 -12.387221 0.000001 3.692091 -0.000000 -0.000001 -2.876606 0.010085 0.210218 -2.132707 0.001802 0.084944 9.593663 -0.000001 -0.000002 11.092216 -0.000001 -0.000002 0.000002 0.000022 -179.999991 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -7.131352 3.094304 3.403742 9.308602 -35.836548 -91.904587 -0.000001 -35.559812 -0.000004 0.052135 -0.000120 -0.260686 -0.000001 -0.000001 0.000002 -0.000001 0.000001 -0.000001 -0.000001 0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -8.111266 -2.067905 -2.215756 9.543437 49.120870 88.837675 0.000001 36.410400 -0.000004 -0.175350 0.001340 -0.876776 -0.000001 0.000003 0.000002 -0.000000 0.000001 0.000003 0.000003 0.000000 -0.000000 -0.000001 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -30.912818 -1.186739 1.154682 60.390955 -1.602778 -3.193265 34.670638 -4.094902 -1.022701 0.000035 -0.000030 0.000052 -0.000000 -0.000001 -0.000000 0.000034 -0.000029 0.000055 -0.000001 0.000002 -0.000000 0.000001 0.000002 0.000134 -30.789851 0.572114 -1.495925 60.154828 -1.480972 -3.239864 35.907541 2.951196 -7.237589 -0.000016 0.000031 -0.000054 -0.000000 -0.000000 -0.000000 -0.000019 0.000029 -0.000054 0.000000 0.000003 0.000001 0.000003 0.000003 -0.000098 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000
|
||||
0.000000 -13.463561 0.000001 3.987641 -0.000001 -0.000001 -3.106820 0.010436 0.227059 -2.303358 0.001809 0.091743 9.583188 -0.000001 -0.000002 11.129142 -0.000001 -0.000002 0.000005 0.000022 -179.999991 0.000003 -0.000000 0.000000 0.000003 -0.000000 0.000000 0.000003 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -7.686546 2.607725 3.644011 10.163525 -38.923336 -92.058785 0.000001 -38.582646 -0.000005 -0.014206 -0.000009 0.071023 -0.000001 -0.000000 0.000000 -0.000001 0.000001 0.000000 0.000003 0.000000 -0.000000 0.000001 -0.000000 -0.000000 -8.330295 -1.668161 -2.521455 10.631994 52.022973 88.889906 0.000007 39.515294 -0.000004 -0.273328 0.003261 -1.366774 -0.000002 0.000002 0.000003 0.000001 -0.000000 0.000001 0.000005 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -33.499892 -1.311211 1.219399 66.315338 -1.920248 -3.378084 37.615508 -4.457109 -0.992264 0.000032 -0.000032 0.000058 0.000001 0.000000 -0.000000 0.000032 -0.000032 0.000056 0.000003 0.000002 -0.000000 -0.000001 0.000003 0.000135 -33.365501 0.654888 -1.603372 66.043736 -1.789358 -3.435775 38.985425 2.982732 -7.915184 -0.000021 0.000036 -0.000062 0.000001 0.000000 -0.000001 -0.000021 0.000035 -0.000062 0.000005 0.000003 0.000000 0.000003 0.000003 -0.000099 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 -14.548135 0.000001 4.285458 -0.000001 -0.000001 -3.338803 0.010721 0.244031 -2.475318 0.001796 0.098594 9.572635 -0.000001 -0.000002 11.163242 -0.000001 -0.000002 0.000000 0.000022 -179.999991 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 0.000000 0.000000 0.000000 -8.243731 2.115039 3.881247 11.057810 -42.043199 -92.156368 -0.000001 -41.637253 -0.000005 -0.081052 -0.000285 0.405279 0.000000 -0.000000 0.000002 0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -8.543807 -1.264293 -2.827847 11.806127 54.954275 88.847012 0.000000 42.653316 -0.000005 -0.372046 0.006041 -1.860558 -0.000002 0.000003 0.000004 -0.000001 -0.000001 -0.000003 -0.000003 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000001 0.000000 0.000000 -0.000001 -0.000001 0.000000 -0.000001 -0.000001 -0.000000 -36.112183 -1.439730 1.278979 72.352057 -2.261575 -3.531683 40.592726 -4.821012 -0.942567 0.000028 -0.000033 0.000062 0.000001 -0.000000 0.000000 0.000027 -0.000035 0.000063 0.000001 0.000003 0.000000 0.000005 0.000002 0.000135 -35.966106 0.743279 -1.707981 72.043367 -2.122508 -3.601770 42.096416 2.977647 -8.600748 -0.000020 0.000040 -0.000074 -0.000001 0.000000 -0.000000 -0.000019 0.000040 -0.000074 0.000000 0.000003 0.000000 -0.000004 0.000002 -0.000098 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 -15.636828 0.000001 4.584413 -0.000001 -0.000001 -3.571668 0.010938 0.261068 -2.647930 0.001763 0.105471 9.562037 -0.000001 -0.000002 11.194607 -0.000001 -0.000002 0.000001 0.000022 -179.999991 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -8.800767 1.618186 4.114468 11.997822 -45.178583 -92.187589 -0.000003 -44.707843 -0.000005 -0.148157 -0.000958 0.740809 -0.000002 -0.000002 0.000001 0.000001 0.000002 0.000000 0.000003 -0.000000 0.000000 0.000000 0.000000 -0.000001 -8.751351 -0.857877 -3.133812 13.085757 57.898018 88.684713 -0.000000 45.808016 -0.000005 -0.471120 0.009686 -2.356226 -0.000001 0.000006 -0.000000 -0.000003 -0.000003 -0.000000 -0.000000 -0.000000 0.000000 0.000001 0.000000 -0.000000 0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -38.737169 -1.571473 1.332890 78.446710 -2.620584 -3.649467 43.587347 -5.183708 -0.873527 0.000032 -0.000036 0.000066 -0.000000 0.000001 0.000000 0.000030 -0.000037 0.000067 -0.000001 0.000003 0.000000 0.000005 0.000003 0.000135 -38.579186 0.836788 -1.808949 78.099955 -2.474518 -3.733095 45.223618 2.935089 -9.288647 -0.000023 0.000043 -0.000076 -0.000000 0.000000 -0.000000 -0.000023 0.000043 -0.000078 0.000001 0.000004 0.000001 -0.000003 0.000002 -0.000099 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 -16.725523 0.000001 4.883367 -0.000001 -0.000001 -3.804533 0.011086 0.278106 -2.820543 0.001708 0.112348 9.551437 -0.000001 -0.000002 11.223373 -0.000001 -0.000002 0.000001 0.000022 -179.999991 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 -9.355555 1.119142 4.342753 12.992008 -48.311629 -92.141055 -0.000001 -47.778447 -0.000006 -0.215254 -0.002021 1.076344 0.000001 0.000002 0.000001 0.000002 0.000003 0.000001 0.000002 -0.000000 0.000000 0.000001 -0.000000 -0.000001 -8.952512 -0.450507 -3.438245 14.498647 60.836891 88.371235 -0.000002 48.962727 -0.000005 -0.570156 0.014193 -2.851892 -0.000003 0.000002 -0.000001 -0.000004 -0.000003 -0.000000 -0.000002 -0.000001 0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -41.362208 -1.705546 1.380707 84.542497 -2.990056 -3.728453 46.584171 -5.542315 -0.785503 0.000022 -0.000039 0.000072 -0.000000 0.000001 -0.000000 0.000024 -0.000039 0.000072 0.000004 0.000003 -0.000000 0.000004 0.000003 0.000135 -41.192167 0.934802 -1.905551 84.157459 -2.838409 -3.826539 48.349929 2.855121 -9.973164 -0.000031 0.000047 -0.000084 -0.000000 -0.000000 -0.000000 -0.000030 0.000045 -0.000086 0.000002 0.000003 0.000000 0.000003 0.000003 -0.000097 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 -17.810099 0.000001 5.181186 -0.000001 -0.000001 -4.036515 0.011164 0.295080 -2.992502 0.001634 0.119198 9.540883 -0.000001 -0.000002 11.249636 -0.000002 -0.000002 0.000002 0.000022 -179.999991 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -9.906035 0.619920 4.565260 14.051314 -51.424310 -92.003078 0.000000 -50.833048 -0.000007 -0.282091 -0.003472 1.410598 0.000002 -0.000004 -0.000002 0.000001 -0.000001 0.000000 0.000000 0.000000 -0.000000 -0.000002 -0.000000 -0.000001 -9.146906 -0.043789 -3.740060 16.083939 63.753170 87.863601 -0.000001 52.100744 -0.000007 -0.668760 0.019530 -3.345648 -0.000002 0.000001 -0.000002 0.000003 -0.000001 -0.000001 -0.000001 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -43.974653 -1.841004 1.422151 90.582652 -3.362270 -3.767537 49.567950 -5.894037 -0.679298 0.000027 -0.000040 0.000076 -0.000001 0.000001 -0.000000 0.000028 -0.000040 0.000076 -0.000003 0.000004 -0.000000 0.000001 0.000003 0.000134 -43.792475 1.036615 -1.997154 90.159890 -3.206626 -3.880706 51.458239 2.738715 -10.648656 -0.000030 0.000044 -0.000081 0.000000 -0.000001 -0.000001 -0.000031 0.000043 -0.000079 -0.000002 0.000004 0.000001 -0.000000 0.000002 -0.000097 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 -18.886438 0.000001 5.476736 -0.000001 -0.000001 -4.266730 0.011174 0.311925 -3.163155 0.001540 0.125996 9.530406 -0.000001 -0.000002 11.273518 -0.000002 -0.000002 0.000000 0.000022 -179.999991 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -10.450183 0.122553 4.781231 15.189972 -54.498803 -91.757007 -0.000006 -53.855878 -0.000007 -0.348409 -0.005299 1.742303 0.000003 -0.000002 0.000002 0.000001 0.000000 0.000003 -0.000003 0.000000 0.000000 -0.000001 0.000000 -0.000000 -9.334180 0.360667 -4.038194 17.897954 66.628605 87.102028 -0.000001 55.205653 -0.000007 -0.766571 0.025668 -3.835609 -0.000002 0.000002 -0.000001 0.000000 0.000001 0.000002 -0.000002 -0.000000 -0.000000 0.000001 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -46.561963 -1.976878 1.457066 96.512724 -3.729577 -3.767536 52.523571 -6.236259 -0.556125 0.000019 -0.000044 0.000080 -0.000003 0.000000 -0.000000 0.000018 -0.000045 0.000079 0.000001 0.000004 0.000000 0.000008 0.000003 0.000134 -46.367634 1.141438 -2.083232 96.053504 -3.571615 -3.896090 54.531769 2.587710 -11.309734 -0.000028 0.000043 -0.000079 0.000001 0.000000 0.000000 -0.000025 0.000043 -0.000079 -0.000000 0.000002 -0.000000 -0.000000 0.000002 -0.000097 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000
|
||||
0.000000 -19.950417 0.000001 5.768879 -0.000001 -0.000001 -4.494298 0.011117 0.328576 -3.331844 0.001426 0.132716 9.520049 -0.000001 -0.000002 11.295133 -0.000002 -0.000002 0.000001 0.000022 -179.999991 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -10.985989 -0.370892 4.989975 16.426463 -57.517604 -91.382296 -0.000003 -56.831542 -0.000009 -0.413949 -0.007477 2.070172 0.000001 -0.000003 -0.000000 -0.000000 0.000001 0.000001 0.000001 0.000000 -0.000000 -0.000002 0.000000 -0.000000 -9.514018 0.761234 -4.331592 20.023381 69.444241 86.000496 0.000001 58.261377 -0.000008 -0.863190 0.032555 -4.319881 -0.000001 -0.000002 -0.000001 0.000000 0.000002 -0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000000 -0.000000 -49.111864 -2.112186 1.485437 102.282622 -4.084957 -3.731041 55.436148 -6.566578 -0.417573 0.000019 -0.000041 0.000072 -0.000001 -0.000000 0.000000 0.000021 -0.000040 0.000072 0.000002 0.000004 -0.000000 -0.000004 0.000003 0.000134 -48.905418 1.248423 -2.163373 101.788868 -3.926359 -3.874934 57.554241 2.404758 -11.951415 -0.000026 0.000046 -0.000081 0.000001 -0.000000 0.000000 -0.000028 0.000044 -0.000083 -0.000001 0.000003 0.000001 0.000007 0.000002 -0.000097 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 -20.997923 0.000001 6.056485 -0.000001 -0.000001 -4.718337 0.010996 0.344969 -3.497919 0.001294 0.139331 9.509847 -0.000001 -0.000002 11.314597 -0.000002 -0.000002 0.000002 0.000022 -179.999991 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -11.511495 -0.858341 5.190876 17.784749 -60.463676 -90.853038 -0.000007 -59.745201 -0.000010 -0.478456 -0.009993 2.392946 0.000002 0.000002 -0.000000 -0.000002 -0.000001 0.000001 -0.000002 0.000000 -0.000000 -0.000000 0.000000 0.000000 -9.686118 1.156286 -4.619216 22.585552 72.179964 84.430666 0.000003 61.252556 -0.000010 -0.958240 0.040136 -4.796570 -0.000002 0.000004 0.000001 -0.000001 0.000002 -0.000001 -0.000001 -0.000001 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000001 0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -51.612400 -2.245965 1.507385 107.848421 -4.422468 -3.662074 58.291307 -6.882893 -0.265584 0.000009 -0.000040 0.000075 0.000001 -0.000001 0.000000 0.000011 -0.000042 0.000074 -0.000000 0.000003 0.000000 -0.000004 0.000002 0.000133 -51.393984 1.356680 -2.237284 107.322496 -4.264828 -3.820947 60.510148 2.193198 -12.569222 -0.000025 0.000049 -0.000085 -0.000003 -0.000000 0.000000 -0.000023 0.000047 -0.000085 -0.000002 0.000003 0.000001 -0.000001 0.000002 -0.000098 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 -22.024841 0.000001 6.338420 -0.000001 -0.000001 -4.937961 0.010816 0.361037 -3.660726 0.001148 0.145816 9.499853 -0.000001 -0.000002 11.332010 -0.000002 -0.000002 0.000000 0.000022 -179.999991 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -0.000000 0.000000 -0.000000 -0.000000 -12.024768 -1.337694 5.383387 19.296089 -63.320525 -90.136258 -0.000006 -62.582756 -0.000010 -0.541675 -0.012812 2.709343 0.000002 0.000001 0.000000 0.000001 -0.000002 -0.000002 0.000001 -0.000001 -0.000000 0.000000 0.000000 -0.000000 -9.850243 1.544190 -4.900042 25.780822 74.813254 82.193274 0.000005 64.164566 -0.000012 -1.051337 0.048325 -5.263787 -0.000001 -0.000001 0.000000 -0.000001 0.000000 0.000000 -0.000001 -0.000001 0.000000 0.000000 0.000000 -0.000000 0.000001 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 0.000000 0.000001 0.000001 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -54.052030 -2.377274 1.523148 113.173175 -4.737506 -3.565672 61.075210 -7.183413 -0.102340 0.000012 -0.000039 0.000071 -0.000003 -0.000001 0.000001 0.000009 -0.000039 0.000071 0.000001 0.000003 0.000000 0.000001 0.000003 0.000133 -53.821843 1.465292 -2.304802 112.617894 -4.582269 -3.738878 63.384886 1.956955 -13.159300 -0.000015 0.000043 -0.000079 -0.000002 0.000000 0.000001 -0.000016 0.000042 -0.000081 0.000001 0.000002 0.000000 -0.000002 0.000002 -0.000097 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000
|
||||
0.000000 -23.027040 0.000001 6.613547 -0.000001 -0.000001 -5.152289 0.010581 0.376718 -3.819611 0.000986 0.152144 9.490099 -0.000001 -0.000002 11.347499 -0.000002 -0.000002 0.000003 0.000022 -179.999991 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000000 0.000000 -0.000000 -12.523891 -1.806847 5.567027 21.001624 -66.072245 -89.189362 -0.000009 -65.330903 -0.000012 -0.603350 -0.015896 3.018094 0.000001 0.000001 -0.000001 0.000002 0.000002 -0.000002 -0.000002 -0.000001 -0.000000 -0.000001 0.000000 -0.000000 -10.006142 1.923308 -5.173052 29.929435 77.316785 78.965320 0.000005 66.983611 -0.000013 -1.142106 0.057054 -5.719658 -0.000000 -0.000001 -0.000000 0.000001 -0.000002 0.000000 0.000000 0.000001 0.000000 0.000001 -0.000000 -0.000001 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000001 -0.000002 0.000000 0.000001 -0.000002 0.000000 -56.419716 -2.505233 1.533083 118.227460 -5.026917 -3.447416 63.774774 -7.466703 0.069775 -0.000002 -0.000039 0.000070 0.000002 0.000001 -0.000000 0.000000 -0.000039 0.000072 0.000005 0.000005 0.000000 0.000000 0.000002 0.000132 -56.178005 1.573340 -2.365871 117.645774 -4.875316 -3.634077 66.164869 1.700378 -13.718437 -0.000013 0.000042 -0.000074 0.000001 -0.000001 0.000000 -0.000011 0.000042 -0.000074 0.000002 0.000003 0.000001 -0.000006 0.000003 -0.000098 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 -24.000408 0.000001 6.880740 -0.000001 -0.000001 -5.360441 0.010296 0.391946 -3.973922 0.000814 0.158289 9.480626 -0.000002 -0.000002 11.361165 -0.000002 -0.000002 0.000001 0.000022 -179.999991 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -13.006975 -2.263685 5.741377 22.955883 -68.703425 -87.956492 -0.000008 -67.977280 -0.000014 -0.663229 -0.019210 3.317930 -0.000001 0.000003 0.000000 0.000000 0.000000 0.000002 -0.000001 0.000000 -0.000000 0.000001 0.000000 -0.000000 -10.153623 2.292004 -5.437247 35.575488 79.653489 74.200470 0.000008 69.697040 -0.000019 -1.230177 0.066221 -6.162289 -0.000000 0.000002 -0.000001 0.000002 0.000001 0.000000 -0.000001 -0.000000 -0.000001 0.000001 -0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -58.704984 -2.629013 1.537648 122.989290 -5.288947 -3.313009 66.377616 -7.731698 0.248228 0.000009 -0.000037 0.000066 -0.000003 0.000001 -0.000001 0.000008 -0.000037 0.000066 0.000000 0.000002 -0.000000 0.000006 0.000003 0.000133 -58.452124 1.679920 -2.420554 122.384258 -5.141986 -3.512088 68.837652 1.428126 -14.244159 -0.000008 0.000041 -0.000069 -0.000003 -0.000000 0.000001 -0.000005 0.000041 -0.000072 0.000002 0.000003 0.000000 -0.000001 0.000002 -0.000097 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 -24.940834 0.000001 7.138864 -0.000001 -0.000001 -5.561536 0.009968 0.406656 -4.123004 0.000631 0.164226 9.471475 -0.000001 -0.000002 11.373134 -0.000002 -0.000002 0.000000 0.000022 -179.999991 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 -0.000002 -0.000000 -0.000000 0.000001 0.000000 -0.000000 -13.472168 -2.706093 5.906077 25.231463 -71.198828 -86.363740 -0.000012 -70.510413 -0.000014 -0.721056 -0.022707 3.607577 -0.000000 -0.000007 -0.000001 0.000000 0.000003 0.000002 0.000000 -0.000000 0.000000 -0.000001 0.000000 -0.000000 -10.292499 2.648639 -5.691619 43.667360 81.765253 66.947827 0.000009 72.293099 -0.000021 -1.315175 0.075719 -6.589813 0.000000 0.000003 -0.000000 -0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000001 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -60.897953 -2.747863 1.537380 127.443489 -5.523085 -3.167935 68.872281 -7.977663 0.430433 0.000004 -0.000035 0.000062 -0.000004 0.000000 -0.000000 0.000003 -0.000033 0.000061 0.000002 0.000003 0.000000 -0.000000 0.000002 0.000133 -60.634321 1.784154 -2.469011 126.818130 -5.381503 -3.378290 71.391924 1.145019 -14.734642 0.000002 0.000033 -0.000057 -0.000004 0.000000 0.000001 0.000003 0.000032 -0.000058 0.000000 0.000003 0.000001 0.000000 0.000002 -0.000097 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 -25.844189 0.000001 7.386787 -0.000001 -0.000001 -5.754696 0.009605 0.420785 -4.266206 0.000441 0.169928 9.462679 -0.000002 -0.000002 11.383513 -0.000002 -0.000002 0.000003 0.000022 -179.999991 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 -0.000001 -0.000000 -0.000000 -13.917605 -3.131956 6.060825 27.925724 -73.543133 -84.312798 -0.000017 -72.919824 -0.000018 -0.776580 -0.026343 3.885764 0.000001 0.000002 0.000000 0.000000 0.000003 -0.000001 -0.000001 0.000000 -0.000000 0.000002 -0.000000 0.000000 -10.422601 2.991575 -5.935185 55.798821 83.550029 55.611598 0.000012 74.761038 -0.000016 -1.396729 0.085436 -7.000354 -0.000000 0.000000 0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000001 0.000001 -0.000000 -0.000000 0.000001 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -62.989289 -2.861108 1.532881 131.580794 -5.729808 -3.017211 71.248019 -8.204185 0.613784 -0.000002 -0.000033 0.000058 0.000000 0.000001 0.000000 -0.000004 -0.000033 0.000059 -0.000000 0.000004 0.000000 0.000003 0.000003 0.000131 -62.715364 1.885204 -2.511493 130.937991 -5.594108 -3.237659 73.817406 0.855902 -15.188708 0.000000 0.000030 -0.000054 -0.000002 0.000000 0.000002 -0.000000 0.000030 -0.000054 0.000000 0.000003 0.000000 -0.000003 0.000003 -0.000097 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 -26.706356 0.000001 7.623387 -0.000001 -0.000001 -5.939035 0.009214 0.434267 -4.402872 0.000246 0.175370 9.454289 -0.000001 -0.000002 11.392412 -0.000002 -0.000002 0.000003 0.000022 -179.999991 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -14.341461 -3.539163 6.205348 31.169111 -75.720269 -81.671946 -0.000020 -75.195916 -0.000020 -0.829548 -0.030066 4.151231 -0.000000 -0.000001 0.000001 -0.000000 0.000001 0.000001 0.000001 -0.000000 0.000000 -0.000000 0.000001 -0.000000 -10.543797 3.319177 -6.166950 73.950827 84.825806 38.208379 0.000015 77.091177 -0.000026 -1.474475 0.095251 -7.392054 -0.000001 0.000002 -0.000000 0.000001 0.000001 -0.000000 -0.000000 -0.000002 0.000000 0.000001 -0.000000 0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 -64.970276 -2.968146 1.524807 135.396998 -5.910352 -2.865249 73.495062 -8.411162 0.795734 -0.000004 -0.000029 0.000052 0.000001 0.000001 -0.000000 -0.000000 -0.000030 0.000053 -0.000000 0.000004 0.000000 -0.000001 0.000002 0.000133 -64.686570 1.982281 -2.548324 134.739374 -5.780807 -3.094611 76.104966 0.565555 -15.605775 0.000002 0.000024 -0.000041 0.000004 0.000000 0.000000 0.000005 0.000025 -0.000044 -0.000000 0.000001 0.000000 -0.000007 0.000002 -0.000097 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 -27.523220 0.000001 7.847526 -0.000001 -0.000001 -6.113676 0.008803 0.447039 -4.532354 0.000048 0.180525 9.446336 -0.000002 -0.000002 11.399954 -0.000002 -0.000002 -0.000001 0.000022 -179.999991 -0.000003 -0.000000 -0.000000 -0.000003 -0.000000 -0.000000 -0.000003 -0.000000 -0.000000 0.000000 0.000000 0.000000 -14.741911 -3.925612 6.339431 35.134234 -77.712636 -78.267718 -0.000027 -77.329926 -0.000026 -0.879710 -0.033816 4.402709 0.000001 -0.000002 0.000000 -0.000001 -0.000000 -0.000000 0.000000 0.000001 0.000000 0.000000 0.000000 -0.000001 -10.655962 3.629812 -6.385934 97.676896 85.351683 15.182932 0.000019 79.274727 -0.000031 -1.548051 0.105039 -7.763042 -0.000000 0.000002 -0.000001 -0.000001 -0.000002 0.000000 0.000000 0.000001 0.000000 0.000002 0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -66.832718 -3.068456 1.513843 138.891610 -6.066459 -2.715794 75.604300 -8.598736 0.973820 -0.000004 -0.000021 0.000042 0.000001 0.000001 0.000000 -0.000004 -0.000023 0.000042 0.000001 0.000003 -0.000000 -0.000001 0.000003 0.000133 -66.539805 2.074649 -2.579886 138.221568 -5.943140 -2.952936 78.246347 0.278614 -15.985742 0.000010 0.000025 -0.000041 0.000002 0.000000 0.000000 0.000012 0.000024 -0.000044 -0.000000 0.000004 0.000000 0.000002 0.000003 -0.000096 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 -28.290663 0.000001 8.058081 -0.000001 -0.000001 -6.277740 0.008382 0.459036 -4.653997 -0.000146 0.185367 9.438865 -0.000001 -0.000002 11.406241 -0.000002 -0.000002 0.000001 0.000022 -179.999991 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000000 0.000000 -0.000000 -15.117138 -4.289203 6.462874 40.041946 -79.500185 -73.878372 -0.000028 -79.313885 -0.000030 -0.926813 -0.037539 4.638938 0.000000 -0.000004 -0.000000 0.000000 0.000001 0.000001 -0.000000 0.000001 0.000000 -0.000001 0.000001 -0.000001 -10.758981 3.921859 -6.591148 120.723375 85.063367 -7.212985 0.000020 81.303614 -0.000034 -1.617093 0.114665 -8.111467 -0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000001 0.000001 -0.000000 -0.000001 0.000001 -0.000000 -68.568966 -3.161597 1.500685 142.067006 -6.200161 -2.571934 77.567405 -8.767251 1.145685 -0.000001 -0.000025 0.000046 -0.000001 -0.000000 -0.000000 -0.000002 -0.000026 0.000045 0.000001 0.000003 -0.000000 0.000000 0.000003 0.000132 -68.267454 2.161634 -2.606600 141.386692 -6.082961 -2.815788 80.234184 -0.000559 -16.328926 0.000017 0.000019 -0.000031 -0.000000 0.000000 -0.000001 0.000017 0.000019 -0.000035 -0.000000 0.000003 0.000000 -0.000001 0.000002 -0.000096 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 -29.004560 0.000001 8.253928 -0.000001 -0.000002 -6.430347 0.007959 0.470195 -4.767150 -0.000338 0.189871 9.431916 -0.000001 -0.000002 11.411393 -0.000002 -0.000002 0.000003 0.000022 -179.999991 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -15.465334 -4.627847 6.575510 46.151021 -81.059449 -68.244040 -0.000035 -81.140455 -0.000038 -0.970612 -0.041176 4.858648 0.000000 -0.000000 -0.000000 0.000000 0.000002 0.000000 0.000000 0.000001 -0.000000 0.000001 0.000001 -0.000002 -10.852751 4.193685 -6.781606 137.643543 84.225808 -23.534805 0.000027 83.170592 -0.000045 -1.681247 0.123990 -8.435469 -0.000001 0.000004 0.000000 -0.000001 -0.000004 0.000000 0.000000 0.000000 0.000001 0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -70.171711 -3.247177 1.486036 144.927298 -6.313612 -2.436164 79.376640 -8.917227 1.309123 -0.000007 -0.000021 0.000036 0.000000 0.000000 -0.000000 -0.000008 -0.000023 0.000038 0.000000 0.000004 0.000000 0.000004 0.000003 0.000133 -69.862283 2.242609 -2.628924 144.238610 -6.202287 -2.685744 82.061704 -0.267785 -16.635984 0.000014 0.000017 -0.000026 -0.000001 0.000000 0.000001 0.000015 0.000015 -0.000028 -0.000001 0.000003 0.000000 0.000001 0.000002 -0.000097 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 -29.660795 0.000001 8.433934 -0.000001 -0.000002 -6.570620 0.007545 0.480450 -4.871159 -0.000521 0.194011 9.425530 -0.000001 -0.000002 11.415527 -0.000002 -0.000002 0.000001 0.000022 -179.999991 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -15.784688 -4.939472 6.677183 53.705969 -82.363953 -61.119381 -0.000050 -82.802759 -0.000050 -1.010853 -0.044672 5.060583 0.000000 -0.000001 0.000000 -0.000000 -0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 0.000000 -0.000002 -10.937173 4.443681 -6.956321 148.730866 83.155559 -34.077719 0.000046 84.868802 -0.000068 -1.740153 0.132884 -8.733206 -0.000001 0.000003 -0.000000 -0.000001 -0.000002 0.000000 0.000000 -0.000000 -0.000000 -0.000001 -0.000000 0.000001 0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 -0.000000 0.000001 0.000000 0.000000 0.000001 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -71.634081 -3.324872 1.470583 147.477608 -6.408946 -2.310448 81.024786 -9.049262 1.462082 -0.000009 -0.000019 0.000033 0.000000 0.000001 -0.000000 -0.000010 -0.000021 0.000031 -0.000001 0.000003 0.000000 -0.000002 0.000002 0.000134 -71.317413 2.317005 -2.647318 146.782145 -6.303134 -2.564859 83.722731 -0.519231 -16.907739 0.000024 0.000011 -0.000019 -0.000001 0.000000 0.000001 0.000024 0.000010 -0.000021 -0.000002 0.000003 0.000000 0.000001 0.000002 -0.000096 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 -30.255251 0.000001 8.596983 -0.000001 -0.000002 -6.697679 0.007147 0.489738 -4.965372 -0.000694 0.197760 9.419744 -0.000002 -0.000001 11.418741 -0.000002 -0.000002 0.000001 0.000022 -179.999991 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000000 -0.000000 0.000000 -16.073397 -5.222026 6.767751 62.798398 -83.387772 -52.411665 -0.000058 -84.294370 -0.000062 -1.047291 -0.047958 5.243484 0.000000 0.000002 -0.000001 0.000000 -0.000000 -0.000000 -0.000000 0.000001 -0.000000 -0.000001 -0.000000 -0.000001 -11.012153 4.670228 -7.114305 155.991289 82.044833 -40.849657 0.000062 86.391935 -0.000101 -1.793461 0.141204 -9.002827 -0.000001 0.000001 0.000000 -0.000002 -0.000000 0.000000 -0.000000 -0.000000 -0.000000 -0.000001 -0.000000 0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 0.000000 0.000001 -0.000001 0.000000 0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000 -0.000001 0.000000 -72.949453 -3.394391 1.454992 149.723238 -6.488199 -2.196320 82.504949 -9.164040 1.602646 -0.000006 -0.000017 0.000033 0.000001 0.000000 -0.000001 -0.000006 -0.000018 0.000032 0.000000 0.000003 0.000000 0.000002 0.000002 0.000132 -72.626303 2.384301 -2.662243 149.022338 -6.387443 -2.454763 85.211405 -0.751357 -17.145185 0.000021 0.000009 -0.000012 0.000000 0.000000 0.000001 0.000022 0.000007 -0.000013 -0.000002 0.000002 0.000000 -0.000001 0.000003 -0.000096 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000
|
||||
0.000000 -30.783815 0.000001 8.741938 -0.000001 -0.000002 -6.810647 0.006777 0.497996 -5.049142 -0.000855 0.201094 9.414597 -0.000001 -0.000002 11.421167 -0.000002 -0.000002 0.000002 0.000022 -179.999991 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -16.329632 -5.473437 6.847046 73.143178 -84.115678 -42.404994 -0.000070 -85.608997 -0.000067 -1.079677 -0.050975 5.406087 0.000000 -0.000002 -0.000000 0.000000 -0.000001 -0.000000 0.000000 0.000000 0.000000 -0.000002 0.000001 -0.000001 -11.077584 4.871724 -7.254549 160.896526 80.991564 -45.324142 0.000093 87.733780 -0.000129 -1.840809 0.148807 -9.242487 -0.000000 0.000002 -0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000001 0.000001 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000001 -0.000002 0.000000 0.000001 -0.000002 0.000000 -74.111323 -3.455483 1.439894 151.668940 -6.553213 -2.094980 83.810519 -9.262219 1.729072 -0.000004 -0.000014 0.000028 -0.000001 0.000000 -0.000000 -0.000003 -0.000014 0.000029 0.000000 0.000003 0.000000 -0.000005 0.000003 0.000132 -73.782470 2.444013 -2.674145 150.963805 -6.456984 -2.356734 86.522084 -0.960866 -17.349312 0.000032 0.000004 -0.000005 -0.000000 -0.000000 0.000001 0.000031 0.000003 -0.000005 -0.000002 0.000001 0.000000 0.000001 0.000002 -0.000096 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 -31.242353 0.000001 8.867684 -0.000001 -0.000002 -6.908644 0.006442 0.505159 -5.121810 -0.000995 0.203986 9.410134 -0.000001 -0.000002 11.422906 -0.000002 -0.000002 -0.000000 0.000022 -179.999991 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -16.551570 -5.691685 6.914899 83.921325 -84.558746 -31.917102 -0.000100 -86.740445 -0.000102 -1.107763 -0.053666 5.547131 -0.000001 -0.000004 0.000000 -0.000001 -0.000000 0.000000 -0.000000 0.000001 -0.000000 0.000001 0.000000 -0.000000 -11.133367 5.046568 -7.376054 164.305173 80.047194 -48.361971 0.000234 88.888191 -0.000266 -1.881851 0.155562 -9.450353 -0.000001 0.000001 -0.000000 0.000000 0.000001 0.000001 0.000001 -0.000002 0.000001 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000000 -75.113325 -3.507909 1.425879 153.318527 -6.605623 -2.007368 84.934946 -9.344440 1.839728 -0.000008 -0.000012 0.000022 0.000000 -0.000000 0.000000 -0.000008 -0.000014 0.000022 -0.000001 0.000004 0.000000 0.000001 0.000002 0.000132 -74.779534 2.495689 -2.683437 152.610113 -6.513332 -2.271795 87.649099 -1.144821 -17.521044 0.000022 0.000005 -0.000002 0.000000 -0.000000 -0.000000 0.000025 0.000004 -0.000005 -0.000001 0.000002 0.000000 0.000001 0.000003 -0.000095 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 -31.626757 0.000001 8.973092 -0.000001 -0.000002 -6.990795 0.006152 0.511163 -5.182727 -0.001116 0.206409 9.406394 -0.000002 -0.000002 11.424078 -0.000002 -0.000002 0.000002 0.000022 -179.999991 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 0.000000 0.000000 -0.000000 -16.737385 -5.874740 6.971113 93.973233 -84.764874 -22.106433 -0.000155 -87.682431 -0.000122 -1.131299 -0.055978 5.665358 0.000000 0.000001 0.000000 0.000000 -0.000001 -0.000000 -0.000000 0.000001 0.000001 0.000001 0.000000 0.000001 -11.179380 5.193167 -7.477803 166.705315 79.241437 -50.453255 0.001724 89.848967 -0.002293 -1.916228 0.161337 -9.624560 -0.000001 -0.000002 0.000000 0.000001 -0.000001 0.000002 -0.000000 -0.000000 -0.000001 0.000001 -0.000000 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 0.000001 -0.000000 -0.000000 0.000001 -0.000000 -0.000000 -75.948965 -3.551438 1.413489 154.674306 -6.646799 -1.934250 85.871604 -9.411272 1.933123 -0.000010 -0.000015 0.000026 -0.000000 0.000001 0.000000 -0.000010 -0.000015 0.000028 -0.000001 0.000003 0.000000 0.000001 0.000003 0.000131 -75.611068 2.538904 -2.690498 153.963420 -6.557810 -2.200778 88.586659 -1.300455 -17.661201 0.000022 -0.000000 0.000004 0.000000 -0.000000 0.000000 0.000025 -0.000001 0.000003 -0.000003 0.000000 0.000000 0.000001 0.000002 -0.000096 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000
|
||||
0.000000 -31.932913 0.000001 9.057035 -0.000001 -0.000002 -7.056218 0.005915 0.515944 -5.231246 -0.001214 0.208340 9.403415 -0.000001 -0.000002 11.424781 -0.000001 -0.000002 0.000004 0.000022 -179.999991 0.000002 0.000000 -0.000000 0.000002 0.000000 -0.000000 0.000002 0.000000 -0.000000 0.000000 0.000000 -0.000000 -16.885201 -6.020578 7.015441 102.292765 -84.810165 -13.977501 -0.000231 -88.428301 -0.000204 -1.150041 -0.057852 5.759514 0.000000 -0.000007 -0.000000 -0.000000 -0.000002 0.000000 -0.000000 -0.000002 -0.000000 0.000000 0.000001 -0.000001 -11.215493 5.309929 -7.558771 168.378657 78.593593 -51.881885 -0.000407 90.609522 0.000591 -1.943593 0.166012 -9.763287 -0.000000 0.000004 -0.000001 -0.000000 -0.000000 0.000000 -0.000000 -0.000001 -0.000000 -0.000001 0.000000 0.000000 -0.000000 0.000001 -0.000000 0.000000 0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000001 -0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 -76.611575 -3.585820 1.403215 155.736591 -6.677850 -1.876290 86.613622 -9.463125 2.007888 -0.000012 -0.000012 0.000022 -0.000000 -0.000000 -0.000001 -0.000014 -0.000012 0.000023 -0.000000 0.000004 0.000000 0.000002 0.000003 0.000132 -76.270455 2.573240 -2.695652 155.023902 -6.591491 -2.144403 89.328561 -1.425261 -17.770329 0.000025 0.000001 0.000002 0.000000 0.000000 0.000001 0.000026 0.000002 0.000001 -0.000003 -0.000002 0.000000 0.000002 0.000002 -0.000097 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000
|
||||
0.000000 -32.156685 0.000001 9.118386 -0.000001 -0.000002 -7.104039 0.005739 0.519438 -5.266707 -0.001288 0.209751 9.401234 -0.000002 -0.000002 11.425157 -0.000002 -0.000002 0.000000 0.000022 -179.999991 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000002 0.000000 0.000000 -0.000001 0.000000 0.000000 -16.993154 -6.127212 7.047602 108.344525 -84.775516 -8.064533 -0.000360 -88.971055 -0.000289 -1.163736 -0.059244 5.828324 -0.000001 -0.000002 0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000002 0.000000 0.000001 0.000001 -0.000001 -11.241535 5.395279 -7.617918 169.489259 78.117652 -52.814400 -0.000140 91.162829 0.000290 -1.963583 0.169470 -9.864663 0.000000 0.000003 -0.000000 0.000001 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000002 0.000000 -0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -77.094278 -3.610790 1.395479 156.503348 -6.699596 -1.834100 87.153740 -9.500252 2.062724 -0.000008 -0.000010 0.000019 -0.000000 -0.000000 0.000000 -0.000008 -0.000010 0.000020 -0.000001 0.000003 0.000000 -0.000002 0.000003 0.000131 -76.750795 2.598290 -2.699155 155.789430 -6.615158 -2.103325 89.868146 -1.516946 -17.848688 0.000031 0.000003 0.000001 -0.000000 -0.000000 0.000000 0.000032 0.000001 -0.000001 -0.000002 0.000003 0.000000 0.000002 0.000003 -0.000096 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000
|
||||
0.000000 -32.293980 0.000001 9.156029 -0.000001 -0.000002 -7.133373 0.005629 0.521582 -5.288462 -0.001333 0.210616 9.399898 -0.000001 -0.000002 11.425295 -0.000002 -0.000002 0.000001 0.000022 -179.999991 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000000 0.000000 0.000000 -17.059338 -6.192640 7.067230 111.981546 -84.726707 -4.512072 -0.000490 -89.302989 -0.000428 -1.172136 -0.060104 5.870544 -0.000000 -0.000002 0.000001 0.000000 0.000000 0.000000 -0.000000 -0.000002 0.000000 -0.000001 0.000000 -0.000000 -11.257331 5.447641 -7.654193 170.128934 77.824910 -53.345157 -0.000141 91.501155 0.000209 -1.975843 0.171606 -9.926853 0.000001 0.000000 -0.000000 -0.000000 -0.000002 0.000000 0.000002 -0.000002 0.000001 0.000000 -0.000001 0.000000 -0.000000 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 -77.389732 -3.626039 1.390641 156.969727 -6.712548 -1.808296 87.484164 -9.522718 2.096445 -0.000007 -0.000010 0.000015 0.000000 0.000000 -0.000001 -0.000009 -0.000012 0.000015 -0.000001 0.000002 -0.000000 -0.000000 0.000002 0.000131 -77.044793 2.613637 -2.701196 156.255085 -6.629283 -2.078183 90.198085 -1.573359 -17.896190 0.000028 -0.000003 0.000003 -0.000000 -0.000000 -0.000000 0.000030 -0.000003 0.000001 -0.000003 0.000003 0.000000 0.000003 0.000002 -0.000096 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000 -0.000000
|
||||
0.000000 -32.340652 0.000001 9.168825 -0.000001 -0.000002 -7.143349 0.005590 0.522311 -5.295858 -0.001348 0.210911 9.399442 -0.000001 -0.000002 11.425315 -0.000002 -0.000002 0.000002 0.000022 -179.999991 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 -0.000000 0.000000 -0.000000 -17.081842 -6.214888 7.073883 113.198979 -84.705479 -3.323484 -0.001207 -89.415673 -0.001070 -1.174991 -0.060397 5.884893 0.000001 -0.000001 0.000000 0.000000 -0.000001 0.000000 0.000000 -0.000001 -0.000000 0.000000 0.000000 -0.000001 -11.262648 5.465438 -7.666524 170.339604 77.725299 -53.518801 0.000058 91.616018 -0.000018 -1.980011 0.172340 -9.947997 -0.000000 -0.000000 -0.000000 -0.000000 -0.000001 0.000000 -0.000000 -0.000001 0.000001 -0.000001 -0.000000 0.000000 0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 -0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 -0.000001 -0.000000 0.000000 -0.000001 -0.000000 -77.490067 -3.631213 1.388978 157.127600 -6.716883 -1.799539 87.596356 -9.530300 2.107924 -0.000010 -0.000012 0.000023 0.000000 0.000000 0.000000 -0.000011 -0.000012 0.000022 -0.000001 0.000002 0.000000 -0.000004 0.000002 0.000132 -77.144644 2.618851 -2.701872 156.412725 -6.634017 -2.069647 90.310052 -1.592574 -17.912238 0.000035 -0.000005 0.000012 0.000000 0.000000 0.000000 0.000035 -0.000005 0.000012 -0.000002 0.000002 0.000000 0.000000 0.000002 -0.000095 -0.000001 -0.000000 -0.000000 -0.000001 -0.000000 -0.000000
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user