mirror of
https://github.com/vector-im/riotX-android
synced 2025-10-06 00:02:48 +02:00
Compare commits
3675 Commits
tech/upgra
...
v1.6.28
Author | SHA1 | Date | |
---|---|---|---|
|
069aa9d2db | ||
|
6718ed8875 | ||
|
5c3f221373 | ||
|
18c9473642 | ||
|
624a07bcc9 | ||
|
f26a0b6615 | ||
|
d97f69b551 | ||
|
002f36606a | ||
|
93d6f32679 | ||
|
e42075a338 | ||
|
6278f59b57 | ||
|
0e4c39b26e | ||
|
ded1fddca3 | ||
|
5dfbc3fce1 | ||
|
b9b403d075 | ||
|
d2c77a36ec | ||
|
fefdb785a2 | ||
|
73c1dc1ca1 | ||
|
05a7194740 | ||
|
3330029b6c | ||
|
b6f863f6bb | ||
|
3b7098f61e | ||
|
ae696a5134 | ||
|
deacb589ef | ||
|
04b19ba94c | ||
|
9196002f7f | ||
|
037958faa7 | ||
|
38a9fbd392 | ||
|
c3fa399b60 | ||
|
a0d1b2d4cd | ||
|
0c3686c8ef | ||
|
505168f2b3 | ||
|
324ea9502e | ||
|
9dfc1f1953 | ||
|
2217631c24 | ||
|
6dddaf25e6 | ||
|
edfd446b36 | ||
|
f1864764a0 | ||
|
a61bbc0248 | ||
|
e8f956612c | ||
|
aa2655616c | ||
|
35ca771231 | ||
|
86c42495da | ||
|
83f3a726cd | ||
|
f3dc24285a | ||
|
abe9ee44cc | ||
|
00c1aaa7e8 | ||
|
f37b3f7316 | ||
|
f39bdb50ca | ||
|
e64fbfa7b8 | ||
|
87daab73e2 | ||
|
25bacc6b04 | ||
|
2a979d22c8 | ||
|
d9fcc76edd | ||
|
ff3d5d6f47 | ||
|
08ceb76e14 | ||
|
8c18eceab7 | ||
|
a4fdf9297a | ||
|
331a61b65e | ||
|
e4bc48e922 | ||
|
3475f77346 | ||
|
a6665ec0fa | ||
|
770b5986f7 | ||
|
11704c4563 | ||
|
91f45937b6 | ||
|
0c4a229973 | ||
|
9b59f694f2 | ||
|
8529813dae | ||
|
c8f86aae2d | ||
|
de6b7c53e5 | ||
|
4f9bdd88e2 | ||
|
132ea23250 | ||
|
8641c82195 | ||
|
29715e44b6 | ||
|
6b5a284935 | ||
|
367fcfa8f9 | ||
|
591ec1052c | ||
|
2c75844f55 | ||
|
1363be5ea4 | ||
|
ae494bd8f2 | ||
|
dcafdab4f3 | ||
|
d5c7c9166e | ||
|
970ff7a366 | ||
|
d9cd23ae18 | ||
|
c1efaf248f | ||
|
93962d035e | ||
|
ea170fc2af | ||
|
7051c0c46e | ||
|
a608bff03b | ||
|
ebfac823c5 | ||
|
fbef34f3b2 | ||
|
ab4291f093 | ||
|
f189fa7c08 | ||
|
36e8b7b25a | ||
|
5537bf8493 | ||
|
2cfc230255 | ||
|
12adddb637 | ||
|
6e2a0cfa91 | ||
|
066545a4b3 | ||
|
e0cbd6192f | ||
|
ac94bff81e | ||
|
b9ba0392b2 | ||
|
6d7e7446ae | ||
|
90aed72c72 | ||
|
5dd58547cc | ||
|
3df42faf32 | ||
|
27b4a0851e | ||
|
bb46dcb262 | ||
|
78dbc68ac8 | ||
|
598773a32e | ||
|
6cbe0e0dc7 | ||
|
350fa20518 | ||
|
bbf8bf30f1 | ||
|
4b8f376ebe | ||
|
0f06dff618 | ||
|
d3b1e76500 | ||
|
bbcd48b2ad | ||
|
11f6987a98 | ||
|
686ca0512f | ||
|
f8b2bc0530 | ||
|
6902ba711b | ||
|
05be9d0716 | ||
|
79f19fdaef | ||
|
c9aaf0228b | ||
|
50d4e565dc | ||
|
768c65d057 | ||
|
d7f6b702f4 | ||
|
00e6cf103b | ||
|
5fed1a73d6 | ||
|
621518913c | ||
|
bbb411eb49 | ||
|
dbc78dba3a | ||
|
aff6c011e8 | ||
|
53387e6617 | ||
|
77b4503916 | ||
|
21e751e50f | ||
|
b50132a337 | ||
|
82d64be6b2 | ||
|
dd98218869 | ||
|
1e330ceb4e | ||
|
82b8f57550 | ||
|
e30a3772c5 | ||
|
7ce6c3ce0a | ||
|
74ed438dd8 | ||
|
72ed4e7252 | ||
|
ba9d78e0d2 | ||
|
5c333aeafc | ||
|
c24014e596 | ||
|
08decf47c6 | ||
|
b6c5626b02 | ||
|
115b15d126 | ||
|
5ef89008c6 | ||
|
52d06bd7cf | ||
|
c947f90adb | ||
|
9ca1ffdea0 | ||
|
a568152490 | ||
|
9a4602bfd4 | ||
|
cfedc00c38 | ||
|
af2cefebce | ||
|
ac01523066 | ||
|
1ac5090581 | ||
|
e89bec4f27 | ||
|
76898f083c | ||
|
19de60d190 | ||
|
f7195a878a | ||
|
9efb692e32 | ||
|
0ed68c5274 | ||
|
04a49e9195 | ||
|
0f14a2847d | ||
|
036d6c3783 | ||
|
7f46d962e3 | ||
|
da94bb8ffa | ||
|
4aab1ad8f7 | ||
|
f431daa195 | ||
|
4762b80859 | ||
|
2ed0b4f95b | ||
|
f726d16ce0 | ||
|
51c20b4572 | ||
|
9dcb7c890f | ||
|
14a52d4a05 | ||
|
146c510c17 | ||
|
b303da238a | ||
|
8056285776 | ||
|
355621b0c7 | ||
|
fc68f1cb66 | ||
|
637a2271ef | ||
|
15c86f3fe3 | ||
|
5908cd54f0 | ||
|
6a8e978204 | ||
|
9585262a53 | ||
|
797a4f93b2 | ||
|
9d75e4af1b | ||
|
3293785cdc | ||
|
eaec6dd8b4 | ||
|
af072fa622 | ||
|
36eb12deeb | ||
|
5be3b00805 | ||
|
b9b4f46e6b | ||
|
8caa5c94a7 | ||
|
5feee726f5 | ||
|
e2d1b03d1d | ||
|
d69969ddb8 | ||
|
295f4c779a | ||
|
9ed9a0470e | ||
|
1a42519ef4 | ||
|
9274b505d8 | ||
|
940458f7f9 | ||
|
f93a575804 | ||
|
743bb46976 | ||
|
bcd0f64512 | ||
|
d962f4aa39 | ||
|
4558e4b2ff | ||
|
ac268ca898 | ||
|
76616b1a28 | ||
|
91d96681eb | ||
|
0baf670fea | ||
|
3ab588fce1 | ||
|
fb10bd530d | ||
|
21f5adf5cd | ||
|
acf56cfd92 | ||
|
9057a80d80 | ||
|
cb2170340c | ||
|
00b0164aa2 | ||
|
b341a1a426 | ||
|
e01e24e1a6 | ||
|
498e867e83 | ||
|
adcafd5152 | ||
|
91bfd7ac86 | ||
|
6959f98d45 | ||
|
ee7a5827a9 | ||
|
e1ccad5270 | ||
|
9c53a09924 | ||
|
9bb27f69a2 | ||
|
04c3ba9a6a | ||
|
7bdadaa4b5 | ||
|
fca16b6774 | ||
|
d0d05d543e | ||
|
91897d6bb6 | ||
|
95e1bcbf64 | ||
|
59f3c6e8da | ||
|
497f422b2b | ||
|
669a80e8e4 | ||
|
fd1a9498ca | ||
|
d10e83bb48 | ||
|
fa0860ac0f | ||
|
1e32ebde41 | ||
|
9e27705b6e | ||
|
10e79849a5 | ||
|
224243aca5 | ||
|
96e05ba5c3 | ||
|
cf464af6ef | ||
|
b3bd361a08 | ||
|
5203dd86b4 | ||
|
6671a3f925 | ||
|
19500a8cd9 | ||
|
25442f15ed | ||
|
da8c892f7a | ||
|
7ad3ccfc60 | ||
|
84b8d410d5 | ||
|
99bc8065ae | ||
|
33d2ffe8d0 | ||
|
198b03aea3 | ||
|
b0158f1a93 | ||
|
a777d06d09 | ||
|
12f4488f75 | ||
|
46df56553c | ||
|
78e02b9e3f | ||
|
fc009d1f83 | ||
|
b0755cac0f | ||
|
7a64dad91f | ||
|
f2c970f1b4 | ||
|
6942a502b3 | ||
|
80904ee847 | ||
|
06b9b80c74 | ||
|
904a066ab0 | ||
|
dfb0fc31e1 | ||
|
207ab2802a | ||
|
6e7b095254 | ||
|
026318304f | ||
|
3f67bbf4e0 | ||
|
4a261a88c5 | ||
|
d93be7d6cc | ||
|
712b846f9f | ||
|
f3154ff4bd | ||
|
b5758c5335 | ||
|
0292749cc0 | ||
|
a1dd3ba1b5 | ||
|
d133e96f78 | ||
|
4d27c848e2 | ||
|
ae0b001cd7 | ||
|
f8345ab9ef | ||
|
59f78e8d80 | ||
|
addd7dfd64 | ||
|
097d3923aa | ||
|
ad9f9fb193 | ||
|
90aafbc6bd | ||
|
4aaf22832f | ||
|
74f515894f | ||
|
b116ce3ee1 | ||
|
f973365f69 | ||
|
cafb43bbd3 | ||
|
b5dbb91c9c | ||
|
327fac1569 | ||
|
64f9fadf9a | ||
|
15a252b525 | ||
|
ef2f403f68 | ||
|
c3f983affe | ||
|
e785ccce6e | ||
|
2158aa0913 | ||
|
3de675d3f2 | ||
|
47bb23a654 | ||
|
1a7a0aa771 | ||
|
4c76e0ab6e | ||
|
7e41d731f6 | ||
|
b955f53af5 | ||
|
831cba45ee | ||
|
2de84e794b | ||
|
0b8b11e7cd | ||
|
28fa4ab784 | ||
|
a363e392b4 | ||
|
09c68f3421 | ||
|
3ecfa8fda9 | ||
|
72575a2493 | ||
|
a227245a62 | ||
|
e3a878155b | ||
|
10d89f27fe | ||
|
018f494337 | ||
|
6b01fc7561 | ||
|
22f69ec6b0 | ||
|
204244bac4 | ||
|
ccd6eed45a | ||
|
08c124e13b | ||
|
2395d72c93 | ||
|
0bf3350436 | ||
|
5ac70dac2b | ||
|
7ee203c1bb | ||
|
056eebadc8 | ||
|
07c8530e61 | ||
|
4acbe4e582 | ||
|
f9a84512ad | ||
|
085bf8230e | ||
|
0e94a499c9 | ||
|
2362fcde16 | ||
|
9b431c216f | ||
|
d100b62e54 | ||
|
69bb98f29d | ||
|
443db6ce8e | ||
|
a8a9c61a69 | ||
|
f5b5e931e8 | ||
|
d96c4a8450 | ||
|
2c67eacec0 | ||
|
305372cafc | ||
|
5d1fe25627 | ||
|
4c15ae5907 | ||
|
53c2b4f298 | ||
|
9dcbf0a7a5 | ||
|
68e6cd3426 | ||
|
ecba4d37ef | ||
|
a3426fdc7b | ||
|
c09f426f12 | ||
|
6f846bc34e | ||
|
33d09ecf40 | ||
|
bb40e7ae0f | ||
|
444f82ad77 | ||
|
55086c6df3 | ||
|
00ee185efd | ||
|
c455f5cc86 | ||
|
4dd71eec70 | ||
|
8dd625e6f5 | ||
|
bf2a3bfb80 | ||
|
4a35688f0b | ||
|
51c3c1e09a | ||
|
f4c4f3578c | ||
|
180a6c135b | ||
|
451ca9b12a | ||
|
e9927905c5 | ||
|
bd8092cc15 | ||
|
dbe33fca62 | ||
|
d2b30182a0 | ||
|
a1823b0f62 | ||
|
0a284bbeea | ||
|
817f7ffa0b | ||
|
5456cdcf75 | ||
|
6a6f8533ba | ||
|
8fda5ef68a | ||
|
8a7a91cb65 | ||
|
ff94fb8da8 | ||
|
ffac33ae0e | ||
|
ca7a95968c | ||
|
55d945b895 | ||
|
000fabcaa5 | ||
|
0f2ca7dbc8 | ||
|
5ccc486b7c | ||
|
9b4394bbe6 | ||
|
6cd9e6eedd | ||
|
09b1d17fc4 | ||
|
c2b46a1c1e | ||
|
479cb1a8f4 | ||
|
310cecf5cb | ||
|
f7095d8f6b | ||
|
ea9751ea8f | ||
|
b86b16917b | ||
|
9aaf29d4cf | ||
|
774ddc6cd3 | ||
|
5ce0801006 | ||
|
b14cb81ece | ||
|
99ec61e120 | ||
|
0f3ff2ed45 | ||
|
752c884eaa | ||
|
2bbb49bdd3 | ||
|
6d2d2a1d06 | ||
|
fbd8d5e26b | ||
|
237580c7f4 | ||
|
e337be2795 | ||
|
3e15c82534 | ||
|
699ccf1d16 | ||
|
0f3f2b164e | ||
|
393f3f3030 | ||
|
9ebc10f4c2 | ||
|
4d04b276ff | ||
|
6e1b346095 | ||
|
e3cfb3875e | ||
|
28eead74cb | ||
|
fcc5181a28 | ||
|
1f430a4015 | ||
|
72d2199f1a | ||
|
3fa3eb1129 | ||
|
def2a8a833 | ||
|
f559dcdd85 | ||
|
fda38e90e5 | ||
|
2382b890d6 | ||
|
d54e605909 | ||
|
d299ebc4f3 | ||
|
510c96367f | ||
|
964bc61f89 | ||
|
b23757c989 | ||
|
177862a1ae | ||
|
d48f63ad62 | ||
|
24c7131ab2 | ||
|
1155c43fe0 | ||
|
5cd78c02aa | ||
|
c0da558c96 | ||
|
8ca934cb4b | ||
|
1553a90029 | ||
|
23dd0f7b3c | ||
|
5d078c49bb | ||
|
ab82585fab | ||
|
4231b32cc2 | ||
|
1a883fdfa6 | ||
|
ee59171491 | ||
|
e10ccc0356 | ||
|
c28fe6d07f | ||
|
7c80cff836 | ||
|
0df8932dac | ||
|
d84752482c | ||
|
b65cf6dd3d | ||
|
4886deb6e8 | ||
|
89aa11334a | ||
|
b98213f95c | ||
|
737b18d9ec | ||
|
ab2a9a570f | ||
|
7e6c40b075 | ||
|
421799ef40 | ||
|
b4b11a5767 | ||
|
21d685f981 | ||
|
8ccb0420ca | ||
|
5ed72fd968 | ||
|
542e82d8bf | ||
|
983613749d | ||
|
79f27761af | ||
|
63602b4ec9 | ||
|
1347744a6b | ||
|
8f13467271 | ||
|
79462bcb90 | ||
|
61e9d58b2a | ||
|
c3b7f9cc8b | ||
|
bc5c31d8f7 | ||
|
45b8689aff | ||
|
0592682e49 | ||
|
4c20c48563 | ||
|
43368538b8 | ||
|
4631ddb8b8 | ||
|
dc0bb748f9 | ||
|
32cc2e46d3 | ||
|
31c6776149 | ||
|
41581c1d40 | ||
|
9433e9e44c | ||
|
96cc468d92 | ||
|
1dd73ad31e | ||
|
6416b69aaf | ||
|
0416d65f77 | ||
|
8682a75b0a | ||
|
c6d718a555 | ||
|
effdca1832 | ||
|
2831efd6e7 | ||
|
bd124e12c2 | ||
|
8f9695a9a8 | ||
|
53734255ec | ||
|
a5e5a38e8e | ||
|
b23616dd7e | ||
|
355d091c94 | ||
|
e1fae69b90 | ||
|
c4da76510e | ||
|
fb593cd8b4 | ||
|
c4347c8197 | ||
|
e0c51bd168 | ||
|
e340678349 | ||
|
872979c790 | ||
|
a47fd7fd6e | ||
|
7c135e3c62 | ||
|
175adee55e | ||
|
6224e823ad | ||
|
82fd16de55 | ||
|
4b4e535efb | ||
|
6ea0129bee | ||
|
c6bb054fd7 | ||
|
d4f8bc7292 | ||
|
5bfb0b4a92 | ||
|
5d181440c6 | ||
|
8b1bd7940d | ||
|
ff439546c5 | ||
|
343468717c | ||
|
d49f6bfbb6 | ||
|
20f7dbecc0 | ||
|
d75ca516fc | ||
|
1277f6fdd9 | ||
|
3611052386 | ||
|
96648bbd0e | ||
|
393c40e652 | ||
|
7dc8c436cf | ||
|
ec96f4e0ae | ||
|
e04bfe8981 | ||
|
a1140fd8fa | ||
|
a17c75a7da | ||
|
054af4d6a3 | ||
|
6a30a2ed32 | ||
|
423b9215c4 | ||
|
b392817738 | ||
|
cc355a8e14 | ||
|
4cd7c60032 | ||
|
a2b153daa8 | ||
|
213e2235b4 | ||
|
d418525748 | ||
|
79c8726362 | ||
|
a5df7649a3 | ||
|
34c75bd6c2 | ||
|
122018dd7b | ||
|
f356964b73 | ||
|
54a97f7aa2 | ||
|
0f3d22bc85 | ||
|
2997bca91b | ||
|
ebe8315a56 | ||
|
26df3d610f | ||
|
105289271e | ||
|
b9df6cfeca | ||
|
7bd5b08988 | ||
|
bf56aa89cd | ||
|
c7f97bbea7 | ||
|
56e7acf010 | ||
|
42696eb31d | ||
|
f632fbbda7 | ||
|
007251fa36 | ||
|
ee16ef06e9 | ||
|
a080826242 | ||
|
493093c2a7 | ||
|
ac79b2ee63 | ||
|
5c6e1d5378 | ||
|
b0a7da09db | ||
|
4c8ffbd169 | ||
|
924913165e | ||
|
e11c4bdaee | ||
|
e4c0abfffd | ||
|
e596196f99 | ||
|
12ea60bfb5 | ||
|
7a2520b03c | ||
|
60d4221016 | ||
|
2ada4c8491 | ||
|
320aae1430 | ||
|
b72039e735 | ||
|
c46b3148e4 | ||
|
0767265c32 | ||
|
e79200f6ce | ||
|
c01174a540 | ||
|
c5cfb1ac7b | ||
|
38a596912c | ||
|
9fbcc91a8f | ||
|
02fc486e6e | ||
|
026078db13 | ||
|
9e8e939631 | ||
|
534da564cd | ||
|
dff9b82185 | ||
|
25d1945cdc | ||
|
03966f1c13 | ||
|
e818f86896 | ||
|
d610f75f1b | ||
|
7242ad48c2 | ||
|
abccc7dd9f | ||
|
d5efc1eec3 | ||
|
6feee61f17 | ||
|
644587a98c | ||
|
fac8dd333a | ||
|
f3c6535011 | ||
|
09247d27f6 | ||
|
bb6a274d31 | ||
|
369c0584e3 | ||
|
431a1a6fb2 | ||
|
18ccc25575 | ||
|
7f8e73ee4d | ||
|
d145c3108d | ||
|
eb5dfc112c | ||
|
b6e3e875ac | ||
|
6d65a74f1d | ||
|
2458d6099c | ||
|
1c1c89fb86 | ||
|
3d8e9f72bf | ||
|
9652932095 | ||
|
9c6fbcd141 | ||
|
7e40b933c0 | ||
|
953c81a6f8 | ||
|
3c49755eb0 | ||
|
b105195af8 | ||
|
30eaed7875 | ||
|
4d5fefa105 | ||
|
5e4b8ed536 | ||
|
7be100a97f | ||
|
bb866601ef | ||
|
ed09226176 | ||
|
6452b5c2b4 | ||
|
882020fdba | ||
|
7e2b01b3fd | ||
|
778dab7bb7 | ||
|
8e0c503b45 | ||
|
0319b3b67a | ||
|
b66bcc0733 | ||
|
48a38eed41 | ||
|
db9101f7c0 | ||
|
c36b3c24c2 | ||
|
5987ca9c48 | ||
|
fb077d5065 | ||
|
79e877befe | ||
|
79cb8912ed | ||
|
0e9a7c6f87 | ||
|
5525eb8461 | ||
|
5625065e55 | ||
|
9b0307f0ec | ||
|
af96d65c3e | ||
|
4335bed0db | ||
|
bb9d1fc8d8 | ||
|
f6ca7e5d0b | ||
|
552b143f8c | ||
|
f46a9d6cc8 | ||
|
b27dc02cfd | ||
|
6ba03f82e4 | ||
|
baf36c8a66 | ||
|
a6fafb07da | ||
|
ff7f8ac248 | ||
|
0c1f190035 | ||
|
8d85d047b7 | ||
|
84158ece37 | ||
|
a37bdffd40 | ||
|
cbbcfb6680 | ||
|
63ef40f58b | ||
|
31d3b9d385 | ||
|
7755da881e | ||
|
f2934f7d2f | ||
|
fd5530a2f9 | ||
|
ee2fd9f123 | ||
|
7c58af735b | ||
|
b04b8f0a7f | ||
|
1a941149ab | ||
|
76297b5a35 | ||
|
98e09eedc3 | ||
|
3d7489c7c5 | ||
|
edf23bbb89 | ||
|
3179dc1400 | ||
|
d3391076b5 | ||
|
36ce42e36e | ||
|
f37d918ce6 | ||
|
b61b2b6f16 | ||
|
ec3e901a3d | ||
|
979324da84 | ||
|
d045cedb46 | ||
|
58a44ac668 | ||
|
e4c1913e01 | ||
|
6d11aa03e0 | ||
|
4e53d8462f | ||
|
7b246eb3a4 | ||
|
7073b1647c | ||
|
dd6410794c | ||
|
2c75f41072 | ||
|
ed6599ae0c | ||
|
454ba7bf7c | ||
|
b14338d2c4 | ||
|
83084f6481 | ||
|
4341cf8c9c | ||
|
8d8a5d3de2 | ||
|
26e2f4e967 | ||
|
531d9f2802 | ||
|
6112082d07 | ||
|
95070d3664 | ||
|
4debc49172 | ||
|
e3da983bb8 | ||
|
a2deafff80 | ||
|
be95678c97 | ||
|
3064d7a59d | ||
|
536aaa7a24 | ||
|
bbb8797303 | ||
|
f36019a0e9 | ||
|
8485e4860d | ||
|
cf2b79c9e3 | ||
|
6bbd56e73c | ||
|
8bfd5f7c54 | ||
|
17e9bd200b | ||
|
fd07835e45 | ||
|
57d224e8ba | ||
|
d26d28f770 | ||
|
3aa5f34ee7 | ||
|
8d95eb7b16 | ||
|
64a7de5326 | ||
|
7884b9dd5e | ||
|
efe00a09d7 | ||
|
d4c6a46e90 | ||
|
d4c141664b | ||
|
77a576784f | ||
|
491f52a3a3 | ||
|
5f68f98d3a | ||
|
cd101f871c | ||
|
e8922a5fa7 | ||
|
d12762bc3d | ||
|
e27916f85e | ||
|
973246819a | ||
|
25ecd599f3 | ||
|
747c81c687 | ||
|
86e7b2f872 | ||
|
1f1a0d5b8b | ||
|
f13a15495b | ||
|
2a5e233e2c | ||
|
6769bf1498 | ||
|
842aeb70e0 | ||
|
60940c01df | ||
|
ebc81e24af | ||
|
0b10a686b5 | ||
|
f01f538a40 | ||
|
268601aa3f | ||
|
52082a9def | ||
|
dcfccb8de4 | ||
|
c7d7cefb9f | ||
|
c682240055 | ||
|
9bce8713a5 | ||
|
849f9c4268 | ||
|
8b5114ff93 | ||
|
4fe4bfaff3 | ||
|
5154879fb1 | ||
|
0988e121a6 | ||
|
9e74afc9b1 | ||
|
ecd1057ce9 | ||
|
4fa634a283 | ||
|
7001f21330 | ||
|
d379cef0ba | ||
|
4d663262d1 | ||
|
59ddf1a107 | ||
|
a015eda72c | ||
|
87df8ab6f6 | ||
|
1bd2da5c99 | ||
|
a6b127cb20 | ||
|
df82eee736 | ||
|
dfbb3122e7 | ||
|
1e00da6e2f | ||
|
2709cb2973 | ||
|
0d70f6eb54 | ||
|
42eec4b557 | ||
|
6ee438d7d5 | ||
|
1dc77149eb | ||
|
0fe80965c6 | ||
|
1a652d5660 | ||
|
79d3e025d7 | ||
|
3b9daec869 | ||
|
f141a5d2a8 | ||
|
1e2a4d860d | ||
|
774a3732ce | ||
|
1b3be240b3 | ||
|
8c1cc44255 | ||
|
7dc007c385 | ||
|
3f2f3860e1 | ||
|
470557c59e | ||
|
445a7f85d9 | ||
|
47b9c6c192 | ||
|
ff548d2f98 | ||
|
f2c6e6f06b | ||
|
ec9d01ddca | ||
|
d31c741f9d | ||
|
ec9a066900 | ||
|
60da2c467c | ||
|
25a7bee32c | ||
|
f05d76460c | ||
|
708bd07cac | ||
|
52a06931f4 | ||
|
a889d8d678 | ||
|
246ad118e1 | ||
|
1f41c54a82 | ||
|
fe51ee3956 | ||
|
d65459cc59 | ||
|
dc8230e435 | ||
|
0838a10b65 | ||
|
28f0622234 | ||
|
a3be0286ee | ||
|
b2996f8ad7 | ||
|
b205144ace | ||
|
751bd27c9d | ||
|
c0a3510fc7 | ||
|
10fdf5cf18 | ||
|
eec9b28920 | ||
|
9abc6b1f84 | ||
|
e0ae3b61d0 | ||
|
428ebacb77 | ||
|
dd17ac0382 | ||
|
c9ab51e1b7 | ||
|
b93933d84d | ||
|
effcb193ea | ||
|
21a4032cea | ||
|
c01c995b56 | ||
|
0a6dbeb3fe | ||
|
bc23f82ade | ||
|
ca109f70a4 | ||
|
b5c224f3e0 | ||
|
e2c7833f93 | ||
|
6d5f59c67e | ||
|
e6bd57d88c | ||
|
81f7517560 | ||
|
1ceacdd194 | ||
|
52aa4bb0d8 | ||
|
a5d231c259 | ||
|
e6a18a2241 | ||
|
003a134f68 | ||
|
494e824a85 | ||
|
df97229b9c | ||
|
6e6478a949 | ||
|
de688aa93b | ||
|
1eee5c1de7 | ||
|
ce5d42d484 | ||
|
6379420401 | ||
|
9821487a8e | ||
|
2b29a57b9b | ||
|
87e5900dcd | ||
|
dc19380fbf | ||
|
880ed69f97 | ||
|
8941e6396c | ||
|
425441546e | ||
|
12395e9b04 | ||
|
8f6edba403 | ||
|
39a783196e | ||
|
92399aba07 | ||
|
83e2419c30 | ||
|
3216fa6146 | ||
|
eeb67e1934 | ||
|
23e7bdbae3 | ||
|
ad7934847c | ||
|
45be2749f6 | ||
|
754ea6a98d | ||
|
30906885ec | ||
|
5580f307be | ||
|
8885d14ee5 | ||
|
380a0b8de3 | ||
|
1bbd4b7e44 | ||
|
27bae30eac | ||
|
40fd9f2f7b | ||
|
10cde1f0a6 | ||
|
fd46487270 | ||
|
cd7bf12e16 | ||
|
95b63ccefb | ||
|
975ef3c06f | ||
|
e567b9c9cf | ||
|
9aeb3b7074 | ||
|
313d4f82f7 | ||
|
fd6a45a3ae | ||
|
f8138a7860 | ||
|
0dea54388c | ||
|
9776839b50 | ||
|
f48ed3679b | ||
|
d9a27b1514 | ||
|
9d19ca6ec2 | ||
|
657822891a | ||
|
c86b4f9e9f | ||
|
3fe71357dd | ||
|
14d691446a | ||
|
86a126b257 | ||
|
69b8e125e0 | ||
|
832b4680d2 | ||
|
b3e8a64ad5 | ||
|
37f62671f6 | ||
|
0c7fdae63a | ||
|
2ec4d1c98a | ||
|
9ce1034a5c | ||
|
2af1516ebd | ||
|
2a158996e6 | ||
|
180a2eec60 | ||
|
13596594a4 | ||
|
12a7506b57 | ||
|
23f0f6ada3 | ||
|
6ac5254ff3 | ||
|
d98ba3c08e | ||
|
70744b2dad | ||
|
e76063126b | ||
|
66f6cfcc6c | ||
|
ae52d4cd3c | ||
|
8433e222ad | ||
|
2a5df54ae4 | ||
|
8eccae44e5 | ||
|
841028774e | ||
|
c08b99a4f1 | ||
|
6fd589440d | ||
|
eef01ad8f9 | ||
|
99e171dbee | ||
|
2bbd5ee7d9 | ||
|
c3752f529a | ||
|
c1e77c6dc9 | ||
|
1ef2de0356 | ||
|
87f2a69fb1 | ||
|
fedbfe4931 | ||
|
85d0837f3b | ||
|
1b43087eb3 | ||
|
dab799e3cb | ||
|
0573915a0a | ||
|
1ab2bb9bf8 | ||
|
0c9ebfdab6 | ||
|
9a1f5fd1a0 | ||
|
bbcea97120 | ||
|
6fcd582f2d | ||
|
e4e17d865b | ||
|
0a4bdceff8 | ||
|
05ce2cab27 | ||
|
7080ee1c26 | ||
|
cf6de09483 | ||
|
0c7dcc767d | ||
|
2b4b5f05eb | ||
|
12bf1ea2eb | ||
|
7b8cf5d917 | ||
|
21200266e2 | ||
|
f5f4d4a326 | ||
|
637b1483cc | ||
|
042f144afe | ||
|
8cd51ea803 | ||
|
6e7078637f | ||
|
61b05edd9e | ||
|
218799e025 | ||
|
0f581dc391 | ||
|
75fd62aef9 | ||
|
3c1c645806 | ||
|
7205cd73d4 | ||
|
ac1ee734f4 | ||
|
51c4dfc675 | ||
|
5f20ceeb1c | ||
|
3e73137c18 | ||
|
dfadc8eca1 | ||
|
7940584674 | ||
|
9b63293e45 | ||
|
2c57453efd | ||
|
ea424f29fb | ||
|
dc9e649703 | ||
|
e9f9decf00 | ||
|
69680a9856 | ||
|
e9b9434671 | ||
|
ff09ba1208 | ||
|
cd292488b6 | ||
|
1dd3c1589e | ||
|
3da1497d27 | ||
|
f304e40d57 | ||
|
93d3c73306 | ||
|
6ef9557698 | ||
|
08ae1105ff | ||
|
16f5d48120 | ||
|
a065cd338c | ||
|
cfae6e9e51 | ||
|
e988308dc6 | ||
|
ff0873f5e8 | ||
|
3170d07f9b | ||
|
90e752472f | ||
|
eeec549bd0 | ||
|
107f51da0d | ||
|
9d239bf94d | ||
|
3c645ef1bb | ||
|
f5ac1f120a | ||
|
e8e8e7c5bc | ||
|
7d4af8d059 | ||
|
c1887aaa9f | ||
|
38ba1cbbe9 | ||
|
cd5737276c | ||
|
4af2f700f7 | ||
|
710d21f6a4 | ||
|
7497cf6729 | ||
|
572bdb6dfe | ||
|
5e60c97566 | ||
|
ce80d7ff2f | ||
|
b0558a300e | ||
|
257072330f | ||
|
1d651db82b | ||
|
6fe0002bd3 | ||
|
f5764372c2 | ||
|
bbc1ed9e62 | ||
|
d30c6018e4 | ||
|
cb64175c2b | ||
|
3b887fdf4e | ||
|
36b97b1647 | ||
|
cfa0f95799 | ||
|
f3db4a857a | ||
|
ba3e7f63ff | ||
|
8909c6027d | ||
|
48df1136ca | ||
|
871f054486 | ||
|
7d084f18a0 | ||
|
69ecdba175 | ||
|
38330a7b67 | ||
|
0e7ca50588 | ||
|
2a7b92d48f | ||
|
0ca5caee85 | ||
|
4903c24661 | ||
|
5e00d474d9 | ||
|
33ef138d4b | ||
|
b840ff1d25 | ||
|
e6bf8a981d | ||
|
836fc71ebc | ||
|
4d291a4f43 | ||
|
0f18cdb7d2 | ||
|
a311b21d7c | ||
|
6b2331dcbf | ||
|
2d21d3f6ce | ||
|
45d75ecc6d | ||
|
db993fc3d6 | ||
|
ec9c3fa6f7 | ||
|
6e300872ac | ||
|
8cd716b87e | ||
|
961ea9a8e0 | ||
|
ebb05484a5 | ||
|
fabde93481 | ||
|
b5f1941ae4 | ||
|
bb5a65cb60 | ||
|
93a93c5295 | ||
|
acdaec42c3 | ||
|
e35ec86930 | ||
|
65175106da | ||
|
551d559be1 | ||
|
a8d8176d97 | ||
|
f7dd492adc | ||
|
8c63e872b9 | ||
|
e4bff75557 | ||
|
cc08bfd500 | ||
|
06d30c3df2 | ||
|
a70fba9f6a | ||
|
07e06957ef | ||
|
824f3802b2 | ||
|
97eb2330c6 | ||
|
47da9c4534 | ||
|
6c353d96a5 | ||
|
840ca30d8a | ||
|
9007fafdf2 | ||
|
4965be9961 | ||
|
29d1d5e4b7 | ||
|
bb703f3935 | ||
|
5a74572209 | ||
|
3c08fb637a | ||
|
9f797e49e9 | ||
|
8157ec7746 | ||
|
632f316f8e | ||
|
1e4f47bc52 | ||
|
56ea316a22 | ||
|
91f507e6c4 | ||
|
7f8a19f194 | ||
|
ada8539898 | ||
|
688ae7d259 | ||
|
be8f226948 | ||
|
99b6c887d2 | ||
|
1eda087233 | ||
|
2d68c06698 | ||
|
0965050ec9 | ||
|
e976ddde34 | ||
|
61d4e468cb | ||
|
2f1a7b76ad | ||
|
f741c4e7d9 | ||
|
cb0fb63fe6 | ||
|
b96140f668 | ||
|
4371ba48cb | ||
|
ae4c3b078b | ||
|
957e89bbfd | ||
|
f92f87ce08 | ||
|
3292a07d3a | ||
|
7e6376bf90 | ||
|
8c1938987b | ||
|
dc969f502a | ||
|
2d335c1307 | ||
|
b59068b463 | ||
|
268cbb83cd | ||
|
7e1659b1f9 | ||
|
83795344ed | ||
|
d1fa9050ca | ||
|
9409f47bcb | ||
|
c53ec382e5 | ||
|
f5eb78612f | ||
|
ba15aa11f2 | ||
|
d7b621f9d8 | ||
|
09580af844 | ||
|
d1f82ab2b9 | ||
|
9c9fecc97d | ||
|
0736c9ede5 | ||
|
ac705151e9 | ||
|
b37eca4520 | ||
|
24b18847b5 | ||
|
ac916078bc | ||
|
41b803980c | ||
|
0316582537 | ||
|
e7584d37bb | ||
|
36a2e6e11c | ||
|
64c47a6e6c | ||
|
c039d62e5e | ||
|
8ecd03d584 | ||
|
72956bda64 | ||
|
1fd2f78f4d | ||
|
ac235fa1db | ||
|
13bdd10a69 | ||
|
882fb58a7d | ||
|
9481221140 | ||
|
37429c277b | ||
|
a2ef95584f | ||
|
3bf5c0cc1b | ||
|
8f69e411d7 | ||
|
e961a8ccb5 | ||
|
b9cc1b6dab | ||
|
93e2d7d176 | ||
|
f261a903f0 | ||
|
82748591f9 | ||
|
997c9dd917 | ||
|
cff9fbd008 | ||
|
43692c1da8 | ||
|
287bff473d | ||
|
d26d7f124b | ||
|
390377480c | ||
|
7cff46d271 | ||
|
1058f4b91d | ||
|
8eee238220 | ||
|
b1b784de9f | ||
|
8447e06b21 | ||
|
580f979c05 | ||
|
cffd6e80d0 | ||
|
d6302d3b9b | ||
|
d78d07b42a | ||
|
7e748f28e8 | ||
|
900828f57d | ||
|
d5794441d6 | ||
|
09c70c99fa | ||
|
0391f77623 | ||
|
3848982c07 | ||
|
d409a33f92 | ||
|
671f846f53 | ||
|
17a3ea3148 | ||
|
baccb84efb | ||
|
36db0ac8d6 | ||
|
1996df2f93 | ||
|
8fc5d73f75 | ||
|
541690605f | ||
|
19ba773df9 | ||
|
72b2b591e3 | ||
|
0edea016b1 | ||
|
bf244f6805 | ||
|
d5d5c9009b | ||
|
e4e4c2940b | ||
|
6da05a3804 | ||
|
9f3255dd78 | ||
|
bb59a758cf | ||
|
591b08f1ff | ||
|
cee6ec5939 | ||
|
df1641995e | ||
|
27f9be5eda | ||
|
19dc812719 | ||
|
bb09bee641 | ||
|
2ea6cdba6f | ||
|
b98d6ca55b | ||
|
ccf77eb05a | ||
|
94956a2ec6 | ||
|
517af968e6 | ||
|
705b17e7f1 | ||
|
7ccbaf9ec8 | ||
|
0e9b62a43a | ||
|
3e8eeac533 | ||
|
d5c98414a4 | ||
|
16f8f01cdb | ||
|
6412c2a7ce | ||
|
d79df5a0cb | ||
|
872fef6d22 | ||
|
fe37d63149 | ||
|
c98598eed1 | ||
|
a3bbe0bd8c | ||
|
a7130f63ea | ||
|
1659675d3b | ||
|
6752c69c22 | ||
|
3157a35b74 | ||
|
24614bbbae | ||
|
29d8845792 | ||
|
2d1dcd34c0 | ||
|
aecdd475d8 | ||
|
66aa4226b5 | ||
|
4ca67022e6 | ||
|
3b9dc50250 | ||
|
8d6d10206b | ||
|
ec9b56d19a | ||
|
6e27ffc3cf | ||
|
120053a018 | ||
|
134992cf0d | ||
|
d6028b75c9 | ||
|
dadad3501b | ||
|
e2afa0ccd3 | ||
|
c9ed3abc36 | ||
|
7c3ecec92a | ||
|
eba31a7216 | ||
|
0b374bf9c6 | ||
|
dd2bbf6189 | ||
|
1fdb31d4c6 | ||
|
acaa013b8d | ||
|
adb8be8958 | ||
|
ab1377cc07 | ||
|
37039ee5be | ||
|
2d381fa669 | ||
|
04f5ae1fc3 | ||
|
e0d3fbef27 | ||
|
90b10855a0 | ||
|
215c503a79 | ||
|
b2cde3f9d6 | ||
|
f9f341e0ed | ||
|
14884b768a | ||
|
e2b20f0d91 | ||
|
b2a21f7cc8 | ||
|
1a1f6810e2 | ||
|
7d9330b2ee | ||
|
6542eae258 | ||
|
7a65a51ee1 | ||
|
20fedc87fe | ||
|
db76cd5899 | ||
|
6c942a7575 | ||
|
71a2a4d31a | ||
|
fe3a41e4e9 | ||
|
8d58799134 | ||
|
c8fbb88511 | ||
|
36b1e9b5e4 | ||
|
421d996908 | ||
|
e254f1e7da | ||
|
a170c0b7db | ||
|
98841bbe3d | ||
|
49054d8a15 | ||
|
03905910e2 | ||
|
88f505f8e5 | ||
|
fd186c1f32 | ||
|
62ec1eb505 | ||
|
ec1474e646 | ||
|
7f3a43e1bc | ||
|
e64d834264 | ||
|
fd04f80e64 | ||
|
9c948f7849 | ||
|
d5e8397f89 | ||
|
60a377ad8d | ||
|
30335ce59a | ||
|
da9dd57d64 | ||
|
0421415174 | ||
|
672151b8a2 | ||
|
eb1d361066 | ||
|
9569c34324 | ||
|
8b7601029b | ||
|
79b451546d | ||
|
257ca26a8e | ||
|
e5725c334b | ||
|
5b8f6689e2 | ||
|
4ab2fc3aa7 | ||
|
456c84ca75 | ||
|
3f06519ff3 | ||
|
6a20ad87a8 | ||
|
73e72d16fb | ||
|
8a440e168e | ||
|
c9c9145173 | ||
|
906966b2a6 | ||
|
69e45e428b | ||
|
a59556e64c | ||
|
93c0316320 | ||
|
c8cddebcb6 | ||
|
16a95e0160 | ||
|
fddc3fe97e | ||
|
f30be0fd20 | ||
|
0e50a1703d | ||
|
3aa2fe54a8 | ||
|
5dac1069b6 | ||
|
0ead3e77e2 | ||
|
e3f9374a95 | ||
|
32d832fa8c | ||
|
1a29e5508f | ||
|
edaf5fb84f | ||
|
45310cea12 | ||
|
bc7cce1d1d | ||
|
adfe934481 | ||
|
523414784b | ||
|
6be4d0867c | ||
|
60b5f01164 | ||
|
4e64dd9353 | ||
|
622aa88f86 | ||
|
e6bfb14a9c | ||
|
466744d74b | ||
|
9fbf34f7e5 | ||
|
df54e3e833 | ||
|
985b77bc05 | ||
|
e7c122ef1d | ||
|
1204d79189 | ||
|
b5f1ecf9e0 | ||
|
38aefb9e33 | ||
|
67095f81a7 | ||
|
09e1d4d97a | ||
|
b063afaa91 | ||
|
37149c655e | ||
|
6e4b2f4987 | ||
|
d9c1e89b9f | ||
|
f9ae582141 | ||
|
6b374c735f | ||
|
2f0f8cf1a0 | ||
|
613dc3d7fa | ||
|
a744ad1f60 | ||
|
3727b653ba | ||
|
1a8581a78e | ||
|
f3faed0ffd | ||
|
aa60508b1e | ||
|
dae7c75614 | ||
|
9e57364022 | ||
|
aaa6e7255c | ||
|
38fd219a53 | ||
|
92c37f3bb2 | ||
|
90980a415e | ||
|
343837ff14 | ||
|
6c80a38c4a | ||
|
492115d702 | ||
|
b6390924d3 | ||
|
9347de3fad | ||
|
8ca0381e9b | ||
|
c0905e5f11 | ||
|
e34958b814 | ||
|
3a88f04f0d | ||
|
48f4ad412f | ||
|
e37fe1f8f5 | ||
|
3c2c6ef136 | ||
|
67a9d08f48 | ||
|
c84ac00866 | ||
|
5382b61572 | ||
|
85b9dda092 | ||
|
0948bb473d | ||
|
313db8cab1 | ||
|
312768ec96 | ||
|
48d5cc8545 | ||
|
f5d910c4e9 | ||
|
fbb645d9d4 | ||
|
024005ead7 | ||
|
58415375b1 | ||
|
881b68bcd3 | ||
|
51580ffa76 | ||
|
3705e14851 | ||
|
4e9adaf5dd | ||
|
46a49d899c | ||
|
63451611a9 | ||
|
cd8697b94a | ||
|
347fef225b | ||
|
f55740bd50 | ||
|
28da02c583 | ||
|
21459261a2 | ||
|
f02cd0d77f | ||
|
7c3751f568 | ||
|
8a3d29d630 | ||
|
b0149c4960 | ||
|
178875b809 | ||
|
9070e776e6 | ||
|
efd9a086b1 | ||
|
316666d6a4 | ||
|
1cc3f194e4 | ||
|
d4d9a1068a | ||
|
8e6db1714b | ||
|
b2c7f05a10 | ||
|
681eab7425 | ||
|
83296727a2 | ||
|
0dc70a5d75 | ||
|
8dcb5f7098 | ||
|
ca849e40a4 | ||
|
0143cf7ea8 | ||
|
40bbd3ebd1 | ||
|
09e4b4b7ec | ||
|
2b582d3a48 | ||
|
425cbc9e68 | ||
|
4d9596b56e | ||
|
ca8dc37012 | ||
|
0e503503d2 | ||
|
e27464d37d | ||
|
df9579d7d2 | ||
|
91ed82749c | ||
|
110b5cfcb4 | ||
|
fb837fed5a | ||
|
99aa9493d6 | ||
|
7fff7a453d | ||
|
7f42eb3fb6 | ||
|
26a640846e | ||
|
64508cd2d9 | ||
|
70508544cd | ||
|
4ecbf87cda | ||
|
1b12db9270 | ||
|
e5657a6f23 | ||
|
0ec7e7dc34 | ||
|
89267256ef | ||
|
e554ecc030 | ||
|
eef5ef7d2d | ||
|
ee1580c50e | ||
|
2077d972bc | ||
|
3e1b59d062 | ||
|
9490ddf53f | ||
|
10216c70cf | ||
|
ba83e1bbd6 | ||
|
17c41fca88 | ||
|
867356f7cb | ||
|
90160a9681 | ||
|
1b57770955 | ||
|
673c59b3f8 | ||
|
ac65934454 | ||
|
a5a95995e1 | ||
|
d023d9df7d | ||
|
fe69d8e3fa | ||
|
b45b90dcdf | ||
|
c6e612c058 | ||
|
9e45a31d8f | ||
|
0b09a51bb2 | ||
|
76cea42d4b | ||
|
b61a184297 | ||
|
b704b64255 | ||
|
be80b46327 | ||
|
da5a3eaad8 | ||
|
29777f50fa | ||
|
776e63476c | ||
|
c966a94b93 | ||
|
4ca560f80f | ||
|
38832715ff | ||
|
dcf0541fe0 | ||
|
8480c41c3d | ||
|
55033ea5b0 | ||
|
2830459b6a | ||
|
acf92908cc | ||
|
95b30bb8e9 | ||
|
aab1afc352 | ||
|
84369005ba | ||
|
c94ee5c6fe | ||
|
0cdd0a7521 | ||
|
507cd98304 | ||
|
ac65defe56 | ||
|
69b7efdfa1 | ||
|
b1f178ad9f | ||
|
93cd197c78 | ||
|
33535a5746 | ||
|
ed121c051b | ||
|
af4424f1c5 | ||
|
1227f048bb | ||
|
da4055f860 | ||
|
8f1bbd6ff0 | ||
|
438b0a69ea | ||
|
35cf6cb9e0 | ||
|
bcc1ac4ac9 | ||
|
ca6dd3a0a1 | ||
|
927f7757cd | ||
|
716bd9a2e6 | ||
|
e76225f7d1 | ||
|
c3114abb05 | ||
|
483879c5ef | ||
|
7d8e31d34d | ||
|
c3f1bc7fca | ||
|
77b9d6db53 | ||
|
ca281b861f | ||
|
54457c1633 | ||
|
68f05e0687 | ||
|
44230d67ce | ||
|
b79f5b5b9c | ||
|
9fd1a22e10 | ||
|
b85a06422c | ||
|
2f8fff4c4c | ||
|
25acec8811 | ||
|
4d47427952 | ||
|
8e4bbba7ee | ||
|
02a18a3471 | ||
|
304fd2b352 | ||
|
f2fdd5024f | ||
|
b3f257970f | ||
|
dd27eac539 | ||
|
9b1a731ac3 | ||
|
93f3174050 | ||
|
409ec1dfae | ||
|
4bd7fb1d81 | ||
|
f08f3c1b02 | ||
|
f76c2f1007 | ||
|
79c54f602f | ||
|
540943383e | ||
|
7857339f54 | ||
|
0289571237 | ||
|
9298d95d8f | ||
|
61c2b9b60b | ||
|
1da289fd90 | ||
|
14d28a01a6 | ||
|
7ea7b4faa2 | ||
|
95b6c2ae48 | ||
|
c3bcdb1c28 | ||
|
638442f6f0 | ||
|
f38d32d1fb | ||
|
126a47a5cd | ||
|
5cfec3c343 | ||
|
19813b1542 | ||
|
de2afdcbb3 | ||
|
065ee1d2f5 | ||
|
5f069264d0 | ||
|
f07a43cb6e | ||
|
6a3f5a50d9 | ||
|
3906327af5 | ||
|
7da63597fe | ||
|
2c1aa5d1cc | ||
|
82de166184 | ||
|
8aa8fbfde7 | ||
|
d6dfd99e13 | ||
|
9e49f5d89f | ||
|
a2fccd0aae | ||
|
ae5b13c184 | ||
|
2208d30b7d | ||
|
9a59ef8ad0 | ||
|
05ce99484d | ||
|
0ea24e3089 | ||
|
577986001a | ||
|
1259762d27 | ||
|
5266453765 | ||
|
f3156235e1 | ||
|
e0562aec9d | ||
|
3279161af6 | ||
|
856862e6a0 | ||
|
127c13eae2 | ||
|
9b19554810 | ||
|
6c7eb5670b | ||
|
6e09cc275e | ||
|
c269034d94 | ||
|
d088d7445f | ||
|
8418a6c206 | ||
|
8ed9b602aa | ||
|
6a9ebfde45 | ||
|
56457adc54 | ||
|
238d10d4cb | ||
|
8e9a364c8d | ||
|
2c96db871d | ||
|
5f185c51e7 | ||
|
27ed0fe13f | ||
|
b1a892fd65 | ||
|
60eac3a808 | ||
|
ea6279ee89 | ||
|
6491d0d89f | ||
|
7ce1842f87 | ||
|
7282c30872 | ||
|
671095fed0 | ||
|
fc796154ea | ||
|
d5f75c6f9a | ||
|
7c23776ea1 | ||
|
9e47d0efc3 | ||
|
9f72d5a4f7 | ||
|
de6171578a | ||
|
8e89d09b1b | ||
|
60b19aac65 | ||
|
c122e43f37 | ||
|
e61ca13b66 | ||
|
0c5fea2029 | ||
|
5763926dfe | ||
|
d790ee474e | ||
|
9037c6f8da | ||
|
39c702f41b | ||
|
4c1c0ce6a3 | ||
|
94675b9f85 | ||
|
29f2bf25fc | ||
|
8595bd2be8 | ||
|
5eded5cb8d | ||
|
21c7fc3d0a | ||
|
5117727827 | ||
|
a6211a1da3 | ||
|
a6bf5c5511 | ||
|
6b516cf6b2 | ||
|
b1b00b00be | ||
|
f7fffcdd67 | ||
|
36ed81749e | ||
|
7abc7b1bf1 | ||
|
257a2cfb5a | ||
|
254c31b736 | ||
|
ee92f0cd05 | ||
|
8abbe6ae38 | ||
|
97741c01cf | ||
|
97b47302ef | ||
|
184bc19c27 | ||
|
0051e922ea | ||
|
fd8cdef04c | ||
|
ceda85f624 | ||
|
8bb78ce68b | ||
|
4f64b20bca | ||
|
446ed24bea | ||
|
a4340412e8 | ||
|
7dd15af6d3 | ||
|
e2f615cf64 | ||
|
f9492a2274 | ||
|
d35cad0949 | ||
|
df1dbb3419 | ||
|
66239ead84 | ||
|
c1c8606cac | ||
|
a53f030ff2 | ||
|
8a56ca082c | ||
|
94c4d68bbe | ||
|
89bce099fe | ||
|
af042005ca | ||
|
0b4cd619d4 | ||
|
5bb0e1278d | ||
|
838968d337 | ||
|
46daf90ff0 | ||
|
acaf39d712 | ||
|
83e0eefa1d | ||
|
dc4c5bcc5d | ||
|
721faa1feb | ||
|
971aa069dd | ||
|
9cd6fae7d3 | ||
|
15cfb5e85e | ||
|
4146b5511a | ||
|
084bd44348 | ||
|
bcdd92c22a | ||
|
b1ad5e1dc1 | ||
|
5988a6374b | ||
|
0b48406fb4 | ||
|
c3017866e0 | ||
|
c7928c2228 | ||
|
14cbc96e58 | ||
|
6a56b54fdf | ||
|
2ee2afe6bd | ||
|
182aa2a9ca | ||
|
c4a540722b | ||
|
7597b85110 | ||
|
8c495d98f1 | ||
|
7388279eb7 | ||
|
448374fc58 | ||
|
245ca13049 | ||
|
891897f0a7 | ||
|
0df8d54de6 | ||
|
75559fb21a | ||
|
ccf971afc4 | ||
|
b0c8008fe0 | ||
|
c54de67e03 | ||
|
05c16dd09a | ||
|
95e345678a | ||
|
ab1ff2ed84 | ||
|
c5cd0b2911 | ||
|
34e2dca465 | ||
|
45ab356b27 | ||
|
09ad11df7f | ||
|
8e14579886 | ||
|
69f8715d03 | ||
|
fadab52ba3 | ||
|
67d25dfcd8 | ||
|
39d9591b26 | ||
|
088c2ae449 | ||
|
62ee6c8033 | ||
|
a30e4a9d86 | ||
|
370d58e876 | ||
|
a6f7302350 | ||
|
b20d74aa1d | ||
|
9d7758c9e3 | ||
|
b6ac915805 | ||
|
ef38ba033f | ||
|
ea635976a5 | ||
|
a331d907ce | ||
|
8192bb5442 | ||
|
1e66f4fa49 | ||
|
53d03335ab | ||
|
6649297ea0 | ||
|
2bd0126523 | ||
|
85734c05aa | ||
|
f782a31592 | ||
|
60ebc0dccb | ||
|
021babc9b1 | ||
|
cd648a0b50 | ||
|
13866c62bf | ||
|
8f56f9de46 | ||
|
84ccd30ab7 | ||
|
552c6fbbd3 | ||
|
0d28b3a860 | ||
|
f8449f9567 | ||
|
664fa7f952 | ||
|
2aa5e6f7a0 | ||
|
a98dc86e34 | ||
|
f637996310 | ||
|
a9ebf4fdd6 | ||
|
93a6bfb0f2 | ||
|
8861b36aba | ||
|
7062e0737c | ||
|
af4ab41851 | ||
|
1b0265662d | ||
|
18c7f0d894 | ||
|
b78da9824d | ||
|
5db9fe6eb6 | ||
|
04ce186b6b | ||
|
8fdc95592f | ||
|
ecfbbb15d6 | ||
|
26bf8b94dc | ||
|
e8c95551c1 | ||
|
a509da54e8 | ||
|
24e1740a8a | ||
|
c74cdb9540 | ||
|
7938eac490 | ||
|
13c8ff4ff5 | ||
|
e9a2cf4834 | ||
|
77807de811 | ||
|
c36869cd03 | ||
|
0e8a2254f8 | ||
|
b1b35599b0 | ||
|
597081e9a8 | ||
|
9541d75d3f | ||
|
84cb6e74f2 | ||
|
54947838e2 | ||
|
76c984381b | ||
|
cb3dfa25a8 | ||
|
fbba9e90b0 | ||
|
a38d61f412 | ||
|
6c94190256 | ||
|
45bc28c107 | ||
|
6a961d902a | ||
|
ed7b42fd1f | ||
|
631eea6ce1 | ||
|
5080948f40 | ||
|
d6364310df | ||
|
d5aab33ed9 | ||
|
c2cde68248 | ||
|
50975536b1 | ||
|
40cf323146 | ||
|
88c2a54db0 | ||
|
99580b7ab4 | ||
|
b633f6bc26 | ||
|
1bb7829676 | ||
|
27a7c29383 | ||
|
5e120b5228 | ||
|
bbb84204bc | ||
|
cede9b07d8 | ||
|
c6baef1771 | ||
|
832a91ef26 | ||
|
6bd150d4cd | ||
|
ac0bdb7dfe | ||
|
db512d63df | ||
|
a0bab98af9 | ||
|
27046ed1a6 | ||
|
2e4ceb61d5 | ||
|
8d9ebc4189 | ||
|
548eef7cef | ||
|
7ad6e6f220 | ||
|
71421cd75a | ||
|
df8382e933 | ||
|
fe3f806545 | ||
|
18a7c2443b | ||
|
4118077855 | ||
|
333860306b | ||
|
1026b0a4fa | ||
|
890260b996 | ||
|
d785bbba13 | ||
|
1861ab1fba | ||
|
aa805dceca | ||
|
df2c3e7c07 | ||
|
25ca598414 | ||
|
4080f1c8b8 | ||
|
386814eac4 | ||
|
b5af6f5a0f | ||
|
de50577ac3 | ||
|
7d16c86f37 | ||
|
8bf46b136a | ||
|
4c12c0dd1f | ||
|
835e1f5a4b | ||
|
dcd43d6e7f | ||
|
f887acd854 | ||
|
3bb19838a4 | ||
|
f676a65544 | ||
|
a8ba3aa9c1 | ||
|
8eff831382 | ||
|
2ae6cd40c7 | ||
|
81cb0d40c6 | ||
|
a4211d8482 | ||
|
d23636900f | ||
|
2dd90aa07f | ||
|
a358644354 | ||
|
a3a616d8df | ||
|
2453f2cee0 | ||
|
e8ea5388b9 | ||
|
ad7e466fb8 | ||
|
f74a885aa1 | ||
|
067e316969 | ||
|
3a25743ded | ||
|
4cf78795bd | ||
|
f6711a3d16 | ||
|
671435c7f7 | ||
|
068a43e1f4 | ||
|
e8f37dc916 | ||
|
1edfefa71e | ||
|
bb08def69b | ||
|
afe133ed7a | ||
|
7980dccc9d | ||
|
9cd3a9e13d | ||
|
e8f196a6f1 | ||
|
529f640554 | ||
|
5bb78c995e | ||
|
1f4c098d8b | ||
|
0a0ad2d91e | ||
|
2cb1ea95dc | ||
|
6aa4eb5e04 | ||
|
c8fda158a3 | ||
|
25d49806cc | ||
|
71455706cb | ||
|
1c47983a99 | ||
|
40119733b9 | ||
|
28089618a3 | ||
|
cf609e5fe3 | ||
|
225f51d3fd | ||
|
450d3d2238 | ||
|
68712513b3 | ||
|
74adab0627 | ||
|
53b369ba38 | ||
|
ffce999cba | ||
|
f43c9bf4d0 | ||
|
6034085244 | ||
|
454ce1c095 | ||
|
67c2f0d288 | ||
|
552af673ff | ||
|
3a40223bf7 | ||
|
117eceb8b0 | ||
|
2db75e2a62 | ||
|
d01c353c40 | ||
|
578e71dfc7 | ||
|
d1044d216f | ||
|
6cc089a774 | ||
|
f23952461d | ||
|
4c781d5684 | ||
|
847f9bb2e8 | ||
|
9f9b440e71 | ||
|
4d59b532e2 | ||
|
1f5df94c37 | ||
|
9ad0c0c44d | ||
|
b6896765a9 | ||
|
941153894c | ||
|
4c756cb12f | ||
|
4cc2daa5ef | ||
|
f4367a0855 | ||
|
b1d7831684 | ||
|
10a1ea033b | ||
|
35b7860ec2 | ||
|
27c1e02764 | ||
|
5ac590a8e0 | ||
|
4e1e30ef1d | ||
|
d922126f4b | ||
|
b9e18ac4b5 | ||
|
4174023958 | ||
|
81a2a4a8a4 | ||
|
8667797246 | ||
|
427d9a70d5 | ||
|
b37604ce39 | ||
|
2232839cd5 | ||
|
f8283e44ba | ||
|
0971a28532 | ||
|
8775c4d0a2 | ||
|
4226296990 | ||
|
6e44f52c4a | ||
|
5b5cbf52b2 | ||
|
84f0f6f6dc | ||
|
ba7ee68b24 | ||
|
a0e4263dda | ||
|
120dd61123 | ||
|
c588ed5efa | ||
|
4ba84ddc82 | ||
|
5f2ffbb8d5 | ||
|
a8778d003b | ||
|
c8ef57e365 | ||
|
c083112c84 | ||
|
33200764ca | ||
|
6064cfd5c1 | ||
|
e362536037 | ||
|
67ae54f0a5 | ||
|
ae2fbf1ecd | ||
|
fa47c4b87e | ||
|
a70e3c2533 | ||
|
86ec975f99 | ||
|
6edde6a6b9 | ||
|
cdb350c104 | ||
|
1215a1a319 | ||
|
7460e76a47 | ||
|
29dcac9b3c | ||
|
a226385ed3 | ||
|
84010d03f1 | ||
|
54030bdd57 | ||
|
e1c3f1ce08 | ||
|
48641769d9 | ||
|
fb4cceb476 | ||
|
8b28e7ba54 | ||
|
318a5a8fc1 | ||
|
43ecb63b17 | ||
|
1485ce363a | ||
|
912c37e3ff | ||
|
b48e6f5d71 | ||
|
eea3dac20d | ||
|
09faa9d189 | ||
|
fdd7023dd5 | ||
|
e1086669c7 | ||
|
c0fb4e88cd | ||
|
033316eec3 | ||
|
85bff0e786 | ||
|
a88937b2f9 | ||
|
4d228a9c18 | ||
|
a7c1c4381b | ||
|
d190ebfbcd | ||
|
beddf2eba5 | ||
|
24b6c407ee | ||
|
d798a83b4e | ||
|
91db521ca9 | ||
|
222262e75a | ||
|
e1a2851803 | ||
|
8a1f1a3756 | ||
|
8a8af0b7e4 | ||
|
b7f5fdd32f | ||
|
b12908476d | ||
|
0a2b1f8ad1 | ||
|
055ed35fa6 | ||
|
3e17c1c4e7 | ||
|
a55698c5f4 | ||
|
604c3932cd | ||
|
32aaf57ecf | ||
|
76f856b2ea | ||
|
c139eb55c3 | ||
|
9584eb496a | ||
|
14d742d504 | ||
|
e53fbaa11d | ||
|
beecd8366b | ||
|
6f859c9ca6 | ||
|
b75787a4f4 | ||
|
2f1e282950 | ||
|
2ee079fe79 | ||
|
82a7f29497 | ||
|
ba81b39baf | ||
|
704e14c6a4 | ||
|
07041d066e | ||
|
3d12bb1df9 | ||
|
cfd598b3dd | ||
|
a8be83917a | ||
|
416f013c05 | ||
|
361e23ac3f | ||
|
fb5fe9bc1d | ||
|
d84eca6a9a | ||
|
384e7f674d | ||
|
eaa9cc740e | ||
|
f855a36022 | ||
|
922b8092ac | ||
|
d3df58c607 | ||
|
afe036dd9d | ||
|
60d3ae6cc5 | ||
|
753875ba0c | ||
|
2ce15a1923 | ||
|
fb44562824 | ||
|
8aa89f1dfd | ||
|
429a71964d | ||
|
9d43846b9b | ||
|
ec4226b5d3 | ||
|
b86f6a41bd | ||
|
c9dc570f83 | ||
|
783596723e | ||
|
2183b05753 | ||
|
e5d3b1d537 | ||
|
d7ddcf85d6 | ||
|
4f1afee7d2 | ||
|
1c343661f2 | ||
|
da04423d31 | ||
|
e7781b9c8b | ||
|
3e94668592 | ||
|
81d5248db1 | ||
|
a8aea0284b | ||
|
3ebe4619aa | ||
|
3c722fd7ca | ||
|
89813689cc | ||
|
d3b6a099de | ||
|
6869c4bbb7 | ||
|
80301b1601 | ||
|
8e90f7c091 | ||
|
47678c1edb | ||
|
ce28b99f7a | ||
|
508092e0a3 | ||
|
d4fdf7ea80 | ||
|
9d75a66aea | ||
|
ebed3195bf | ||
|
e7f3cf6d57 | ||
|
d04afb898f | ||
|
bf113b7571 | ||
|
9383319b37 | ||
|
524680fced | ||
|
6f18c020ea | ||
|
369c0f166d | ||
|
ebd35bdd88 | ||
|
48393ee5d1 | ||
|
7683b8325c | ||
|
a0bb3af871 | ||
|
1b4885ccab | ||
|
58201851ad | ||
|
3f6b60c63d | ||
|
8fb38f57dc | ||
|
7a95ece738 | ||
|
9a31aa3b91 | ||
|
757bd5ff32 | ||
|
9f4c595d9d | ||
|
b904548ba0 | ||
|
b10a27d4dd | ||
|
98f1c6d87f | ||
|
bb8ebb73bf | ||
|
a9152dfe0b | ||
|
ca37cc5cd3 | ||
|
2267d599ed | ||
|
2152c1d7ba | ||
|
f74c7fa997 | ||
|
5bd2d997cf | ||
|
8c9fc55669 | ||
|
f25bc7c38d | ||
|
e0016dd46e | ||
|
cf8436db9f | ||
|
bd9bc0ca42 | ||
|
f578b7b1f0 | ||
|
f3e4a92b8f | ||
|
017f880aae | ||
|
82ee118af2 | ||
|
b40c118574 | ||
|
4e0159ee35 | ||
|
3488c83542 | ||
|
694abe72a6 | ||
|
47a2dc5adb | ||
|
935b2aab88 | ||
|
ca8d107968 | ||
|
af26b10ee2 | ||
|
8dae126d4c | ||
|
c1d59d6408 | ||
|
00f9c362da | ||
|
156f4f71f9 | ||
|
66e8b5bf7a | ||
|
4dee5d2366 | ||
|
b1a3fb393d | ||
|
51b960361b | ||
|
a0ab6de85a | ||
|
5e20391daa | ||
|
3ce757ee4b | ||
|
ecc0cb5f0b | ||
|
307ac4060e | ||
|
7bb7a627c4 | ||
|
ce95af06f8 | ||
|
c8277e2d43 | ||
|
7bef90109d | ||
|
d5bd05d0bb | ||
|
15c610f9ad | ||
|
f2ca2c6502 | ||
|
44266bcb67 | ||
|
ff07cad645 | ||
|
3d87b796b4 | ||
|
003c2cd3da | ||
|
05ffadb0ef | ||
|
bdfebac76d | ||
|
a06104534b | ||
|
af67705778 | ||
|
5de386c3c9 | ||
|
c4e03c59a0 | ||
|
992ec7f3f4 | ||
|
934e9178b4 | ||
|
3104f62988 | ||
|
a7238bdb3b | ||
|
0c89245392 | ||
|
8593f2330f | ||
|
d6712b7c93 | ||
|
5a62e31c86 | ||
|
366ce8665d | ||
|
aefb0877df | ||
|
d83efde9f0 | ||
|
b01fd17413 | ||
|
2b5fb3bfbf | ||
|
b2eb65cd0b | ||
|
684408d6d2 | ||
|
356f221caa | ||
|
882357f6a4 | ||
|
43dcc405d2 | ||
|
5c4ab205f7 | ||
|
c868452194 | ||
|
e971e09e2e | ||
|
5f33474ff5 | ||
|
fae1784005 | ||
|
8f927a46ca | ||
|
2a5768dd60 | ||
|
25a09bc446 | ||
|
b1cacb37f9 | ||
|
3ab465ea93 | ||
|
00c90c19d7 | ||
|
b6f77ac578 | ||
|
4182581235 | ||
|
3045a8581a | ||
|
030e37655e | ||
|
c7d3e1926f | ||
|
fc26d61305 | ||
|
f9591a5fc6 | ||
|
7118368a15 | ||
|
8a54f7a4ed | ||
|
652a2c2834 | ||
|
41bb743cf4 | ||
|
cfc67d5b67 | ||
|
326ece4b08 | ||
|
21cee773e2 | ||
|
983649d89a | ||
|
184a25b811 | ||
|
470218ca52 | ||
|
db2e2916a5 | ||
|
2c2349aa63 | ||
|
2f06095273 | ||
|
63026a3da5 | ||
|
cd1f41594d | ||
|
073eda75a2 | ||
|
05c4de6c6c | ||
|
492b8a012d | ||
|
4cfd6d29fc | ||
|
a3077dfaa7 | ||
|
6b6dea0c45 | ||
|
3ba2c47d1e | ||
|
91904a3e8f | ||
|
96252ec2af | ||
|
7ca532a5f6 | ||
|
e3a2000e29 | ||
|
10be07590d | ||
|
3e118f24ad | ||
|
5473789577 | ||
|
aa736e2bfc | ||
|
9d92128631 | ||
|
1ab6faf2d2 | ||
|
c7f6ece825 | ||
|
edc04ea49d | ||
|
0e47a441e1 | ||
|
e8064fa3d1 | ||
|
a78f057381 | ||
|
dcf3872c33 | ||
|
8b50fa3828 | ||
|
18f1360ffa | ||
|
29dee64fb6 | ||
|
bb4ec4f542 | ||
|
cb093e0496 | ||
|
910d8377ab | ||
|
bdd431d28d | ||
|
67ad1d8255 | ||
|
38ce2a31e1 | ||
|
6b3d1f185d | ||
|
918b119271 | ||
|
c12621e89a | ||
|
d6668cca5f | ||
|
42d27af90c | ||
|
62c8b4d768 | ||
|
586f4479ad | ||
|
8eb7df3188 | ||
|
0022748d6d | ||
|
87c110b44b | ||
|
3947a563eb | ||
|
4ebf095d26 | ||
|
966f5ee7a1 | ||
|
ca1ce63ea2 | ||
|
20e9cca2d6 | ||
|
5e68f0de1f | ||
|
d6bbdf0e09 | ||
|
cd5a477bad | ||
|
2043471658 | ||
|
ccfe6da19a | ||
|
43a8ad8311 | ||
|
a9a0c09deb | ||
|
488c5703a2 | ||
|
c802e2d0f7 | ||
|
b3845beb2d | ||
|
6c5bc48c85 | ||
|
f5f32d3965 | ||
|
0870cec118 | ||
|
dd9fba0626 | ||
|
a3f65b9bcb | ||
|
300e167577 | ||
|
78fc68b6f0 | ||
|
52d0b826f4 | ||
|
e87d312ff8 | ||
|
bc3c253067 | ||
|
71b7fbdf15 | ||
|
7eec4356b9 | ||
|
3bc6ded229 | ||
|
34ac1dee0f | ||
|
1a0852d70b | ||
|
3fcf2a1dd8 | ||
|
b090cb6b4b | ||
|
b0460ebcc0 | ||
|
0704fc5e15 | ||
|
9c3cacc2da | ||
|
781b9954d1 | ||
|
f0eae523d5 | ||
|
fea3441bbf | ||
|
e52fe0ac2d | ||
|
8cf29f65cd | ||
|
1e951cd838 | ||
|
f498fe6fd9 | ||
|
85379ee99e | ||
|
4ee53ad9d0 | ||
|
afb003038d | ||
|
391856a9cb | ||
|
458ab01d2b | ||
|
ae3bf62e2f | ||
|
937dfa634f | ||
|
0f5bdb82a6 | ||
|
85ba176030 | ||
|
aac9e207f1 | ||
|
c7c79d1195 | ||
|
08e970fcb9 | ||
|
af28d0b5a9 | ||
|
66f7a1bbb9 | ||
|
d5369ed7f0 | ||
|
e7e4c86f78 | ||
|
ce59f1d8e9 | ||
|
d94541b26f | ||
|
e51e781b97 | ||
|
5b22a1267e | ||
|
64f9cfef42 | ||
|
d7825c32e8 | ||
|
0a60d0306e | ||
|
72e461ad09 | ||
|
1a08a9425b | ||
|
2e8ed1bef2 | ||
|
e9e391d1cd | ||
|
99eb443f0d | ||
|
cdbf247734 | ||
|
96a3645a46 | ||
|
19a489b6d4 | ||
|
bcc6f475ba | ||
|
e32417d8c6 | ||
|
ba6abf1bc0 | ||
|
f9ed8a4dcf | ||
|
23801de992 | ||
|
b47c8aabcd | ||
|
d6e8aca969 | ||
|
ca28c24818 | ||
|
8e77f90348 | ||
|
31eaa9e2cf | ||
|
e4d0394234 | ||
|
f1d3eeb0a4 | ||
|
2ee51ecc92 | ||
|
ba9720416a | ||
|
64d116d4ac | ||
|
206da39ca0 | ||
|
642ed61309 | ||
|
1ab4a2fd8a | ||
|
5194990946 | ||
|
3333d86776 | ||
|
1ac04b0070 | ||
|
fe4e0eb0d9 | ||
|
ec56f18339 | ||
|
b98e6de383 | ||
|
068c5f34c8 | ||
|
d950cc02cf | ||
|
38cd12e445 | ||
|
0a87aff3dc | ||
|
d6325dc87e | ||
|
a83597a303 | ||
|
ad19b8b87b | ||
|
fa1ec6c879 | ||
|
91439e572b | ||
|
16a830f3e3 | ||
|
f08beaf1a6 | ||
|
2e8efe3b09 | ||
|
ea959d65f2 | ||
|
fec26f331b | ||
|
e392fc9a11 | ||
|
0cdbceaa00 | ||
|
a4498cdb11 | ||
|
9537170749 | ||
|
0ecc291bdb | ||
|
8dc97889b8 | ||
|
5ff9792237 | ||
|
e7e47f8183 | ||
|
0b5e0fea72 | ||
|
171717bcd1 | ||
|
4f5d151f0b | ||
|
3f2625576b | ||
|
88d1f75d1d | ||
|
e0be6ef09f | ||
|
212021e300 | ||
|
98fff95f6a | ||
|
c91761240a | ||
|
ec65564800 | ||
|
b03b207c82 | ||
|
f7eed93a11 | ||
|
11d37e3ecb | ||
|
dba9e29881 | ||
|
e8e94b5189 | ||
|
479b573dbb | ||
|
960bb77c2f | ||
|
b3a50d4f68 | ||
|
4c06bdc14e | ||
|
bc4f1f1ec0 | ||
|
a8d2f40475 | ||
|
4222761363 | ||
|
b90db96b9f | ||
|
8224c44a98 | ||
|
f85c6180cd | ||
|
c48185310c | ||
|
60be24ed22 | ||
|
3abff1bc15 | ||
|
d9dd04bed6 | ||
|
ea352701ec | ||
|
4a311f0230 | ||
|
a74efb293f | ||
|
0f6927d6bc | ||
|
822f1f2938 | ||
|
19e218ead8 | ||
|
a586e346de | ||
|
6b98b3023e | ||
|
4ae93d5a2c | ||
|
607f375bcd | ||
|
4a8db2cdd8 | ||
|
fbb9e66b54 | ||
|
e0472331c4 | ||
|
23630c1103 | ||
|
ca40ea1e1b | ||
|
2a33ce8bd7 | ||
|
e82fc909ec | ||
|
7476a52943 | ||
|
a65ad14bc2 | ||
|
a74ce99ee9 | ||
|
f325d04b66 | ||
|
40b9102982 | ||
|
c07d2819e7 | ||
|
73432cd86d | ||
|
e775f2bac6 | ||
|
f9972f3378 | ||
|
1457717b30 | ||
|
00ca47737f | ||
|
c823190d0e | ||
|
bf8f8b7f8c | ||
|
635f2e9d4f | ||
|
0cdafc96d8 | ||
|
a9eb333fd2 | ||
|
1eee44d9aa | ||
|
c3a4c43fef | ||
|
31e599f2e2 | ||
|
25edcaf5d1 | ||
|
60e838a82c | ||
|
4a49f2ff9b | ||
|
169c9b221c | ||
|
1b192ea45c | ||
|
a12460b09c | ||
|
e5801a4f19 | ||
|
f3e56cfa5c | ||
|
06ac22488e | ||
|
e7cde42923 | ||
|
728e5941f1 | ||
|
cad5e732df | ||
|
d55f1efd63 | ||
|
1787031cc6 | ||
|
8a2f28bc37 | ||
|
72e0dc4bd2 | ||
|
6813571015 | ||
|
c0397875f0 | ||
|
f330a00834 | ||
|
3f29c55479 | ||
|
149ff75d90 | ||
|
07db45a167 | ||
|
6cdd8096cd | ||
|
90d9eaf950 | ||
|
ee3cbd9884 | ||
|
b1d2581bf3 | ||
|
d1ce15bf18 | ||
|
94dd599f13 | ||
|
8b051c5b86 | ||
|
fd58875c31 | ||
|
b001bc382f | ||
|
e9f59d85b4 | ||
|
a04c60a85b | ||
|
1bd11775e9 | ||
|
eb4de37603 | ||
|
fdc28c0383 | ||
|
da6b41c34d | ||
|
7e1016da7e | ||
|
a29d4399a5 | ||
|
3b9faa5f31 | ||
|
c0c5e208bd | ||
|
ae2639aeb0 | ||
|
bd7b1f9496 | ||
|
12ad6496c2 | ||
|
a4a7fa69e8 | ||
|
f62f661d2b | ||
|
493fa7a0eb | ||
|
2df94807e0 | ||
|
39c0cb2015 | ||
|
63dccb4f3b | ||
|
c63d6fa1fb | ||
|
3f9c11f345 | ||
|
f2d183520d | ||
|
0b5ad7c94a | ||
|
ca99dc8a33 | ||
|
62e0c80a06 | ||
|
61f7f12d7f | ||
|
912d3e5055 | ||
|
51f227a13b | ||
|
83798ef963 | ||
|
0c045f3b11 | ||
|
242596744a | ||
|
d686d7aab2 | ||
|
e502d5d9a6 | ||
|
6c50c75220 | ||
|
136282d5b1 | ||
|
2614911631 | ||
|
48b54b402b | ||
|
49367824b0 | ||
|
273d2e6a63 | ||
|
62c07fa02c | ||
|
c76a9c1697 | ||
|
d69d734bc3 | ||
|
ae0552de12 | ||
|
29f17ede42 | ||
|
cec1630222 | ||
|
3cefdfb147 | ||
|
e4a19c98e5 | ||
|
c012d559b7 | ||
|
624e2ffb19 | ||
|
b7073cb104 | ||
|
8495536fd3 | ||
|
ec27c67940 | ||
|
c85161a4bb | ||
|
02dc13e38d | ||
|
b4e6656c42 | ||
|
3e947e4379 | ||
|
0c2b4d2d0c | ||
|
1c2988a709 | ||
|
b0cb694f81 | ||
|
a11c74d21c | ||
|
9d3b5c5bbb | ||
|
3663f22590 | ||
|
2d24eb1273 | ||
|
f8852856c6 | ||
|
e384669d85 | ||
|
7badf7783f | ||
|
31a0a049b1 | ||
|
94a2453861 | ||
|
c06c54d6b6 | ||
|
7ca2c9c009 | ||
|
4c4f3ff11d | ||
|
ce863015ce | ||
|
cc334bcc13 | ||
|
ac482b1389 | ||
|
a8b111dc8c | ||
|
4f829f11d8 | ||
|
56b1b9dec1 | ||
|
02c61d3fb5 | ||
|
13d3f4f1a7 | ||
|
ddc190ff3e | ||
|
3bae04c04a | ||
|
da7fcbcf83 | ||
|
f3772cb833 | ||
|
53c3e8946f | ||
|
6eece5b270 | ||
|
08f56660ab | ||
|
ffb11d6455 | ||
|
cceb1cd66c | ||
|
81234b3a5b | ||
|
ca3d441de0 | ||
|
ce0c514dae | ||
|
2b26f2b221 | ||
|
4860fae7c4 | ||
|
ffba01cabd | ||
|
a217ec220f | ||
|
fe3b05cc55 | ||
|
096a8fdd3d | ||
|
1dec87356f | ||
|
9ae418ddea | ||
|
dd148443b2 | ||
|
e7e8e485a0 | ||
|
f5c489e5f7 | ||
|
1deceaecdb | ||
|
6840e52d30 | ||
|
8c3fcf989e | ||
|
c0010140a3 | ||
|
c2c8df9e8e | ||
|
0511191e51 | ||
|
d0880095ea | ||
|
e0076c2475 | ||
|
8784b7d3b7 | ||
|
e375fa0e67 | ||
|
7b3c3d0dbb | ||
|
4d6bbbbe89 | ||
|
a588989d13 | ||
|
56067300e0 | ||
|
baa46634b5 | ||
|
93021a6028 | ||
|
26d71e214a | ||
|
e9d1de8fba | ||
|
330a9be787 | ||
|
4f2550ae92 | ||
|
5734a270d8 | ||
|
0882e1bf81 | ||
|
53db988525 | ||
|
ff9cf8fd2f | ||
|
8a5aad1ba0 | ||
|
2903a644f2 | ||
|
96363fb789 | ||
|
271b828be0 | ||
|
bd21f032d4 | ||
|
860df01902 | ||
|
ed84212c78 | ||
|
f790921785 | ||
|
3098ec140d | ||
|
725722d3f2 | ||
|
ea924642ce | ||
|
d62a9f69ae | ||
|
f33372411b | ||
|
f856142cdc | ||
|
2c24601155 | ||
|
b73485e7b3 | ||
|
b7076a13dc | ||
|
7b1724f6dd | ||
|
9768430d5c | ||
|
71bd4f457a | ||
|
9c79d23444 | ||
|
0dd1abb926 | ||
|
41bcdd7232 | ||
|
85cfa433d9 | ||
|
b8da53b3bb | ||
|
ad30ca8671 | ||
|
37f4cf11bd | ||
|
e88e874697 | ||
|
2e95d4f97c | ||
|
bfed447b21 | ||
|
f1bd9b2cf3 | ||
|
9b5fda2689 | ||
|
a5d076a28a | ||
|
05363dc8ca | ||
|
1cc26449f3 | ||
|
3deae1101c | ||
|
cf82486efa | ||
|
740591cd38 | ||
|
cb45056c1a | ||
|
0b535910d6 | ||
|
7fc9705f3a | ||
|
2dab6ed052 | ||
|
ff9e78be42 | ||
|
d60403545c | ||
|
c6a0a03bf2 | ||
|
87e661e3b5 | ||
|
bbb0036647 | ||
|
0d2fb8e3d0 | ||
|
0d1fb843b1 | ||
|
c40577c0a2 | ||
|
f2359ccac2 | ||
|
dbf3b76331 | ||
|
27d32188bf | ||
|
1a0f5bc939 | ||
|
682bb8bde0 | ||
|
30940cb937 | ||
|
7e26c4b6f2 | ||
|
b3557cc2f4 | ||
|
565e63353d | ||
|
7fff947f4f | ||
|
10701241b4 | ||
|
724e4f4e73 | ||
|
dd214909fd | ||
|
3670c49a6d | ||
|
38fd829425 | ||
|
c26f8059ff | ||
|
668b70beaa | ||
|
04df58ae30 | ||
|
fe2dd19132 | ||
|
1b12fe80c1 | ||
|
aaa9e5a57f | ||
|
d0dd78c5d0 | ||
|
d0dddd1508 | ||
|
93a3992451 | ||
|
e57ff91030 | ||
|
90ae7e5ba2 | ||
|
9f43cbe67d | ||
|
19dd110963 | ||
|
4e59421fd9 | ||
|
c336f5aeee | ||
|
5a6c5f1676 | ||
|
805f514f8b | ||
|
fd7b35709e | ||
|
08fbd55856 | ||
|
1c002596ec | ||
|
e396f6c092 | ||
|
354554e843 | ||
|
e82c7afdae | ||
|
6c0c5e5064 | ||
|
bd9c53a96c | ||
|
e0b77936c1 | ||
|
bc985aa1ef | ||
|
71b7edc6f2 | ||
|
bf67d2529f | ||
|
8de86e7480 | ||
|
77d3b7da04 | ||
|
f20513eb16 | ||
|
7b63f891c3 | ||
|
9f97579f9d | ||
|
10133bd20f | ||
|
7436c2e1f5 | ||
|
cba960fbd7 | ||
|
e903dac224 | ||
|
5373771566 | ||
|
fa7766f8a6 | ||
|
6fdb1216ba | ||
|
1af712910f | ||
|
01429b352a | ||
|
12ccf13171 | ||
|
c8595df658 | ||
|
87928b4e12 | ||
|
36b1c12b81 | ||
|
0d5b6efd5c | ||
|
437b93cc18 | ||
|
8606ac92e1 | ||
|
5e971346ef | ||
|
419673675c | ||
|
92d048f45a | ||
|
06f3c11010 | ||
|
02e7157206 | ||
|
4c4ef0d73e | ||
|
f26178fc21 | ||
|
a386a4762c | ||
|
c1a8bf828b | ||
|
6f384c799f | ||
|
0e504e9014 | ||
|
837590104d | ||
|
8eda089edc | ||
|
6952d17d16 | ||
|
fab0350ca1 | ||
|
54e8debc38 | ||
|
56986c3a77 | ||
|
5ee3eefe96 | ||
|
89a7d70849 | ||
|
5ee3ae5eea | ||
|
2cc864a63e | ||
|
48831aacbb | ||
|
46225a6268 | ||
|
547940cadd | ||
|
2c6115e090 | ||
|
89f91a2ecd | ||
|
b53615a8d7 | ||
|
4249a1237b | ||
|
e0c2dc0b2f | ||
|
b6258cf02f | ||
|
f79c4f3ad1 | ||
|
a345c6c8e5 | ||
|
c3ad7faa2c | ||
|
ea2c41b818 | ||
|
133fff1a8d | ||
|
6ccdde8394 | ||
|
0c9e318ae3 | ||
|
50d24a812b | ||
|
ebd0f8a5db | ||
|
53b1bec5db | ||
|
6f5d8d6ece | ||
|
d75d7a3695 | ||
|
25f4f2175a | ||
|
558317260b | ||
|
374445eed6 | ||
|
486968fdc2 | ||
|
76fa1bfee5 | ||
|
773da7dda9 | ||
|
83481ac329 | ||
|
cb60c177a0 | ||
|
c558baa036 | ||
|
52f88c4bb1 | ||
|
29a0e4700c | ||
|
11d1c2086d | ||
|
bde9718de4 | ||
|
45824eb2fd | ||
|
db89b98242 | ||
|
1ff7e16b19 | ||
|
1562d480ee | ||
|
9f054342d0 | ||
|
f2ee10b85f | ||
|
c007708b9c | ||
|
66060f8387 | ||
|
9600e9ef2e | ||
|
8d88e30588 | ||
|
7d259bdce8 | ||
|
9a932a1686 | ||
|
3208a0095a | ||
|
f5c0b9536e | ||
|
9db2c38b7b | ||
|
bc95beecc4 | ||
|
84083c0b97 | ||
|
dfdd0a28a9 | ||
|
c3fa1b3865 | ||
|
9373adfc86 | ||
|
c5cb5571d9 | ||
|
3f1b7bd22a | ||
|
f640c07343 | ||
|
f6cabfffd9 | ||
|
91b4dc1f97 | ||
|
32fcdad916 | ||
|
bfa2844a0b | ||
|
d20121603a | ||
|
9dec346cdc | ||
|
2892a5701a | ||
|
2ddc3b6d05 | ||
|
2085f7f17d | ||
|
256dfe1b58 | ||
|
882c58efdd | ||
|
9a32b77333 | ||
|
92ed663068 | ||
|
a96f2d5771 | ||
|
3c3c44b344 | ||
|
eb30b51d6b | ||
|
fcac1849c3 | ||
|
73e2f02c48 | ||
|
50466792c6 | ||
|
5909815182 | ||
|
384ddeb9fd | ||
|
e5e70f51d6 | ||
|
1e1c849099 | ||
|
64bd148463 | ||
|
175a6bac15 | ||
|
aad61cd2e4 | ||
|
684aaa982d | ||
|
b2b51e0c30 | ||
|
a4761173fc | ||
|
37c88636e1 | ||
|
815c6dbc6c | ||
|
b60125a4dc | ||
|
4ff47d9c8a | ||
|
2652ebec93 | ||
|
24ec771043 | ||
|
2b6b723811 | ||
|
e18b0819bf | ||
|
ca3aae540c | ||
|
5a60390338 | ||
|
67e15a42c0 | ||
|
ff7be665ec | ||
|
4a46289fda | ||
|
576ea2df55 | ||
|
695a2b3345 | ||
|
f4dca572c5 | ||
|
95a29b83fe | ||
|
f30dee14bc | ||
|
ec4b7b0417 | ||
|
905d6a32ed | ||
|
da9cfb6aaf | ||
|
6368ec446b | ||
|
787d1bb59c | ||
|
ea09d3ae73 | ||
|
ed6b2e3846 | ||
|
789746c276 | ||
|
4f7bbd6ada | ||
|
241d011d30 | ||
|
ed01f32393 | ||
|
ffa49870a9 | ||
|
e95380ac9e | ||
|
2c0d029dea | ||
|
b609c5ca10 | ||
|
8dd2ebf249 | ||
|
f08a3f7966 | ||
|
d17fdbb913 | ||
|
9fd6fe321d | ||
|
ef7b5a4418 | ||
|
c7de0523e7 | ||
|
61685d3e4a | ||
|
dd51293621 | ||
|
3f510087d0 | ||
|
4b2353b936 | ||
|
65d26f180f | ||
|
5bde84c059 | ||
|
7ea1f65fe3 | ||
|
764eadb696 | ||
|
195b34dfc9 | ||
|
bc77bf5fde | ||
|
a26cac7304 | ||
|
567c556b68 | ||
|
0ff8a14863 | ||
|
1ba4f59603 | ||
|
d80074fcda | ||
|
e4f65f8141 | ||
|
877dc93b00 | ||
|
e1f98c04d6 | ||
|
5de471d7a3 | ||
|
5887dce843 | ||
|
ac5f2fc240 | ||
|
48adaa4060 | ||
|
a267965ab5 | ||
|
f45ecaa0f7 | ||
|
fb1cdc888c | ||
|
c99459e07b | ||
|
abbfc1da84 | ||
|
8310f4619a | ||
|
f035eaa76e | ||
|
3da0bf788b | ||
|
3366386680 | ||
|
3429c3ef34 | ||
|
95e9d305d1 | ||
|
74f69b228f | ||
|
ee5dfba389 | ||
|
406dfaab85 | ||
|
d337ccd359 | ||
|
3f3db1abda | ||
|
a4c8a8f2f1 | ||
|
555cbe5f7d | ||
|
b063b25e8c | ||
|
8e2d82ea9a | ||
|
b29306b193 | ||
|
62f742bf66 | ||
|
913fb1e5dc | ||
|
14290abfcf | ||
|
7c888f6334 | ||
|
2d388f392f | ||
|
2b9f5c4298 | ||
|
648f97ba78 | ||
|
f2d2c0cb27 | ||
|
414d03599e | ||
|
c2d25c8564 | ||
|
ca2d36303c | ||
|
3146f5209b | ||
|
729d58018c | ||
|
6acc324a2a | ||
|
1122385a60 | ||
|
5a0c2c59a0 | ||
|
cbcf4bddf8 | ||
|
438a343750 | ||
|
8e661c308f | ||
|
b12b108ade | ||
|
0466d8a327 | ||
|
3fea73585c | ||
|
09488d3741 | ||
|
d0ddba9c4f | ||
|
637f76ac9a | ||
|
57cbd3a2af | ||
|
d46cb63dba | ||
|
0affe79a86 | ||
|
70e9adcd6c | ||
|
689e84055a | ||
|
d6450d2d88 | ||
|
ed517d1fa6 | ||
|
e4f7c383e0 | ||
|
4b801e5c90 | ||
|
903eda80f8 | ||
|
1101adf001 | ||
|
155f2aa0cb | ||
|
f07aa9f6f0 | ||
|
3efaa8e171 | ||
|
49239e6bf2 | ||
|
b224a8d626 | ||
|
301ecdf1f7 | ||
|
d7a729740e | ||
|
3191688044 | ||
|
a213338a22 | ||
|
ce23b80698 | ||
|
bc9ca3fd12 | ||
|
f0dc6e478d | ||
|
eb31174913 | ||
|
67edf66856 | ||
|
9178426ec1 | ||
|
a86f2e03cc | ||
|
6d40bd157f | ||
|
cc33c008ba | ||
|
b3d578d6b8 | ||
|
5e1d3e6c8d | ||
|
9736a8f571 | ||
|
dcb8aea292 | ||
|
cf98963cdb | ||
|
8c49609aa6 | ||
|
7341e5c47b | ||
|
8a47ef756a | ||
|
cf1a115c67 | ||
|
dd88ac597e | ||
|
82ad08aced | ||
|
e5663ec1c3 | ||
|
cf3abd6562 | ||
|
c74ea2dd16 | ||
|
4e4f72f241 | ||
|
dd13e1cb6d | ||
|
66abda63ee | ||
|
bd7b6d6495 | ||
|
e0a611a16e | ||
|
644803dcf3 | ||
|
8555b045e7 | ||
|
9338ec9805 | ||
|
8b7c8e3351 | ||
|
8c88140b3c | ||
|
637f2476e0 | ||
|
71d56108c2 | ||
|
8b7238e051 | ||
|
f6e34b9c8d | ||
|
297cc33456 | ||
|
4e0e39b0bd | ||
|
30d0e9c33b | ||
|
250af5657c | ||
|
ced70456c7 | ||
|
3747aa0dc8 | ||
|
270b2b703b | ||
|
9de41f1495 | ||
|
1bc5f3675c | ||
|
9e52c15b8f | ||
|
bc1dc3eab6 | ||
|
0e470f2e81 | ||
|
60554b08cb | ||
|
cc4ae34d22 | ||
|
3a589d7d54 | ||
|
52d9a11e20 | ||
|
d1ff3c605a | ||
|
aa3f13b2c4 | ||
|
ee156239b9 | ||
|
f1e8f846b9 | ||
|
fe5e4d6830 | ||
|
3abd68c153 | ||
|
851276978f | ||
|
96e29d4d10 | ||
|
71df1e61d4 | ||
|
c3f439ea72 | ||
|
3dadebe505 | ||
|
4657729e36 | ||
|
f541be4755 | ||
|
d0807b9239 | ||
|
d05e10e10a | ||
|
3db82e629b | ||
|
9680b044f9 | ||
|
250bd9c620 | ||
|
312d778c86 | ||
|
4e0c3a97bd | ||
|
34ee399f94 | ||
|
0ffc2af679 | ||
|
9954045d30 | ||
|
f111a84e17 | ||
|
096e52612e | ||
|
643b09a77c | ||
|
1437f6d41d | ||
|
006e2b5c0d | ||
|
21cbe52740 | ||
|
1930047ce1 | ||
|
c52be1f5b1 | ||
|
8c773b6d00 | ||
|
8c6c2dd5c2 | ||
|
c523e144b8 | ||
|
a12167077f | ||
|
746fb7719a | ||
|
361b0411c7 | ||
|
74d7e60380 | ||
|
85a6c8c6f2 | ||
|
dba8aaea16 | ||
|
bd91db66f8 | ||
|
7a667b513e | ||
|
a762179c32 | ||
|
22cce30e35 | ||
|
8206b534f9 | ||
|
3d68233723 | ||
|
57cedaeb69 | ||
|
be7b49b707 | ||
|
cf59c80100 | ||
|
99942c2714 | ||
|
438b456f8e | ||
|
4766bc709d | ||
|
220b1d86c0 | ||
|
ee737025f2 | ||
|
b09a00efda | ||
|
bfe6207a63 | ||
|
63bde230a3 | ||
|
7bbd91f2a9 | ||
|
3a2a916c2f | ||
|
d0b2c0693d | ||
|
73fd93148a | ||
|
df55c84167 | ||
|
2bc0f6c089 | ||
|
14cee226c5 | ||
|
de18f37849 | ||
|
d3ef5cc230 | ||
|
d6c20226bb | ||
|
72ecd1bbc9 | ||
|
b25f185d63 | ||
|
b49045ff15 | ||
|
7034d82259 | ||
|
a5ab1b4a8b | ||
|
ceec2018a7 | ||
|
055bf6d302 | ||
|
7d31cc9f55 | ||
|
59859ec02e | ||
|
bb7323a935 | ||
|
28c59e3290 | ||
|
35c528405d | ||
|
7a1dfef6d5 | ||
|
aa5270760e | ||
|
69beef4648 | ||
|
1a3ca7b1a0 | ||
|
6e5461f300 | ||
|
4d6c04baf9 | ||
|
fdb8743ad3 | ||
|
f4429d4c9c | ||
|
23c2682f8d | ||
|
765202e05a | ||
|
c580090f20 | ||
|
01533db4e0 | ||
|
d244f7324c | ||
|
88f7439880 | ||
|
6c94f1cd52 | ||
|
17d25e2597 | ||
|
a44c8dfca3 | ||
|
d0b1a7bfd1 | ||
|
f014866d06 | ||
|
c9c5483d22 | ||
|
40bfffae9d | ||
|
03440307ce | ||
|
242ef518b2 | ||
|
3132a7d463 | ||
|
a0bba91d67 | ||
|
6c84668611 | ||
|
53b703dcaf | ||
|
1acd8e1049 | ||
|
4a5f4849e5 | ||
|
11dded71ec | ||
|
440944decb | ||
|
041fcef1db | ||
|
9bbecbeed3 | ||
|
988afa4ebe | ||
|
6965c0c5ab | ||
|
a6752a0cf1 | ||
|
b9eb271aff | ||
|
3b3947d046 | ||
|
63d2886415 | ||
|
f76a6de10d | ||
|
8646cc441d | ||
|
ae93c07597 | ||
|
6f0a95b828 | ||
|
0d12dbbe7e | ||
|
a65e13970d | ||
|
4cd4cf1c51 | ||
|
139eb1708c | ||
|
2ed212aa11 | ||
|
f2952f2dee | ||
|
b5f6dc0034 | ||
|
7b830d1c1a | ||
|
a12c640984 | ||
|
a2f8fed63c | ||
|
febf01a2e6 | ||
|
32ded289fc | ||
|
516103e51b | ||
|
a00508e085 | ||
|
57554c5d36 | ||
|
d3e0184e74 | ||
|
8d0ac95bdc | ||
|
e71b09dfea | ||
|
4d19ccd0da | ||
|
1cfd238385 | ||
|
c9cd410636 | ||
|
f3b0205e17 | ||
|
b1722ebaec | ||
|
eb5aad7077 | ||
|
0754409394 | ||
|
4488061408 | ||
|
cbb80785f1 | ||
|
201873f5a7 | ||
|
a6904d2604 | ||
|
cba3c270f5 | ||
|
0953bc944d | ||
|
adacd55a05 | ||
|
540758d66b | ||
|
7e0a597c65 | ||
|
bbc756136c | ||
|
b4792c8a59 | ||
|
b8023d66de | ||
|
c12af5a800 | ||
|
9fbfe82044 | ||
|
18ab8a1279 | ||
|
635f975b6c | ||
|
e09b9a2ce0 | ||
|
b78de15228 | ||
|
5248a69fe2 | ||
|
06681fd115 | ||
|
3f5147ddce | ||
|
8973f3892a | ||
|
9dff4ff949 | ||
|
68d00e00d1 | ||
|
a2ae3af69d | ||
|
7c10a4cb21 | ||
|
637961bbb1 | ||
|
e99dc1d163 | ||
|
ab6a6b53c8 | ||
|
7c51174d7e | ||
|
14b21dc039 | ||
|
b163b42d3d | ||
|
81c64503f2 | ||
|
c56eb331db | ||
|
9d684bc021 | ||
|
0c6781e9ef | ||
|
f8c59f6b0c | ||
|
d31652e910 | ||
|
e78e192853 | ||
|
2a8c72bdcf | ||
|
46ccf4d73f | ||
|
a3815d7012 | ||
|
aa3a808d2c | ||
|
740ed89638 | ||
|
2673979ef8 | ||
|
95556d2551 | ||
|
3f944e9d36 | ||
|
b29191e892 | ||
|
58efe90f7d | ||
|
2890f41f30 | ||
|
4dbca7858c | ||
|
9456789047 | ||
|
c0614a9fb6 | ||
|
ea37029631 | ||
|
a20fd453d9 | ||
|
34d29dc9d7 | ||
|
03379a6636 | ||
|
19982e8d77 | ||
|
70e9f13ec2 | ||
|
58d10e901e | ||
|
61eb0d6b44 | ||
|
10d03e16af | ||
|
873fa2a210 | ||
|
098dee1aa7 | ||
|
6d1f9408c8 | ||
|
53ef97d949 | ||
|
980d59ab58 | ||
|
ae9711b7d1 | ||
|
b8ab1b5620 | ||
|
efc436c3f5 | ||
|
2b8dc13dca | ||
|
62e2f06e2a | ||
|
ab43f4cf14 | ||
|
f576f83339 | ||
|
e857407bc1 | ||
|
6f934e2d49 | ||
|
4050975a19 | ||
|
2ae4b87f2f | ||
|
b9045eb25f | ||
|
cb4720f6d5 | ||
|
e6444fe9c0 | ||
|
17b8d3c97b | ||
|
310ea99c44 | ||
|
75fabb1b0d | ||
|
20b1eaba9e | ||
|
4c58cc877f | ||
|
f0ad75a2b7 | ||
|
b70370b217 | ||
|
ca34b29b20 | ||
|
c12906971a | ||
|
b6aae0c7c1 | ||
|
381103383e | ||
|
d580d4cdb6 | ||
|
b0168dc633 | ||
|
a110c9ee50 | ||
|
d96ff6e527 | ||
|
341967bf3c | ||
|
da5db0ed15 | ||
|
c20500ab7a | ||
|
0c11778d33 | ||
|
c8a73a6ac8 | ||
|
79e8c5f38c | ||
|
d2ab9a2515 | ||
|
56715f13d4 | ||
|
a57162cf83 | ||
|
571d1a4816 | ||
|
b759f40c13 | ||
|
3d84a999e0 | ||
|
05e6a59a86 | ||
|
ab1db4de68 | ||
|
1c7f789928 | ||
|
27acb198ab | ||
|
c6ed280a6f | ||
|
a0528fe0ce | ||
|
279756bdfb | ||
|
d5f279ed8b | ||
|
e4212bd7db | ||
|
d1cef1bc5c | ||
|
43421e3eb9 | ||
|
304989f79c | ||
|
9fbc0cdd46 | ||
|
6e371b7d2d | ||
|
b3d8b1527c | ||
|
b699e9db3a | ||
|
0868686caa | ||
|
714f8b3a75 | ||
|
8cf8852aae | ||
|
dd991e759e | ||
|
501625c19d | ||
|
a9b970832e | ||
|
52477aa9d5 | ||
|
8c111fea13 | ||
|
02542950c8 | ||
|
0844310e57 | ||
|
a656b00329 | ||
|
d447d809f7 | ||
|
eb7154d42c | ||
|
a73fe9585f | ||
|
b58050f496 | ||
|
b0029f2dd3 | ||
|
93a34d953f | ||
|
31a1b09e34 | ||
|
bb16d77ec6 | ||
|
60dff395ca | ||
|
4a70ea8518 | ||
|
b3ffc4d76c | ||
|
1c0fe56329 | ||
|
c5fe9d4a18 | ||
|
4b3e36da91 | ||
|
5560694f54 | ||
|
1415504f84 | ||
|
42b3ecc0b6 | ||
|
f8d6511c59 | ||
|
fb1995e9c9 | ||
|
537331ccf6 | ||
|
6bdf237cc9 | ||
|
9ab2d1afb0 | ||
|
559af32ab6 | ||
|
d6fd32b5a0 | ||
|
f8881638f9 | ||
|
471bf853c8 | ||
|
7b4c165033 | ||
|
9458276a4e | ||
|
0dbbfab97d | ||
|
12a86e7d29 | ||
|
912de8286f | ||
|
fe0bca75f8 | ||
|
d9342707fd | ||
|
46fc0ac563 | ||
|
a4255525e0 | ||
|
c2d5908542 | ||
|
4be954eeeb | ||
|
9840731778 | ||
|
620bebc3a3 | ||
|
aa53105f17 | ||
|
4427156f0b | ||
|
9dba6d7c8c | ||
|
d092c83774 | ||
|
a2dee2193a | ||
|
023326a20d | ||
|
3ebcd8c1f4 | ||
|
763b60ee6b | ||
|
f436de1230 | ||
|
2d60e49205 | ||
|
49199bd5e2 | ||
|
d04e2b0f82 | ||
|
ee22dafbc9 | ||
|
dd81584076 | ||
|
ef84e6b78c | ||
|
3f2b5e9d12 | ||
|
5aeca1f81a | ||
|
d7dc5c812e | ||
|
e28f0d0713 | ||
|
7549cec45b | ||
|
6cbd39f3d3 | ||
|
40f0f59db1 | ||
|
225bf09251 | ||
|
02deb1bf19 | ||
|
e925a2c669 | ||
|
b7c8ae7c45 | ||
|
41a20bf4d0 | ||
|
af59a58157 | ||
|
a8f3bb1d4e | ||
|
5a43b76488 | ||
|
2477632e2b | ||
|
0209cc4969 | ||
|
eb12b1c99b | ||
|
f4b948af9d | ||
|
9349b1ae15 | ||
|
c9437f3c66 | ||
|
8835e4d25e | ||
|
821a561235 | ||
|
e2d6bf3d77 | ||
|
5bfb83985e | ||
|
a5467062a1 | ||
|
de9a6c6c34 | ||
|
78025ddc18 | ||
|
ac24bee0a6 | ||
|
9b6c57f5fd | ||
|
0a77b8f7d7 | ||
|
5811f1c77f | ||
|
fe8415d788 | ||
|
bc4ca1d33d | ||
|
c424a87d81 | ||
|
aa2c6e175b | ||
|
6b9381f5a3 | ||
|
e1dc05d5ed | ||
|
f5534363b9 | ||
|
eb2910401f | ||
|
205db447e6 | ||
|
b0ec6abbea | ||
|
cc951969de | ||
|
f1251140f5 | ||
|
62bc22a03a | ||
|
ce6efa1f72 | ||
|
53cd55df65 | ||
|
18bcc83a46 | ||
|
2f3bbab4c4 | ||
|
27419f0d33 | ||
|
492e842410 | ||
|
035b1ebedc | ||
|
fa3b440a22 | ||
|
deb4730d40 | ||
|
211c0c2dc5 | ||
|
451df7558d | ||
|
83a10c37a6 | ||
|
8795ddb3c2 | ||
|
cccfad03ce | ||
|
9ca7415f5a | ||
|
ae996ae197 | ||
|
59ac3b4f8b | ||
|
bec8b5f71e | ||
|
c06eca6936 | ||
|
ca907df94b | ||
|
2819957585 | ||
|
e5d3206b6f | ||
|
d759f26db6 | ||
|
8b47bf004e | ||
|
3746ede49a | ||
|
e66a0541be | ||
|
891709ef41 | ||
|
ebbfca4ffd | ||
|
3dccad9931 | ||
|
5eb64b43d3 | ||
|
ffb5edd2e4 | ||
|
bf30ff41de | ||
|
2f69740e9b | ||
|
6e11874027 | ||
|
1ef3e48ab6 | ||
|
8296665b36 | ||
|
b76b51265f | ||
|
f43a16ced4 | ||
|
b745ebe90a | ||
|
5d1f6e0bbe | ||
|
32462b9056 | ||
|
3c5bc7e6f2 | ||
|
e9bd9ed788 | ||
|
9eb4eb6dcf | ||
|
778462dfc8 | ||
|
212074470f | ||
|
183570dce9 | ||
|
ed8fd345ce | ||
|
d302fdc655 | ||
|
544c554444 | ||
|
5b3e3a7019 | ||
|
4ce6a25c70 | ||
|
bed2c221e3 | ||
|
0c1e439313 | ||
|
729d420c2c | ||
|
7d8bbd6d66 | ||
|
208bf6eb2e | ||
|
5c82bdba38 | ||
|
cf366f7a9c | ||
|
e4caf7be81 | ||
|
1a7c3cee5d | ||
|
21b92f7d15 | ||
|
ade6028a69 | ||
|
37dcb86e90 | ||
|
a23299de64 | ||
|
06d621cd3c | ||
|
7aa0e33506 | ||
|
404113bd1d | ||
|
227fb27a2e | ||
|
4578336245 | ||
|
a616ab9472 | ||
|
baaace855c | ||
|
6fa15e6ee9 | ||
|
24868a6c64 | ||
|
6c52e47e47 | ||
|
ac06ff5256 | ||
|
e5783afb11 | ||
|
8b5f86ec51 | ||
|
2d80a25fd6 | ||
|
47a909eaf4 | ||
|
9fd50b4e35 | ||
|
3a430efb02 | ||
|
15583a14aa | ||
|
2b7560b1e7 | ||
|
75d589bedd | ||
|
9f8d377181 | ||
|
035ef6b284 | ||
|
61b8358013 | ||
|
ae02eb18de | ||
|
4e068a10e4 | ||
|
af59f656b4 | ||
|
bfc58cbdcf | ||
|
f18cc5e53b | ||
|
f6016d7b55 | ||
|
74146f4f8e | ||
|
d0d75e79a5 | ||
|
21b41cd3f1 | ||
|
ec4ed88ee3 | ||
|
efe9832444 | ||
|
c53e36513a | ||
|
11df717cc7 | ||
|
d41d636dc9 | ||
|
4a383523e5 | ||
|
bc20ad5cf1 | ||
|
f4f9851edd | ||
|
144d6c99a6 | ||
|
365ec8ef72 | ||
|
e980f6bb2f | ||
|
b24b1a1884 | ||
|
48fc634825 | ||
|
9df8009ae3 | ||
|
d1a9df71a0 | ||
|
4ae6365034 | ||
|
c816b8f562 | ||
|
bda031496a | ||
|
c0f3f394ac | ||
|
87c1d69e26 | ||
|
e5ce77de34 | ||
|
52ed7c019b | ||
|
6dda30e97f | ||
|
b6d73d872b | ||
|
abee136867 | ||
|
327ac2e17b | ||
|
705788394b | ||
|
c1961d1fda | ||
|
e519561edf | ||
|
14ed4692dc | ||
|
022057dd6f | ||
|
eb0faa3484 | ||
|
47bc597b99 | ||
|
797dc9ccbb | ||
|
c253f6b06f | ||
|
3e116ad065 | ||
|
466260bc6a | ||
|
b0aae84727 | ||
|
7c76ba8184 | ||
|
b57dfee77e | ||
|
1809d02541 | ||
|
58a1c80334 | ||
|
a6bc730c32 | ||
|
21ef138e97 | ||
|
42e5dcd50a | ||
|
f559db62b9 | ||
|
a559ebad64 | ||
|
7e49bad411 | ||
|
725e56db08 | ||
|
559404f953 | ||
|
677c879979 | ||
|
a2b3839c46 | ||
|
88733784cd | ||
|
f9f885418a | ||
|
4be50101b3 | ||
|
43f5fa91d4 | ||
|
ae67e51d26 | ||
|
ff17941cee | ||
|
4e6bed87e4 | ||
|
b4bc56ff5c | ||
|
69ede523b6 | ||
|
859d47453c | ||
|
8bd094fa66 | ||
|
309a290cb8 | ||
|
5581b82ab4 | ||
|
39755b08ee | ||
|
48793f531c | ||
|
9cb43ce4c8 | ||
|
ba540eb861 | ||
|
d020d1f6e0 | ||
|
91daa1ab90 | ||
|
69e1808290 | ||
|
ed84e38a9b | ||
|
9c6fccab1d | ||
|
950c7f4a23 | ||
|
046699bc84 | ||
|
0590258d54 | ||
|
e121007d20 | ||
|
7436647571 | ||
|
dc4569db5a | ||
|
2f16a2ebd7 | ||
|
b8637ddaf2 | ||
|
a194213978 | ||
|
ee017b7302 | ||
|
5109f10833 | ||
|
14f974f07f | ||
|
59b2cfa52c | ||
|
dc9f6b866b | ||
|
2e71f38f00 | ||
|
71cc38fa78 | ||
|
8bb2f0584e | ||
|
24dc52e4f6 | ||
|
ee6eec041a | ||
|
69e4b6e8a4 | ||
|
1635c9730a | ||
|
0e44e32d2a | ||
|
210e0241d3 | ||
|
f0f64d8380 | ||
|
2167564812 | ||
|
3f2755b67c | ||
|
d138306b08 | ||
|
46ba0eec9f | ||
|
893e6e3962 | ||
|
fbe098f54b | ||
|
c4bddadebb | ||
|
8bebcc93e7 | ||
|
7fd9ca03be | ||
|
9118b26d2f | ||
|
00280ccb86 | ||
|
3f710ef4c0 | ||
|
38644f0aa2 | ||
|
ac153c80d5 | ||
|
87339fb0ee | ||
|
a5c500cccd | ||
|
c01998ddd3 | ||
|
9e055d9793 | ||
|
f209ae26bc | ||
|
ae635e2b0a | ||
|
50cdbaf041 | ||
|
a3af73261c | ||
|
ba7aa3513b | ||
|
097f05af57 | ||
|
e5af7e6109 | ||
|
7cb143e970 | ||
|
f1da5a1c7c | ||
|
50268540c3 | ||
|
d6ecc7d330 | ||
|
5c7b248ed2 | ||
|
f9476f12af | ||
|
2b8783b489 | ||
|
3b93d6b08c | ||
|
021041fc2e | ||
|
406fd0d8d5 | ||
|
d3a761a73a | ||
|
28d4573124 | ||
|
c266842da9 | ||
|
504fd95b26 | ||
|
995f1973c7 | ||
|
d0502c4f6b | ||
|
f1da77fb6b | ||
|
00d1233512 | ||
|
3365c10fe3 | ||
|
c85847df57 | ||
|
b012a0ff75 | ||
|
e2006f9dc6 | ||
|
c551b9e0bb | ||
|
2fc691eed2 | ||
|
813b48df6a | ||
|
52dd4bc454 | ||
|
99ff097fc3 | ||
|
3993d2d4f2 | ||
|
3fa9fc5b7b | ||
|
cbed5be810 | ||
|
38ce3ebed7 | ||
|
8089e972a5 | ||
|
93615ddba9 | ||
|
b500364322 | ||
|
93f36db43c | ||
|
2097f4e6c2 | ||
|
eae2a51a2d | ||
|
b33537fd6e | ||
|
7650e43362 | ||
|
b26aba9fc0 | ||
|
f609bfaf10 | ||
|
f8ad024f1b | ||
|
54c3b4192e | ||
|
d4090c4b0a | ||
|
80e80e07b3 | ||
|
33c2184c52 | ||
|
d24c94d0f9 | ||
|
85e4b5eb49 | ||
|
7e49760da0 | ||
|
cd5aad9a31 | ||
|
2c1dc053ed | ||
|
bcfb121215 | ||
|
304c89a56d | ||
|
53b3f54808 | ||
|
03499b5309 | ||
|
6bb7d5faaa | ||
|
1f7311a428 | ||
|
05119bcf90 | ||
|
02b8b1f5b1 | ||
|
d21137d910 | ||
|
4473af85b1 | ||
|
6523ca5afe | ||
|
d15269a4bd | ||
|
846242217b | ||
|
f95c4ae088 | ||
|
f854e9cf1c | ||
|
b53b0a0093 | ||
|
948aa1a141 | ||
|
aad18ebec7 | ||
|
6a79d022c3 | ||
|
6649aaca2e | ||
|
e97ce33ed9 | ||
|
d00b54929f | ||
|
0cb9f6be10 | ||
|
a4e1a5bbcb | ||
|
e46578a087 | ||
|
c0bac69733 | ||
|
5ad596c3bc | ||
|
a144b1f7b5 | ||
|
f110bf34fa | ||
|
688c167166 | ||
|
49fa34e997 | ||
|
fe4abbbeef | ||
|
324cdc4db1 | ||
|
326641a7e5 | ||
|
711e607fca | ||
|
389273d56a | ||
|
09c0ca10e5 | ||
|
ed902fc42a | ||
|
c5173dde71 | ||
|
8bfb7a6e0c | ||
|
0db07011b1 | ||
|
91d28658fc | ||
|
0afdcb35f1 | ||
|
2805772d0a | ||
|
3ba29b4ea9 | ||
|
5b761ef7d1 | ||
|
aebfef8fa9 | ||
|
7d67c79d29 | ||
|
543a638e87 | ||
|
0d708bc35a | ||
|
e9e3d129ba | ||
|
99477914df | ||
|
9296cab4fc | ||
|
188d2d57c0 | ||
|
74a1c226a4 | ||
|
8692f05e34 | ||
|
427eb5e249 | ||
|
5253f9708c | ||
|
edfd1b2fe0 | ||
|
08d0787cc9 | ||
|
6d05f5b993 | ||
|
533895cb38 | ||
|
336697a38c | ||
|
182fc84186 | ||
|
0b064f647a | ||
|
ef93d9e625 | ||
|
dc8711be30 | ||
|
10c7f5b989 | ||
|
6af8041fb4 | ||
|
9d5ef01ce0 | ||
|
5533c2acae | ||
|
57bb723bac | ||
|
7f89e33037 | ||
|
32cf645c5f | ||
|
d49bdbe016 | ||
|
32c1fd9c85 | ||
|
1bff219197 | ||
|
dace959d69 | ||
|
3812162f4f | ||
|
4b157f7915 | ||
|
4eeb47dc56 | ||
|
6bc825b0bc | ||
|
36451e5410 | ||
|
6e53ab2bcf | ||
|
629623f720 | ||
|
555d24fea5 | ||
|
1773a361d1 | ||
|
758e8f7fb6 | ||
|
67f238069a | ||
|
5b2629ba00 | ||
|
981e6b65b0 | ||
|
515c9be2d9 | ||
|
f5348d6c9d | ||
|
e4ac5f6c13 | ||
|
669a5f9815 | ||
|
7f86f512ed | ||
|
ab8d365c10 | ||
|
c97e384790 | ||
|
5f848093b9 | ||
|
4c44a5e108 | ||
|
da35c9b6bd | ||
|
c8c7f23298 | ||
|
c828326755 | ||
|
c33a4710fe | ||
|
891622d64b | ||
|
3b73adf3c5 | ||
|
8b1b771ae6 | ||
|
f6d31f15f1 | ||
|
e2692ec604 | ||
|
01149c8d45 | ||
|
930e6f4e9b | ||
|
504e1e31bd | ||
|
2d620e2ddf | ||
|
75838fda2a | ||
|
d50df9537c | ||
|
4589b882c0 | ||
|
3ddbe7e69b | ||
|
1eeb97ec51 | ||
|
e16c5d07e5 | ||
|
f01e2460e1 | ||
|
628f530633 | ||
|
0b9be11d85 | ||
|
a557c05890 | ||
|
5886dc1cbc | ||
|
de5a02b02a |
2
.gitattributes
vendored
2
.gitattributes
vendored
@@ -1 +1,3 @@
|
||||
**/snapshots/**/*.png filter=lfs diff=lfs merge=lfs -text
|
||||
**/src/androidTest/assets/*.realm filter=lfs diff=lfs merge=lfs -text
|
||||
**/matrix-rust-sdk-crypto.aar filter=lfs diff=lfs merge=lfs -text
|
||||
|
2
.github/ISSUE_TEMPLATE/bug.yml
vendored
2
.github/ISSUE_TEMPLATE/bug.yml
vendored
@@ -1,5 +1,5 @@
|
||||
name: Bug report for the Element Android app
|
||||
description: Report any issues that you have found with the Element app. Please [check open issues](https://github.com/vector-im/element-android/issues) first, in case it has already been reported.
|
||||
description: Report any issues that you have found with the Element app. Please check open issues first, in case it has already been reported.
|
||||
labels: [T-Defect]
|
||||
body:
|
||||
- type: markdown
|
||||
|
8
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
8
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
blank_issues_enabled: true
|
||||
contact_links:
|
||||
- name: Enhancement or feature request
|
||||
url: https://github.com/element-hq/element-meta/discussions/categories/ideas
|
||||
about: Do you have a suggestion or feature request?
|
||||
- name: Element Android Community Support
|
||||
url: https://matrix.to/#/#element-android:matrix.org
|
||||
about: General Element Android support questions can be asked in the app Matrix room
|
47
.github/ISSUE_TEMPLATE/enhancement.yml
vendored
47
.github/ISSUE_TEMPLATE/enhancement.yml
vendored
@@ -1,47 +0,0 @@
|
||||
name: Enhancement request
|
||||
description: Do you have a suggestion or feature request?
|
||||
labels: [T-Enhancement]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thank you for taking the time to propose an enhancement to an existing feature. If you would like to propose a new feature or a major cross-platform change, please [start a discussion here](https://github.com/vector-im/element-meta/discussions/new?category=ideas).
|
||||
- type: textarea
|
||||
id: usecase
|
||||
attributes:
|
||||
label: Your use case
|
||||
description: Please feel welcome to include screenshots or mock ups.
|
||||
placeholder: Tell us what you would like to do!
|
||||
value: |
|
||||
#### What would you like to do?
|
||||
|
||||
#### Why would you like to do it?
|
||||
|
||||
#### How would you like to achieve it?
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: alternative
|
||||
attributes:
|
||||
label: Have you considered any alternatives?
|
||||
placeholder: A clear and concise description of any alternative solutions or features you've considered.
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
id: additional-context
|
||||
attributes:
|
||||
label: Additional context
|
||||
placeholder: Is there anything else you'd like to add?
|
||||
validations:
|
||||
required: false
|
||||
- type: dropdown
|
||||
id: pr
|
||||
attributes:
|
||||
label: Are you willing to provide a PR?
|
||||
description: |
|
||||
Don't worry, it's still OK to answer 'No' :).
|
||||
options:
|
||||
- 'Yes'
|
||||
- 'No'
|
||||
validations:
|
||||
required: true
|
2
.github/ISSUE_TEMPLATE/matrix-sdk.yml
vendored
2
.github/ISSUE_TEMPLATE/matrix-sdk.yml
vendored
@@ -1,5 +1,5 @@
|
||||
name: Matrix SDK bug or enhancement
|
||||
description: Report issue or ask for a feature in the [Android Matrix SDK](https://github.com/matrix-org/matrix-android-sdk2)
|
||||
description: "Report issue or ask for a feature in the Android Matrix SDK: https://github.com/matrix-org/matrix-android-sdk2"
|
||||
title: "[SDK] "
|
||||
labels: [matrix-sdk]
|
||||
|
||||
|
58
.github/ISSUE_TEMPLATE/release.yml
vendored
58
.github/ISSUE_TEMPLATE/release.yml
vendored
@@ -10,7 +10,6 @@ body:
|
||||
id: checklist
|
||||
attributes:
|
||||
label: Release checklist
|
||||
description: For the template example, we are releasing the version 1.2.3. Replace 1.2.3 with the version in the issue body.
|
||||
placeholder: |
|
||||
If you are reading this, you have deleted the content of the release template: undo the deletion or start again.
|
||||
value: |
|
||||
@@ -20,31 +19,11 @@ body:
|
||||
- [ ] Check the update of the store descriptions (using Google Translate if necessary) to ensure that the changes are acceptable to be published to the stores.
|
||||
- [ ] While Weblate is locked, and after the PR from Weblate has been merged, handle all the TODOs in the main `strings.xml` file
|
||||
- [ ] Run the script `./tools/release/pushPlayStoreMetaData.sh`. You can check in the GooglePlay console the Activity log to check the effect.
|
||||
- [ ] Ensure all [the required PRs](https://github.com/vector-im/element-android/pulls?q=is%3Aopen+is%3Apr+label%3AZ-NextRelease) have been merged
|
||||
- [ ] Ensure all [the required PRs](https://github.com/element-hq/element-android/pulls?q=is%3Aopen+is%3Apr+label%3AZ-NextRelease) have been merged
|
||||
|
||||
### Do the release
|
||||
|
||||
- [ ] Make sure `develop` and `main` are up to date and create a release with gitflow: `git checkout main; git pull; git checkout develop; git pull; git flow release start '1.2.3'`
|
||||
- [ ] Check the crashes from the PlayStore
|
||||
- [ ] Check the rageshake with the current dev version: https://github.com/matrix-org/element-android-rageshakes/labels/1.2.3-dev
|
||||
- [ ] Run the integration test, and especially `UiAllScreensSanityTest.allScreensTest()`
|
||||
- [ ] Create an account on matrix.org and do some smoke tests that the sanity test does not cover like: 1-1 call, 1-1 video call, Jitsi call for instance
|
||||
- [ ] Run towncrier: `towncrier build --version v1.2.3 --draft` (remove `--draft` do write the file CHANGES.md)
|
||||
- [ ] Check the file CHANGES.md consistency. It's possible to reorder items (most important changes first) or change their section if relevant. Also an opportunity to fix some typo, or rewrite things
|
||||
- [ ] Add file for fastlane under ./fastlane/metadata/android/en-US/changelogs
|
||||
- [ ] (optional) Push the branch and start a draft PR (will not be merged), to check that the CI is happy with all the changes.
|
||||
- [ ] Finish release with gitflow, delete the draft PR (if created): `git flow release finish '1.2.3'`
|
||||
- [ ] Push `main` and the new tag `v1.2.3` to origin: `git push origin main; git push origin 'v1.2.3'`
|
||||
- [ ] Checkout `develop`: `git checkout develop`
|
||||
- [ ] Increase version (versionPatch + 2) in `./vector/build.gradle`
|
||||
- [ ] Change the value of SDK_VERSION in the file `./matrix-sdk-android/build.gradle`
|
||||
- [ ] Commit and push `develop`: `git commit -m 'version++'; git push origin develop`
|
||||
- [ ] Wait for [Buildkite](https://buildkite.com/matrix-dot-org/element-android/builds?branch=main) to build the `main` branch.
|
||||
- [ ] Run the script `~/scripts/releaseElement.sh`. It will download the APKs from Buildkite check them and sign them.
|
||||
- [ ] Install the APK on your phone to check that the upgrade went well (no init sync, etc.)
|
||||
- [ ] Create the release on gitHub [from the tag](https://github.com/vector-im/element-android/tags), copy paste the block from the file CHANGES.md
|
||||
- [ ] Add the 4 signed APKs to the GitHub release
|
||||
- [ ] Ping the Android Internal room
|
||||
- [ ] Run the script ./tools/release/releaseScript.sh and follow the steps.
|
||||
|
||||
### Once tested and validated internally
|
||||
|
||||
@@ -81,29 +60,9 @@ body:
|
||||
|
||||
The SDK2 and the sample app are released only when Element has been pushed to production.
|
||||
|
||||
- [ ] Checkout the `main` branch on Element Android project
|
||||
- [ ] On the [SDK2 project](https://github.com/matrix-org/matrix-android-sdk2), run the script ./tools/releaseScript.sh and follow the instructions.
|
||||
|
||||
#### On the SDK2 project
|
||||
|
||||
https://github.com/matrix-org/matrix-android-sdk2
|
||||
|
||||
- [ ] Create a release with GitFlow
|
||||
- [ ] Update the value of VERSION_NAME in the file gradle.properties
|
||||
- [ ] Update the files `./build.gradle` and `./gradle/gradle-wrapper.properties` manually, to use the latest version for the dependency. You can get inspired by the same files on Element Android project.
|
||||
- [ ] Run the script `./tools/import_from_element.sh`
|
||||
- [ ] Check the diff in the file `./matrix-sdk-android/build.gradle` and restore what may have been erased (in particular the line `apply plugin: "com.vanniktech.maven.publish"` and the line about the version)
|
||||
- [ ] Let the script finish to build the library
|
||||
- [ ] Update the file `CHANGES.md`
|
||||
- [ ] Finish the release using GitFlow
|
||||
- [ ] Push the branch `main`, the new tag and the branch `develop` to origin
|
||||
|
||||
##### Release on MavenCentral
|
||||
|
||||
- [ ] Checkout the branch `main`
|
||||
- [ ] Run the command `./gradlew publish --no-daemon --no-parallel`. You'll need some non-public element to do so
|
||||
- [ ] Run the command `./gradlew closeAndReleaseRepository`. If it is working well, you can jump directly to the final step of this section.
|
||||
|
||||
If `./gradlew closeAndReleaseRepository` fails (for instance, several repositories are waiting to be handled), you have to close and release the repository manually. Do the following steps:
|
||||
Note: if the step `./gradlew closeAndReleaseRepository` fails (for instance, several repositories are waiting to be handled), you have to close and release the repository manually. Do the following steps:
|
||||
|
||||
- [ ] Connect to https://s01.oss.sonatype.org
|
||||
- [ ] Click on Staging Repositories and check the the files have been uploaded
|
||||
@@ -111,15 +70,6 @@ body:
|
||||
- [ ] Wait (check Activity tab until step "Repository closed" is displayed)
|
||||
- [ ] Click on release. The staging repository will disappear
|
||||
|
||||
Final step
|
||||
|
||||
- [ ] Check that the release is available in https://repo1.maven.org/maven2/org/matrix/android/matrix-android-sdk2/ (it can take a few minutes)
|
||||
|
||||
##### Release on GitHub
|
||||
|
||||
- [ ] Create the release on GitHub from [the tag](https://github.com/matrix-org/matrix-android-sdk2/tags)
|
||||
- [ ] Upload the AAR on the GitHub release
|
||||
|
||||
### Android SDK2 sample
|
||||
|
||||
https://github.com/matrix-org/matrix-android-sdk2-sample
|
||||
|
8
.github/PULL_REQUEST_TEMPLATE.md
vendored
8
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -1,4 +1,4 @@
|
||||
<!-- Please read [CONTRIBUTING.md](https://github.com/vector-im/element-android/blob/develop/CONTRIBUTING.md) before submitting your pull request -->
|
||||
<!-- Please read [CONTRIBUTING.md](https://github.com/element-hq/element-android/blob/develop/CONTRIBUTING.md) before submitting your pull request -->
|
||||
|
||||
## Type of change
|
||||
|
||||
@@ -49,10 +49,10 @@ Uncomment this markdown table below and edit the last line `|||`:
|
||||
|
||||
- [ ] Changes has been tested on an Android device or Android emulator with API 21
|
||||
- [ ] UI change has been tested on both light and dark themes
|
||||
- [ ] Accessibility has been taken into account. See https://github.com/vector-im/element-android/blob/develop/CONTRIBUTING.md#accessibility
|
||||
- [ ] Accessibility has been taken into account. See https://github.com/element-hq/element-android/blob/develop/CONTRIBUTING.md#accessibility
|
||||
- [ ] Pull request is based on the develop branch
|
||||
- [ ] Pull request includes a new file under ./changelog.d. See https://github.com/vector-im/element-android/blob/develop/CONTRIBUTING.md#changelog
|
||||
- [ ] Pull request includes a new file under ./changelog.d. See https://github.com/element-hq/element-android/blob/develop/CONTRIBUTING.md#changelog
|
||||
- [ ] Pull request includes screenshots or videos if containing UI changes
|
||||
- [ ] Pull request includes a [sign off](https://matrix-org.github.io/synapse/latest/development/contributing_guide.html#sign-off)
|
||||
- [ ] You've made a self review of your PR
|
||||
- [ ] If you have modified the screen flow, or added new screens to the application, you have updated the test [UiAllScreensSanityTest.allScreensTest()](https://github.com/vector-im/element-android/blob/main/vector/src/androidTest/java/im/vector/app/ui/UiAllScreensSanityTest.kt#L73)
|
||||
- [ ] If you have modified the screen flow, or added new screens to the application, you have updated the test [UiAllScreensSanityTest.allScreensTest()](https://github.com/element-hq/element-android/blob/main/vector/src/androidTest/java/im/vector/app/ui/UiAllScreensSanityTest.kt#L73)
|
||||
|
13
.github/dependabot.yml
vendored
13
.github/dependabot.yml
vendored
@@ -1,7 +1,7 @@
|
||||
# To get started with Dependabot version updates, you'll need to specify which
|
||||
# package ecosystems to update and where the package manifests are located.
|
||||
# Please see the documentation for all configuration options:
|
||||
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
||||
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
||||
|
||||
version: 2
|
||||
updates:
|
||||
@@ -11,9 +11,9 @@ updates:
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
reviewers:
|
||||
- "vector-im/element-android-reviewers"
|
||||
- "element-hq/element-android-reviewers"
|
||||
ignore:
|
||||
- dependency-name: "*github-script*"
|
||||
- dependency-name: "*"
|
||||
# Updates for Gradle dependencies used in the app
|
||||
- package-ecosystem: gradle
|
||||
directory: "/"
|
||||
@@ -21,6 +21,7 @@ updates:
|
||||
interval: "daily"
|
||||
open-pull-requests-limit: 200
|
||||
reviewers:
|
||||
- "vector-im/element-android-reviewers"
|
||||
ignore:
|
||||
- dependency-name: com.google.zxing:core
|
||||
- "element-hq/element-android-reviewers"
|
||||
allow:
|
||||
- dependency-name: "io.element.android:wysiwyg"
|
||||
- dependency-name: "org.matrix.rustcomponents:crypto-android"
|
||||
|
52
.github/workflows/build.yml
vendored
52
.github/workflows/build.yml
vendored
@@ -7,7 +7,7 @@ on:
|
||||
|
||||
# Enrich gradle.properties for CI/CD
|
||||
env:
|
||||
GRADLE_OPTS: -Dorg.gradle.jvmargs="-Xmx3072m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError" -Dkotlin.daemon.jvm.options="-Xmx2560m" -Dkotlin.incremental=false
|
||||
GRADLE_OPTS: -Dorg.gradle.jvmargs="-Xmx3072m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:MaxMetaspaceSize=1g" -Dkotlin.daemon.jvm.options="-Xmx2560m" -Dkotlin.incremental=false
|
||||
CI_GRADLE_ARG_PROPERTIES: --stacktrace -PpreDexEnable=false --max-workers 2 --no-daemon
|
||||
|
||||
jobs:
|
||||
@@ -24,15 +24,19 @@ jobs:
|
||||
group: ${{ github.ref == 'refs/heads/develop' && format('integration-tests-develop-{0}-{1}', matrix.target, github.sha) || format('build-debug-{0}-{1}', matrix.target, github.ref) }}
|
||||
cancel-in-progress: true
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/cache@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
# https://github.com/actions/checkout/issues/881
|
||||
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
|
||||
- name: Use JDK 21
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: 'temurin' # See 'Supported distributions' for available options
|
||||
java-version: '21'
|
||||
- name: Configure gradle
|
||||
uses: gradle/actions/setup-gradle@v3
|
||||
with:
|
||||
cache-read-only: ${{ github.ref != 'refs/heads/develop' }}
|
||||
- name: Assemble ${{ matrix.target }} debug apk
|
||||
run: ./gradlew assemble${{ matrix.target }}Debug $CI_GRADLE_ARG_PROPERTIES
|
||||
- name: Upload ${{ matrix.target }} debug APKs
|
||||
@@ -49,15 +53,19 @@ jobs:
|
||||
group: ${{ github.ref == 'refs/head/main' && format('build-release-apk-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('build-release-apk-develop-{0}', github.sha) || format('build-debug-{0}', github.ref) }}
|
||||
cancel-in-progress: ${{ github.ref != 'refs/head/main' }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/cache@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
# https://github.com/actions/checkout/issues/881
|
||||
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.ref }}
|
||||
- name: Use JDK 21
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: 'temurin' # See 'Supported distributions' for available options
|
||||
java-version: '21'
|
||||
- name: Configure gradle
|
||||
uses: gradle/actions/setup-gradle@v3
|
||||
with:
|
||||
cache-read-only: ${{ github.ref != 'refs/heads/develop' }}
|
||||
- name: Assemble GPlay unsigned apk
|
||||
run: ./gradlew clean assembleGplayRelease $CI_GRADLE_ARG_PROPERTIES
|
||||
- name: Upload Gplay unsigned APKs
|
||||
@@ -81,7 +89,8 @@ jobs:
|
||||
- name: Execute exodus-standalone
|
||||
uses: docker://exodusprivacy/exodus-standalone:latest
|
||||
with:
|
||||
args: /github/workspace/gplay/release/vector-gplay-universal-release-unsigned.apk -j -o /github/workspace/exodus.json
|
||||
# Don't fail when finding trackers so they can be reported later
|
||||
args: /github/workspace/gplay/release/vector-gplay-universal-release-unsigned.apk -j -o /github/workspace/exodus.json -e 0
|
||||
- name: Upload exodus json report
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
@@ -89,4 +98,9 @@ jobs:
|
||||
path: |
|
||||
exodus.json
|
||||
- name: Check for trackers
|
||||
run: "jq -e '.trackers == []' exodus.json > /dev/null || { echo '::error static analysis identified user tracking library' ; exit 1; }"
|
||||
env:
|
||||
SENTRY_ID: 447
|
||||
# Should only contain a Sentry item
|
||||
run: |
|
||||
TRACKER_IDS=$(jq ".trackers[] | .id" exodus.json)
|
||||
[ $TRACKER_IDS = ${{ env.SENTRY_ID }} ] || { echo '::error static analysis identified user tracking library' ; exit 1; }
|
||||
|
6
.github/workflows/danger.yml
vendored
6
.github/workflows/danger.yml
vendored
@@ -7,13 +7,13 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
name: Danger
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- run: |
|
||||
npm install --save-dev @babel/plugin-transform-flow-strip-types
|
||||
- name: Danger
|
||||
uses: danger/danger-js@11.1.4
|
||||
uses: danger/danger-js@11.2.6
|
||||
with:
|
||||
args: "--dangerfile tools/danger/dangerfile.js"
|
||||
args: "--dangerfile ./tools/danger/dangerfile.js"
|
||||
env:
|
||||
DANGER_GITHUB_API_TOKEN: ${{ secrets.DANGER_GITHUB_API_TOKEN }}
|
||||
# Fallback for forks
|
||||
|
2
.github/workflows/docs.yml
vendored
2
.github/workflows/docs.yml
vendored
@@ -10,7 +10,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Build docs
|
||||
run: ./gradlew dokkaHtml
|
||||
|
@@ -10,5 +10,5 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
# No concurrency required, this is a prerequisite to other actions and should run every time.
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- uses: gradle/wrapper-validation-action@v1
|
||||
|
20
.github/workflows/nightly.yml
vendored
20
.github/workflows/nightly.yml
vendored
@@ -1,12 +1,13 @@
|
||||
name: Build and release nightly APK
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
# Every nights at 4
|
||||
- cron: "0 4 * * *"
|
||||
|
||||
env:
|
||||
GRADLE_OPTS: -Dorg.gradle.jvmargs="-Xmx3072m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError" -Dkotlin.daemon.jvm.options="-Xmx2560m" -Dkotlin.incremental=false
|
||||
GRADLE_OPTS: -Dorg.gradle.jvmargs="-Xmx6g -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:MaxMetaspaceSize=1g" -Dkotlin.incremental=false -XX:+UseG1GC
|
||||
CI_GRADLE_ARG_PROPERTIES: --stacktrace -PpreDexEnable=false --max-workers 2 --no-daemon
|
||||
|
||||
jobs:
|
||||
@@ -14,19 +15,20 @@ jobs:
|
||||
name: Build and publish nightly Gplay APK to Firebase
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Python 3.8
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: 3.8
|
||||
- uses: actions/cache@v3
|
||||
- name: Use JDK 21
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
distribution: 'temurin' # See 'Supported distributions' for available options
|
||||
java-version: '21'
|
||||
- name: Configure gradle
|
||||
uses: gradle/actions/setup-gradle@v3
|
||||
with:
|
||||
cache-read-only: ${{ github.ref != 'refs/heads/develop' }}
|
||||
- name: Install towncrier
|
||||
run: |
|
||||
python3 -m pip install towncrier
|
||||
|
28
.github/workflows/post-pr.yml
vendored
28
.github/workflows/post-pr.yml
vendored
@@ -16,7 +16,7 @@ env:
|
||||
jobs:
|
||||
|
||||
# More info on should-i-run:
|
||||
# If this fails to run (the IF doesn't complete) then the needs will not be satisfied for any of the
|
||||
# If this fails to run (the IF doesn't complete) then the needs will not be satisfied for any of the
|
||||
# other jobs below, so none will run.
|
||||
# except for the notification job at the bottom which will run all the time, unless should-i-run isn't
|
||||
# successful, or all the other jobs have succeeded
|
||||
@@ -27,41 +27,39 @@ jobs:
|
||||
if: github.event.pull_request.merged # Additionally require PR to have been completely merged.
|
||||
steps:
|
||||
- run: echo "Run those tests!" # no-op success
|
||||
|
||||
|
||||
ui-tests:
|
||||
name: UI Tests (Synapse)
|
||||
needs: should-i-run
|
||||
runs-on: buildjet-4vcpu-ubuntu-2204
|
||||
timeout-minutes: 90 # We might need to increase it if the time for tests grows
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
api-level: [ 28 ]
|
||||
# No concurrency required, runs every time on a schedule.
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Python 3.8
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: 3.8
|
||||
- uses: actions/cache@v3
|
||||
- name: Use JDK 21
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
distribution: 'temurin' # See 'Supported distributions' for available options
|
||||
java-version: '21'
|
||||
- name: Configure gradle
|
||||
uses: gradle/actions/setup-gradle@v3
|
||||
with:
|
||||
cache-read-only: ${{ github.ref != 'refs/heads/develop' }}
|
||||
- name: Start synapse server
|
||||
uses: michaelkaye/setup-matrix-synapse@v1.0.4
|
||||
uses: michaelkaye/setup-matrix-synapse@v1.0.5
|
||||
with:
|
||||
uploadLogs: true
|
||||
httpPort: 8080
|
||||
disableRateLimiting: true
|
||||
public_baseurl: "http://10.0.2.2:8080/"
|
||||
- uses: actions/setup-java@v3
|
||||
with:
|
||||
distribution: 'adopt'
|
||||
java-version: '11'
|
||||
- name: Run sanity tests on API ${{ matrix.api-level }}
|
||||
uses: reactivecircus/android-emulator-runner@v2
|
||||
with:
|
||||
|
41
.github/workflows/quality.yml
vendored
41
.github/workflows/quality.yml
vendored
@@ -7,7 +7,7 @@ on:
|
||||
|
||||
# Enrich gradle.properties for CI/CD
|
||||
env:
|
||||
GRADLE_OPTS: -Dorg.gradle.jvmargs="-Xmx3072m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError" -XX:MaxPermSize=512m -Dkotlin.daemon.jvm.options="-Xmx2g" -Dkotlin.incremental=false
|
||||
GRADLE_OPTS: -Dorg.gradle.jvmargs="-Xmx3072m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:MaxMetaspaceSize=1g" -Dkotlin.daemon.jvm.options="-Xmx2560m" -Dkotlin.incremental=false
|
||||
CI_GRADLE_ARG_PROPERTIES: --stacktrace -PpreDexEnable=false --max-workers 2 --no-daemon
|
||||
|
||||
jobs:
|
||||
@@ -15,7 +15,7 @@ jobs:
|
||||
name: Project Check Suite
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Run code quality check suite
|
||||
run: ./tools/check/check_code_quality.sh
|
||||
|
||||
@@ -24,7 +24,16 @@ jobs:
|
||||
name: Knit
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Use JDK 21
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: 'temurin' # See 'Supported distributions' for available options
|
||||
java-version: '21'
|
||||
- name: Configure gradle
|
||||
uses: gradle/actions/setup-gradle@v3
|
||||
with:
|
||||
cache-read-only: ${{ github.ref != 'refs/heads/develop' }}
|
||||
- name: Run knit
|
||||
run: |
|
||||
./gradlew knitCheck $CI_GRADLE_ARG_PROPERTIES
|
||||
@@ -38,7 +47,16 @@ jobs:
|
||||
group: ${{ github.ref == 'refs/heads/main' && format('lint-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('lint-develop-{0}', github.sha) || format('lint-{0}', github.ref) }}
|
||||
cancel-in-progress: true
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Use JDK 21
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: 'temurin' # See 'Supported distributions' for available options
|
||||
java-version: '21'
|
||||
- name: Configure gradle
|
||||
uses: gradle/actions/setup-gradle@v3
|
||||
with:
|
||||
cache-read-only: ${{ github.ref != 'refs/heads/develop' }}
|
||||
- name: Run ktlint
|
||||
run: |
|
||||
./gradlew ktlintCheck $CI_GRADLE_ARG_PROPERTIES --continue
|
||||
@@ -66,9 +84,9 @@ jobs:
|
||||
yarn add danger-plugin-lint-report --dev
|
||||
- name: Danger lint
|
||||
if: always()
|
||||
uses: danger/danger-js@11.1.4
|
||||
uses: danger/danger-js@11.2.6
|
||||
with:
|
||||
args: "--dangerfile tools/danger/dangerfile-lint.js"
|
||||
args: "--dangerfile ./tools/danger/dangerfile-lint.js"
|
||||
env:
|
||||
DANGER_GITHUB_API_TOKEN: ${{ secrets.DANGER_GITHUB_API_TOKEN }}
|
||||
# Fallback for forks
|
||||
@@ -83,7 +101,16 @@ jobs:
|
||||
group: ${{ github.ref == 'refs/heads/main' && format('dep-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('dep-develop-{0}', github.sha) || format('dep-{0}', github.ref) }}
|
||||
cancel-in-progress: true
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Use JDK 21
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: 'temurin' # See 'Supported distributions' for available options
|
||||
java-version: '21'
|
||||
- name: Configure gradle
|
||||
uses: gradle/actions/setup-gradle@v3
|
||||
with:
|
||||
cache-read-only: ${{ github.ref != 'refs/heads/develop' }}
|
||||
- name: Dependency analysis
|
||||
run: ./gradlew dependencyCheckAnalyze $CI_GRADLE_ARG_PROPERTIES
|
||||
- name: Upload dependency analysis
|
||||
|
37
.github/workflows/sync-from-external-sources.yml
vendored
37
.github/workflows/sync-from-external-sources.yml
vendored
@@ -1,5 +1,6 @@
|
||||
name: Sync Data From External Sources
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
# At 00:00 on every Monday UTC
|
||||
- cron: '0 0 * * 1'
|
||||
@@ -8,10 +9,10 @@ jobs:
|
||||
sync-emojis:
|
||||
runs-on: ubuntu-latest
|
||||
# Skip in forks
|
||||
if: github.repository == 'vector-im/element-android'
|
||||
if: github.repository == 'element-hq/element-android'
|
||||
# No concurrency required, runs every time on a schedule.
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Python 3.8
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
@@ -23,7 +24,7 @@ jobs:
|
||||
- name: Run Emoji script
|
||||
run: ./tools/import_emojis.py
|
||||
- name: Create Pull Request for Emojis
|
||||
uses: peter-evans/create-pull-request@v4
|
||||
uses: peter-evans/create-pull-request@v5
|
||||
with:
|
||||
commit-message: Sync Emojis
|
||||
title: Sync Emojis
|
||||
@@ -35,10 +36,10 @@ jobs:
|
||||
sync-sas-strings:
|
||||
runs-on: ubuntu-latest
|
||||
# Skip in forks
|
||||
if: github.repository == 'vector-im/element-android'
|
||||
if: github.repository == 'element-hq/element-android'
|
||||
# No concurrency required, runs every time on a schedule.
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Python 3.8
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
@@ -49,7 +50,7 @@ jobs:
|
||||
- name: Run SAS String script
|
||||
run: ./tools/import_sas_strings.py
|
||||
- name: Create Pull Request for SAS Strings
|
||||
uses: peter-evans/create-pull-request@v4
|
||||
uses: peter-evans/create-pull-request@v5
|
||||
with:
|
||||
commit-message: Sync SAS Strings
|
||||
title: Sync SAS Strings
|
||||
@@ -57,27 +58,3 @@ jobs:
|
||||
- Update SAS Strings from matrix-doc.
|
||||
branch: sync-sas-strings
|
||||
base: develop
|
||||
|
||||
sync-analytics-plan:
|
||||
runs-on: ubuntu-latest
|
||||
# Skip in forks
|
||||
if: github.repository == 'vector-im/element-android'
|
||||
# No concurrency required, runs every time on a schedule.
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Run analytics import script
|
||||
run: ./tools/import_analytic_plan.sh
|
||||
- name: Create Pull Request for analytics plan
|
||||
uses: peter-evans/create-pull-request@v4
|
||||
with:
|
||||
commit-message: Sync analytics plan
|
||||
title: Sync analytics plan
|
||||
body: |
|
||||
### Update analytics plan
|
||||
Reviewers:
|
||||
- [ ] Please remove usage of Event or Enum which may have been removed or updated
|
||||
- [ ] please ensure new Events or new Enums are used to send analytics by pushing new commit(s) to this PR.
|
||||
|
||||
*Note*: Change are coming from [this project](https://github.com/matrix-org/matrix-analytics-events)
|
||||
branch: sync-analytics-plan
|
||||
base: develop
|
52
.github/workflows/tests.yml
vendored
52
.github/workflows/tests.yml
vendored
@@ -4,6 +4,8 @@ on:
|
||||
pull_request: { }
|
||||
push:
|
||||
branches: [ main, develop ]
|
||||
paths-ignore:
|
||||
- '.github/**'
|
||||
|
||||
# Enrich gradle.properties for CI/CD
|
||||
env:
|
||||
@@ -14,6 +16,7 @@ jobs:
|
||||
tests:
|
||||
name: Runs all tests
|
||||
runs-on: buildjet-4vcpu-ubuntu-2204
|
||||
timeout-minutes: 90 # We might need to increase it if the time for tests grows
|
||||
strategy:
|
||||
matrix:
|
||||
api-level: [28]
|
||||
@@ -22,15 +25,17 @@ jobs:
|
||||
group: ${{ github.ref == 'refs/heads/main' && format('unit-tests-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('unit-tests-develop-{0}', github.sha) || format('unit-tests-{0}', github.ref) }}
|
||||
cancel-in-progress: true
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
lfs: true
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-java@v3
|
||||
- name: Use JDK 21
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: 'adopt'
|
||||
java-version: '11'
|
||||
- uses: gradle/gradle-build-action@v2
|
||||
distribution: 'temurin' # See 'Supported distributions' for available options
|
||||
java-version: '21'
|
||||
- name: Configure gradle
|
||||
uses: gradle/actions/setup-gradle@v3
|
||||
with:
|
||||
cache-read-only: ${{ github.ref != 'refs/heads/develop' }}
|
||||
gradle-home-cache-cleanup: ${{ github.ref == 'refs/heads/develop' }}
|
||||
@@ -50,7 +55,7 @@ jobs:
|
||||
- uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: 3.8
|
||||
- uses: michaelkaye/setup-matrix-synapse@v1.0.4
|
||||
- uses: michaelkaye/setup-matrix-synapse@v1.0.5
|
||||
with:
|
||||
uploadLogs: true
|
||||
httpPort: 8080
|
||||
@@ -108,7 +113,7 @@ jobs:
|
||||
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
||||
ORG_GRADLE_PROJECT_SONAR_LOGIN: ${{ secrets.SONAR_TOKEN }}
|
||||
if: ${{ always() && env.GITHUB_TOKEN != '' && env.SONAR_TOKEN != '' && env.ORG_GRADLE_PROJECT_SONAR_LOGIN != '' }}
|
||||
run: ./gradlew sonarqube $CI_GRADLE_ARG_PROPERTIES
|
||||
run: ./gradlew sonar $CI_GRADLE_ARG_PROPERTIES
|
||||
|
||||
- name: Format unit test results
|
||||
if: always()
|
||||
@@ -126,26 +131,23 @@ jobs:
|
||||
# Unneeded as part of the test suite above, kept around in case we want to re-enable them.
|
||||
#
|
||||
# # Build Android Tests
|
||||
# build-android-tests:
|
||||
# name: Build Android Tests
|
||||
# runs-on: ubuntu-latest
|
||||
# build-android-tests:
|
||||
# name: Build Android Tests
|
||||
# runs-on: ubuntu-latest
|
||||
# concurrency:
|
||||
# group: ${{ github.ref == 'refs/heads/main' && format('unit-tests-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('unit-tests-develop-{0}', github.sha) || format('build-android-tests-{0}', github.ref) }}
|
||||
# cancel-in-progress: true
|
||||
# steps:
|
||||
# - uses: actions/checkout@v3
|
||||
# - uses: actions/setup-java@v3
|
||||
# with:
|
||||
# distribution: 'adopt'
|
||||
# java-version: 11
|
||||
# - uses: actions/cache@v3
|
||||
# with:
|
||||
# path: |
|
||||
# ~/.gradle/caches
|
||||
# ~/.gradle/wrapper
|
||||
# key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
# restore-keys: |
|
||||
# ${{ runner.os }}-gradle-
|
||||
# - name: Build Android Tests
|
||||
# steps:
|
||||
# - uses: actions/checkout@v4
|
||||
# - name: Use JDK 21
|
||||
# uses: actions/setup-java@v4
|
||||
# with:
|
||||
# distribution: 'temurin' # See 'Supported distributions' for available options
|
||||
# java-version: '21'
|
||||
# - name: Configure gradle
|
||||
# uses: gradle/actions/setup-gradle@v3
|
||||
# with:
|
||||
# cache-read-only: ${{ github.ref != 'refs/heads/develop' }}
|
||||
# - name: Build Android Tests
|
||||
# run: ./gradlew clean assembleAndroidTest $CI_GRADLE_ARG_PROPERTIES
|
||||
|
||||
|
17
.github/workflows/triage-incoming.yml
vendored
17
.github/workflows/triage-incoming.yml
vendored
@@ -1,17 +0,0 @@
|
||||
name: Move new issues onto Issue triage board
|
||||
|
||||
on:
|
||||
issues:
|
||||
types: [opened]
|
||||
|
||||
jobs:
|
||||
automate-project-columns:
|
||||
runs-on: ubuntu-latest
|
||||
# Skip in forks
|
||||
if: github.repository == 'vector-im/element-android'
|
||||
steps:
|
||||
- uses: alex-page/github-project-automation-plus@1f8873e97e3c8f58161a323b7c568c1f623a1c4d
|
||||
with:
|
||||
project: Issue triage
|
||||
column: Incoming
|
||||
repo-token: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
314
.github/workflows/triage-labelled.yml
vendored
314
.github/workflows/triage-labelled.yml
vendored
@@ -17,7 +17,8 @@ jobs:
|
||||
contains(github.event.issue.labels.*.name, 'Z-IA') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Themes-Custom') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Tags')
|
||||
contains(github.event.issue.labels.*.name, 'A-Tags') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Rich-Text-Editor')
|
||||
steps:
|
||||
- uses: actions/github-script@v5
|
||||
with:
|
||||
@@ -46,25 +47,12 @@ jobs:
|
||||
labels: ['Help Wanted']
|
||||
})
|
||||
|
||||
move_needs_info_issues:
|
||||
name: X-Needs-Info issues to Need info column on triage board
|
||||
runs-on: ubuntu-latest
|
||||
# Skip in forks
|
||||
if: github.repository == 'vector-im/element-android'
|
||||
steps:
|
||||
- uses: konradpabjan/move-labeled-or-milestoned-issue@219d384e03fa4b6460cd24f9f37d19eb033a4338
|
||||
with:
|
||||
action-token: "${{ secrets.ELEMENT_BOT_TOKEN }}"
|
||||
project-url: "https://github.com/vector-im/element-android/projects/4"
|
||||
column-name: "Need info"
|
||||
label-name: "X-Needs-Info"
|
||||
|
||||
add_design_issues_to_project:
|
||||
name: X-Needs-Design to Design project board
|
||||
runs-on: ubuntu-latest
|
||||
# Skip in forks
|
||||
if: >
|
||||
github.repository == 'vector-im/element-android' &&
|
||||
github.repository == 'element-hq/element-android' &&
|
||||
contains(github.event.issue.labels.*.name, 'X-Needs-Design') &&
|
||||
(contains(github.event.issue.labels.*.name, 'S-Critical') &&
|
||||
(contains(github.event.issue.labels.*.name, 'O-Frequent') ||
|
||||
@@ -73,301 +61,19 @@ jobs:
|
||||
contains(github.event.issue.labels.*.name, 'O-Frequent')) ||
|
||||
contains(github.event.issue.labels.*.name, 'A11y'))
|
||||
steps:
|
||||
- uses: octokit/graphql-action@v2.x
|
||||
id: add_to_project
|
||||
- uses: actions/add-to-project@main
|
||||
with:
|
||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||
query: |
|
||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
||||
item {
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
||||
projectid: ${{ env.PROJECT_ID }}
|
||||
contentid: ${{ github.event.issue.node_id }}
|
||||
env:
|
||||
PROJECT_ID: "PN_kwDOAM0swc0sUA"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
project-url: https://github.com/orgs/element-hq/projects/18
|
||||
github-token: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
add_product_issues:
|
||||
name: X-Needs-Product to Design project board
|
||||
name: X-Needs-Product to Product project board
|
||||
runs-on: ubuntu-latest
|
||||
if: >
|
||||
contains(github.event.issue.labels.*.name, 'X-Needs-Product')
|
||||
steps:
|
||||
- uses: octokit/graphql-action@v2.x
|
||||
id: add_to_project
|
||||
- uses: actions/add-to-project@main
|
||||
with:
|
||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||
query: |
|
||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
||||
item {
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
||||
projectid: ${{ env.PROJECT_ID }}
|
||||
contentid: ${{ github.event.issue.node_id }}
|
||||
env:
|
||||
PROJECT_ID: "PN_kwDOAM0swc4AAg6N"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
project-url: https://github.com/orgs/element-hq/projects/28
|
||||
github-token: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
delight_issues_to_board:
|
||||
name: Spaces issues to Delight project board
|
||||
runs-on: ubuntu-latest
|
||||
# Skip in forks
|
||||
if: >
|
||||
github.repository == 'vector-im/element-android' &&
|
||||
(contains(github.event.issue.labels.*.name, 'Team: Delight') ||
|
||||
contains(github.event.issue.labels.*.name, 'Z-AppLayout'))
|
||||
steps:
|
||||
- uses: octokit/graphql-action@v2.x
|
||||
with:
|
||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||
query: |
|
||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
||||
item {
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
||||
projectid: ${{ env.PROJECT_ID }}
|
||||
contentid: ${{ github.event.issue.node_id }}
|
||||
env:
|
||||
PROJECT_ID: "PN_kwDOAM0swc1HvQ"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
move_voice-message_issues:
|
||||
name: A-Voice Messages to voice message board
|
||||
runs-on: ubuntu-latest
|
||||
# Skip in forks
|
||||
if: >
|
||||
github.repository == 'vector-im/element-android' &&
|
||||
contains(github.event.issue.labels.*.name, 'A-Voice Messages')
|
||||
steps:
|
||||
- uses: octokit/graphql-action@v2.x
|
||||
with:
|
||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||
query: |
|
||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
||||
item {
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
||||
projectid: ${{ env.PROJECT_ID }}
|
||||
contentid: ${{ github.event.issue.node_id }}
|
||||
env:
|
||||
PROJECT_ID: "PN_kwDOAM0swc2KCw"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
move_message_bubbles_issues:
|
||||
name: A-Message-Bubbles to Message bubbles board
|
||||
runs-on: ubuntu-latest
|
||||
# Skip in forks
|
||||
if: >
|
||||
github.repository == 'vector-im/element-android' &&
|
||||
contains(github.event.issue.labels.*.name, 'A-Message-Bubbles')
|
||||
steps:
|
||||
- uses: octokit/graphql-action@v2.x
|
||||
with:
|
||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||
query: |
|
||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
||||
item {
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
||||
projectid: ${{ env.PROJECT_ID }}
|
||||
contentid: ${{ github.event.issue.node_id }}
|
||||
env:
|
||||
PROJECT_ID: "PN_kwDOAM0swc3m-g"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
move_ftue_issues:
|
||||
name: Z-FTUE to Mobile FTUE board
|
||||
runs-on: ubuntu-latest
|
||||
# Skip in forks
|
||||
if: >
|
||||
github.repository == 'vector-im/element-android' &&
|
||||
contains(github.event.issue.labels.*.name, 'Z-FTUE')
|
||||
steps:
|
||||
- uses: octokit/graphql-action@v2.x
|
||||
with:
|
||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||
query: |
|
||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
||||
item {
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
||||
projectid: ${{ env.PROJECT_ID }}
|
||||
contentid: ${{ github.event.issue.node_id }}
|
||||
env:
|
||||
PROJECT_ID: "PN_kwDOAM0swc4AAqVx"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
move_WTF_issues:
|
||||
name: Z-WTF to WTF board
|
||||
runs-on: ubuntu-latest
|
||||
# Skip in forks
|
||||
if: >
|
||||
github.repository == 'vector-im/element-android' &&
|
||||
contains(github.event.issue.labels.*.name, 'Z-WTF')
|
||||
steps:
|
||||
- uses: octokit/graphql-action@v2.x
|
||||
with:
|
||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||
query: |
|
||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
||||
item {
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
||||
projectid: ${{ env.PROJECT_ID }}
|
||||
contentid: ${{ github.event.issue.node_id }}
|
||||
env:
|
||||
PROJECT_ID: "PN_kwDOAM0swc4AArk0"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
move_element_x_issues:
|
||||
name: ElementX issues to ElementX project board
|
||||
runs-on: ubuntu-latest
|
||||
# Skip in forks
|
||||
if: >
|
||||
github.repository == 'vector-im/element-android' &&
|
||||
(contains(github.event.issue.labels.*.name, 'Z-BBQ-Alpha') ||
|
||||
contains(github.event.issue.labels.*.name, 'Z-BBQ-Beta') ||
|
||||
contains(github.event.issue.labels.*.name, 'Z-BBQ-Release') ||
|
||||
contains(github.event.issue.labels.*.name, 'Z-Banquet-Alpha') ||
|
||||
contains(github.event.issue.labels.*.name, 'Z-Banquet-Beta') ||
|
||||
contains(github.event.issue.labels.*.name, 'Z-Banquet-Release'))
|
||||
steps:
|
||||
- uses: octokit/graphql-action@v2.x
|
||||
with:
|
||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||
query: |
|
||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
||||
item {
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
||||
projectid: ${{ env.PROJECT_ID }}
|
||||
contentid: ${{ github.event.issue.node_id }}
|
||||
env:
|
||||
PROJECT_ID: "PN_kwDOAM0swc4ABTXY"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
ps_features1:
|
||||
name: Add labelled issues to PS features team 1
|
||||
runs-on: ubuntu-latest
|
||||
if: >
|
||||
contains(github.event.issue.labels.*.name, 'A-Polls') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Location-Sharing') ||
|
||||
(contains(github.event.issue.labels.*.name, 'A-Voice-Messages') &&
|
||||
!contains(github.event.issue.labels.*.name, 'A-Broadcast')) ||
|
||||
(contains(github.event.issue.labels.*.name, 'A-Session-Mgmt') &&
|
||||
contains(github.event.issue.labels.*.name, 'A-User-Settings'))
|
||||
steps:
|
||||
- uses: octokit/graphql-action@v2.x
|
||||
id: add_to_project
|
||||
with:
|
||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||
query: |
|
||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
||||
item {
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
||||
projectid: ${{ env.PROJECT_ID }}
|
||||
contentid: ${{ github.event.issue.node_id }}
|
||||
env:
|
||||
PROJECT_ID: "PVT_kwDOAM0swc4AHJKF"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
ps_features2:
|
||||
name: Add labelled issues to PS features team 2
|
||||
runs-on: ubuntu-latest
|
||||
if: >
|
||||
contains(github.event.issue.labels.*.name, 'A-DM-Start') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Broadcast')
|
||||
steps:
|
||||
- uses: octokit/graphql-action@v2.x
|
||||
id: add_to_project
|
||||
with:
|
||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||
query: |
|
||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
||||
item {
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
||||
projectid: ${{ env.PROJECT_ID }}
|
||||
contentid: ${{ github.event.issue.node_id }}
|
||||
env:
|
||||
PROJECT_ID: "PVT_kwDOAM0swc4AHJKd"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
ps_features3:
|
||||
name: Add labelled issues to PS features team 3
|
||||
runs-on: ubuntu-latest
|
||||
if: >
|
||||
contains(github.event.issue.labels.*.name, 'A-Rich-Text-Editor')
|
||||
steps:
|
||||
- uses: octokit/graphql-action@v2.x
|
||||
id: add_to_project
|
||||
with:
|
||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||
query: |
|
||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
||||
item {
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
||||
projectid: ${{ env.PROJECT_ID }}
|
||||
contentid: ${{ github.event.issue.node_id }}
|
||||
env:
|
||||
PROJECT_ID: "PVT_kwDOAM0swc4AHJKW"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
voip:
|
||||
name: Add labelled issues to VoIP project board
|
||||
runs-on: ubuntu-latest
|
||||
if: >
|
||||
contains(github.event.issue.labels.*.name, 'Team: VoIP')
|
||||
steps:
|
||||
- uses: octokit/graphql-action@v2.x
|
||||
id: add_to_project
|
||||
with:
|
||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||
query: |
|
||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||
addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) {
|
||||
item {
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
||||
projectid: ${{ env.PROJECT_ID }}
|
||||
contentid: ${{ github.event.issue.node_id }}
|
||||
env:
|
||||
PROJECT_ID: "PVT_kwDOAM0swc4ABMIk"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
@@ -8,7 +8,7 @@ jobs:
|
||||
name: Move PRs asking for design review to the design board
|
||||
runs-on: ubuntu-latest
|
||||
# Skip in forks
|
||||
if: github.repository == 'vector-im/element-android'
|
||||
if: github.repository == 'element-hq/element-android'
|
||||
steps:
|
||||
- uses: octokit/graphql-action@v2.x
|
||||
id: find_team_members
|
||||
@@ -16,7 +16,7 @@ jobs:
|
||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||
query: |
|
||||
query find_team_members($team: String!) {
|
||||
organization(login: "vector-im") {
|
||||
organization(login: "element-hq") {
|
||||
team(slug: $team) {
|
||||
members {
|
||||
nodes {
|
||||
@@ -69,7 +69,7 @@ jobs:
|
||||
projectid: ${{ env.PROJECT_ID }}
|
||||
contentid: ${{ github.event.pull_request.node_id }}
|
||||
env:
|
||||
PROJECT_ID: "PN_kwDOAM0swc0sUA"
|
||||
PROJECT_ID: "PVT_kwDOAM0swc0sUA"
|
||||
TEAM: "design"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
@@ -77,7 +77,7 @@ jobs:
|
||||
name: Move PRs asking for product review to the product board
|
||||
runs-on: ubuntu-latest
|
||||
# Skip in forks
|
||||
if: github.repository == 'vector-im/element-android'
|
||||
if: github.repository == 'element-hq/element-android'
|
||||
steps:
|
||||
- uses: octokit/graphql-action@v2.x
|
||||
id: find_team_members
|
||||
@@ -85,7 +85,7 @@ jobs:
|
||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||
query: |
|
||||
query find_team_members($team: String!) {
|
||||
organization(login: "vector-im") {
|
||||
organization(login: "element-hq") {
|
||||
team(slug: $team) {
|
||||
members {
|
||||
nodes {
|
||||
@@ -138,6 +138,6 @@ jobs:
|
||||
projectid: ${{ env.PROJECT_ID }}
|
||||
contentid: ${{ github.event.pull_request.node_id }}
|
||||
env:
|
||||
PROJECT_ID: "PN_kwDOAM0swc4AAg6N"
|
||||
PROJECT_ID: "PVT_kwDOAM0swc4AAg6N"
|
||||
TEAM: "product"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
8
.github/workflows/triage-priority-bugs.yml
vendored
8
.github/workflows/triage-priority-bugs.yml
vendored
@@ -9,7 +9,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
# Skip in forks
|
||||
if: >
|
||||
github.repository == 'vector-im/element-android' &&
|
||||
github.repository == 'element-hq/element-android' &&
|
||||
(!contains(github.event.issue.labels.*.name, 'A-E2EE') &&
|
||||
!contains(github.event.issue.labels.*.name, 'A-E2EE-Cross-Signing') &&
|
||||
!contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') &&
|
||||
@@ -24,7 +24,7 @@ jobs:
|
||||
contains(github.event.issue.labels.*.name, 'A11y') &&
|
||||
contains(github.event.issue.labels.*.name, 'O-Frequent'))
|
||||
steps:
|
||||
- uses: alex-page/github-project-automation-plus@1f8873e97e3c8f58161a323b7c568c1f623a1c4d
|
||||
- uses: alex-page/github-project-automation-plus@7ffb872c64bd809d23563a130a0a97d01dfa8f43
|
||||
with:
|
||||
project: Android App Team
|
||||
column: Important Issues & Topics (P1)
|
||||
@@ -34,7 +34,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
# Skip in forks
|
||||
if: >
|
||||
github.repository == 'vector-im/element-android' &&
|
||||
github.repository == 'element-hq/element-android' &&
|
||||
(contains(github.event.issue.labels.*.name, 'Z-UISI') ||
|
||||
(contains(github.event.issue.labels.*.name, 'A-E2EE') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-E2EE-Cross-Signing') ||
|
||||
@@ -50,7 +50,7 @@ jobs:
|
||||
contains(github.event.issue.labels.*.name, 'A11y') &&
|
||||
contains(github.event.issue.labels.*.name, 'O-Frequent')))
|
||||
steps:
|
||||
- uses: alex-page/github-project-automation-plus@1f8873e97e3c8f58161a323b7c568c1f623a1c4d
|
||||
- uses: alex-page/github-project-automation-plus@7ffb872c64bd809d23563a130a0a97d01dfa8f43
|
||||
with:
|
||||
project: Crypto Team
|
||||
column: Ready
|
||||
|
62
.github/workflows/triage-unlabelled.yml
vendored
62
.github/workflows/triage-unlabelled.yml
vendored
@@ -1,62 +0,0 @@
|
||||
name: Move unlabelled from needs info columns to triaged
|
||||
|
||||
on:
|
||||
issues:
|
||||
types: [unlabeled]
|
||||
|
||||
jobs:
|
||||
Move_Unabeled_Issue_On_Project_Board:
|
||||
name: Move no longer X-Needs-Info issues to Triaged
|
||||
runs-on: ubuntu-latest
|
||||
# Skip in forks
|
||||
if: >
|
||||
github.repository == 'vector-im/element-android' &&
|
||||
!contains(github.event.issue.labels.*.name, 'X-Needs-Info')
|
||||
env:
|
||||
BOARD_NAME: "Issue triage"
|
||||
OWNER: ${{ github.repository_owner }}
|
||||
REPO: ${{ github.event.repository.name }}
|
||||
ISSUE: ${{ github.event.issue.number }}
|
||||
steps:
|
||||
- name: Check if issue is already in "${{ env.BOARD_NAME }}"
|
||||
run: |
|
||||
if curl -i -H 'Content-Type: application/json' -H "Authorization: bearer ${{ secrets.GITHUB_TOKEN }}" -X POST -d '{"query": "query($issue: Int!, $owner: String!, $repo: String!) { repository(owner: $owner, name: $repo) { issue(number: $issue) { projectCards { nodes { project { name } } } } } } ", "variables" : "{ \"issue\": '${ISSUE}', \"owner\": \"'${OWNER}'\", \"repo\": \"'${REPO}'\" }" }' https://api.github.com/graphql | grep "\b$BOARD_NAME\b"; then
|
||||
echo "Issue is already in Project '$BOARD_NAME', proceeding";
|
||||
echo "ALREADY_IN_BOARD=true" >> $GITHUB_ENV
|
||||
else
|
||||
echo "Issue is not in project '$BOARD_NAME', cancelling this workflow"
|
||||
echo "ALREADY_IN_BOARD=false" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Move issue
|
||||
uses: alex-page/github-project-automation-plus@1f8873e97e3c8f58161a323b7c568c1f623a1c4d
|
||||
if: ${{ env.ALREADY_IN_BOARD == 'true' }}
|
||||
with:
|
||||
project: Issue triage
|
||||
column: Triaged
|
||||
repo-token: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
remove_Z-Labs_label:
|
||||
name: Remove Z-Labs label when features behind labs flags are removed
|
||||
runs-on: ubuntu-latest
|
||||
if: >
|
||||
!(contains(github.event.issue.labels.*.name, 'A-Maths') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Message-Pinning') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Threads') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Polls') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Location-Sharing') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Message-Bubbles') ||
|
||||
contains(github.event.issue.labels.*.name, 'Z-IA') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Themes-Custom') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Tags')) &&
|
||||
contains(github.event.issue.labels.*.name, 'Z-Labs')
|
||||
steps:
|
||||
- uses: actions/github-script@v5
|
||||
with:
|
||||
script: |
|
||||
github.rest.issues.removeLabel({
|
||||
issue_number: context.issue.number,
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
name: ['Z-Labs']
|
||||
})
|
4
.github/workflows/update-gradle-wrapper.yml
vendored
4
.github/workflows/update-gradle-wrapper.yml
vendored
@@ -9,12 +9,12 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Update Gradle Wrapper
|
||||
uses: gradle-update/update-gradle-wrapper-action@v1
|
||||
# Skip in forks
|
||||
if: github.repository == 'vector-im/element-android'
|
||||
if: github.repository == 'element-hq/element-android'
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
target-branch: develop
|
||||
|
2
.github/workflows/validate-lfs.yml
vendored
2
.github/workflows/validate-lfs.yml
vendored
@@ -7,7 +7,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
name: Validate
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
lfs: 'true'
|
||||
|
||||
|
8
.gitignore
vendored
8
.gitignore
vendored
@@ -3,14 +3,19 @@
|
||||
/local.properties
|
||||
# idea files: exclude everything except dictionnaries
|
||||
.idea/caches
|
||||
.idea/copilot
|
||||
.idea/libraries
|
||||
.idea/inspectionProfiles
|
||||
.idea/sonarlint
|
||||
.idea/*.xml
|
||||
.DS_Store
|
||||
/build
|
||||
/benchmark-out
|
||||
/captures
|
||||
.externalNativeBuild
|
||||
rust-sdk/target/*
|
||||
rust-sdk/src/uniffi/*
|
||||
Cargo.lock
|
||||
|
||||
/tmp
|
||||
/fastlane/private
|
||||
@@ -23,3 +28,6 @@
|
||||
/yarn.lock
|
||||
/node_modules
|
||||
**/out/failures
|
||||
|
||||
# For manual dependency to rust crypto sdk
|
||||
library/rustCrypto/matrix-rust-sdk-crypto.aar
|
||||
|
3
.idea/codeStyles/Project.xml
generated
3
.idea/codeStyles/Project.xml
generated
@@ -8,8 +8,7 @@
|
||||
</value>
|
||||
</option>
|
||||
<option name="ALIGN_IN_COLUMNS_CASE_BRANCH" value="true" />
|
||||
<option name="NAME_COUNT_TO_USE_STAR_IMPORT" value="2147483647" />
|
||||
<option name="NAME_COUNT_TO_USE_STAR_IMPORT_FOR_MEMBERS" value="2147483647" />
|
||||
<option name="LINE_BREAK_AFTER_MULTILINE_WHEN_ENTRY" value="false" />
|
||||
<option name="CONTINUATION_INDENT_IN_PARAMETER_LISTS" value="true" />
|
||||
<option name="CONTINUATION_INDENT_IN_ARGUMENT_LISTS" value="true" />
|
||||
<option name="CONTINUATION_INDENT_FOR_EXPRESSION_BODIES" value="true" />
|
||||
|
1
.idea/codeStyles/codeStyleConfig.xml
generated
1
.idea/codeStyles/codeStyleConfig.xml
generated
@@ -1,6 +1,5 @@
|
||||
<component name="ProjectCodeStyleConfiguration">
|
||||
<state>
|
||||
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
|
||||
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
|
||||
</state>
|
||||
</component>
|
1
.idea/dictionaries/bmarty.xml
generated
1
.idea/dictionaries/bmarty.xml
generated
@@ -44,6 +44,7 @@
|
||||
<w>unpublish</w>
|
||||
<w>unwedging</w>
|
||||
<w>vctr</w>
|
||||
<w>vodozemac</w>
|
||||
<w>wellknown</w>
|
||||
</words>
|
||||
</dictionary>
|
||||
|
@@ -1,4 +1,4 @@
|
||||
A full developer contributors list can be found [here](https://github.com/vector-im/element-android/graphs/contributors).
|
||||
A full developer contributors list can be found [here](https://github.com/element-hq/element-android/graphs/contributors).
|
||||
|
||||
# Core team:
|
||||
|
||||
|
2505
CHANGES.md
2505
CHANGES.md
File diff suppressed because it is too large
Load Diff
@@ -13,6 +13,7 @@
|
||||
* [Code quality](#code-quality)
|
||||
* [Internal tool](#internal-tool)
|
||||
* [ktlint](#ktlint)
|
||||
* [knit](#knit)
|
||||
* [lint](#lint)
|
||||
* [Unit tests](#unit-tests)
|
||||
* [Tests](#tests)
|
||||
@@ -126,6 +127,23 @@ Note that you can run
|
||||
|
||||
For ktlint to fix some detected errors for you (you still have to check and commit the fix of course)
|
||||
|
||||
#### knit
|
||||
|
||||
[knit](https://github.com/Kotlin/kotlinx-knit) is a tool which checks markdown files on the project. Also it generates/updates the table of content (toc) of the markdown files.
|
||||
|
||||
So everytime the toc should be updated, just run
|
||||
<pre>
|
||||
./gradlew knit
|
||||
</pre>
|
||||
|
||||
and commit the changes.
|
||||
|
||||
The CI will check that markdown files are up to date by running
|
||||
|
||||
<pre>
|
||||
./gradlew knitCheck
|
||||
</pre>
|
||||
|
||||
#### lint
|
||||
|
||||
<pre>
|
||||
|
145
Gemfile.lock
145
Gemfile.lock
@@ -1,29 +1,32 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
CFPropertyList (3.0.5)
|
||||
CFPropertyList (3.0.7)
|
||||
base64
|
||||
nkf
|
||||
rexml
|
||||
addressable (2.8.0)
|
||||
public_suffix (>= 2.0.2, < 5.0)
|
||||
artifactory (3.0.15)
|
||||
addressable (2.8.7)
|
||||
public_suffix (>= 2.0.2, < 7.0)
|
||||
artifactory (3.0.17)
|
||||
atomos (0.1.3)
|
||||
aws-eventstream (1.2.0)
|
||||
aws-partitions (1.619.0)
|
||||
aws-sdk-core (3.132.0)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
aws-partitions (~> 1, >= 1.525.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-eventstream (1.3.0)
|
||||
aws-partitions (1.947.0)
|
||||
aws-sdk-core (3.199.0)
|
||||
aws-eventstream (~> 1, >= 1.3.0)
|
||||
aws-partitions (~> 1, >= 1.651.0)
|
||||
aws-sigv4 (~> 1.8)
|
||||
jmespath (~> 1, >= 1.6.1)
|
||||
aws-sdk-kms (1.58.0)
|
||||
aws-sdk-core (~> 3, >= 3.127.0)
|
||||
aws-sdk-kms (1.87.0)
|
||||
aws-sdk-core (~> 3, >= 3.199.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sdk-s3 (1.114.0)
|
||||
aws-sdk-core (~> 3, >= 3.127.0)
|
||||
aws-sdk-s3 (1.154.0)
|
||||
aws-sdk-core (~> 3, >= 3.199.0)
|
||||
aws-sdk-kms (~> 1)
|
||||
aws-sigv4 (~> 1.4)
|
||||
aws-sigv4 (1.5.1)
|
||||
aws-sigv4 (~> 1.8)
|
||||
aws-sigv4 (1.8.0)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
babosa (1.0.4)
|
||||
base64 (0.2.0)
|
||||
claide (1.1.0)
|
||||
claide-plugins (0.9.2)
|
||||
cork
|
||||
@@ -49,14 +52,14 @@ GEM
|
||||
octokit (~> 4.7)
|
||||
terminal-table (>= 1, < 4)
|
||||
declarative (0.0.20)
|
||||
digest-crc (0.6.4)
|
||||
digest-crc (0.6.5)
|
||||
rake (>= 12.0.0, < 14.0.0)
|
||||
domain_name (0.5.20190701)
|
||||
unf (>= 0.0.5, < 1.0.0)
|
||||
dotenv (2.8.1)
|
||||
emoji_regex (3.2.3)
|
||||
excon (0.92.4)
|
||||
faraday (1.10.1)
|
||||
excon (0.109.0)
|
||||
faraday (1.10.3)
|
||||
faraday-em_http (~> 1.0)
|
||||
faraday-em_synchrony (~> 1.0)
|
||||
faraday-excon (~> 1.1)
|
||||
@@ -74,7 +77,7 @@ GEM
|
||||
faraday-em_http (1.0.0)
|
||||
faraday-em_synchrony (1.0.0)
|
||||
faraday-excon (1.1.0)
|
||||
faraday-http-cache (2.4.1)
|
||||
faraday-http-cache (2.5.1)
|
||||
faraday (>= 0.8)
|
||||
faraday-httpclient (1.0.1)
|
||||
faraday-multipart (1.0.4)
|
||||
@@ -86,15 +89,15 @@ GEM
|
||||
faraday-retry (1.0.3)
|
||||
faraday_middleware (1.2.0)
|
||||
faraday (~> 1.0)
|
||||
fastimage (2.2.6)
|
||||
fastlane (2.209.0)
|
||||
fastimage (2.3.1)
|
||||
fastlane (2.221.1)
|
||||
CFPropertyList (>= 2.3, < 4.0.0)
|
||||
addressable (>= 2.8, < 3.0.0)
|
||||
artifactory (~> 3.0)
|
||||
aws-sdk-s3 (~> 1.0)
|
||||
babosa (>= 1.0.3, < 2.0.0)
|
||||
bundler (>= 1.12.0, < 3.0.0)
|
||||
colored
|
||||
colored (~> 1.2)
|
||||
commander (~> 4.6)
|
||||
dotenv (>= 2.1.1, < 3.0.0)
|
||||
emoji_regex (>= 0.1, < 4.0)
|
||||
@@ -106,32 +109,35 @@ GEM
|
||||
gh_inspector (>= 1.1.2, < 2.0.0)
|
||||
google-apis-androidpublisher_v3 (~> 0.3)
|
||||
google-apis-playcustomapp_v1 (~> 0.1)
|
||||
google-cloud-env (>= 1.6.0, < 2.0.0)
|
||||
google-cloud-storage (~> 1.31)
|
||||
highline (~> 2.0)
|
||||
http-cookie (~> 1.0.5)
|
||||
json (< 3.0.0)
|
||||
jwt (>= 2.1.0, < 3)
|
||||
mini_magick (>= 4.9.4, < 5.0.0)
|
||||
multipart-post (~> 2.0.0)
|
||||
multipart-post (>= 2.0.0, < 3.0.0)
|
||||
naturally (~> 2.2)
|
||||
optparse (~> 0.1.1)
|
||||
optparse (>= 0.1.1, < 1.0.0)
|
||||
plist (>= 3.1.0, < 4.0.0)
|
||||
rubyzip (>= 2.0.0, < 3.0.0)
|
||||
security (= 0.1.3)
|
||||
security (= 0.1.5)
|
||||
simctl (~> 1.6.3)
|
||||
terminal-notifier (>= 2.0.0, < 3.0.0)
|
||||
terminal-table (>= 1.4.5, < 2.0.0)
|
||||
terminal-table (~> 3)
|
||||
tty-screen (>= 0.6.3, < 1.0.0)
|
||||
tty-spinner (>= 0.8.0, < 1.0.0)
|
||||
word_wrap (~> 1.0.0)
|
||||
xcodeproj (>= 1.13.0, < 2.0.0)
|
||||
xcpretty (~> 0.3.0)
|
||||
xcpretty-travis-formatter (>= 0.0.3)
|
||||
xcpretty-travis-formatter (>= 0.0.3, < 2.0.0)
|
||||
gh_inspector (1.1.3)
|
||||
git (1.11.0)
|
||||
git (1.19.1)
|
||||
addressable (~> 2.8)
|
||||
rchardet (~> 1.8)
|
||||
google-apis-androidpublisher_v3 (0.25.0)
|
||||
google-apis-core (>= 0.7, < 2.a)
|
||||
google-apis-core (0.7.0)
|
||||
google-apis-androidpublisher_v3 (0.54.0)
|
||||
google-apis-core (>= 0.11.0, < 2.a)
|
||||
google-apis-core (0.11.3)
|
||||
addressable (~> 2.5, >= 2.5.1)
|
||||
googleauth (>= 0.16.2, < 2.a)
|
||||
httpclient (>= 2.8.1, < 3.a)
|
||||
@@ -139,107 +145,105 @@ GEM
|
||||
representable (~> 3.0)
|
||||
retriable (>= 2.0, < 4.a)
|
||||
rexml
|
||||
webrick
|
||||
google-apis-iamcredentials_v1 (0.13.0)
|
||||
google-apis-core (>= 0.7, < 2.a)
|
||||
google-apis-playcustomapp_v1 (0.10.0)
|
||||
google-apis-core (>= 0.7, < 2.a)
|
||||
google-apis-storage_v1 (0.17.0)
|
||||
google-apis-core (>= 0.7, < 2.a)
|
||||
google-cloud-core (1.6.0)
|
||||
google-cloud-env (~> 1.0)
|
||||
google-apis-iamcredentials_v1 (0.17.0)
|
||||
google-apis-core (>= 0.11.0, < 2.a)
|
||||
google-apis-playcustomapp_v1 (0.13.0)
|
||||
google-apis-core (>= 0.11.0, < 2.a)
|
||||
google-apis-storage_v1 (0.29.0)
|
||||
google-apis-core (>= 0.11.0, < 2.a)
|
||||
google-cloud-core (1.6.1)
|
||||
google-cloud-env (>= 1.0, < 3.a)
|
||||
google-cloud-errors (~> 1.0)
|
||||
google-cloud-env (1.6.0)
|
||||
faraday (>= 0.17.3, < 3.0)
|
||||
google-cloud-errors (1.2.0)
|
||||
google-cloud-storage (1.38.0)
|
||||
google-cloud-errors (1.3.1)
|
||||
google-cloud-storage (1.45.0)
|
||||
addressable (~> 2.8)
|
||||
digest-crc (~> 0.4)
|
||||
google-apis-iamcredentials_v1 (~> 0.1)
|
||||
google-apis-storage_v1 (~> 0.17.0)
|
||||
google-apis-storage_v1 (~> 0.29.0)
|
||||
google-cloud-core (~> 1.6)
|
||||
googleauth (>= 0.16.2, < 2.a)
|
||||
mini_mime (~> 1.0)
|
||||
googleauth (1.2.0)
|
||||
googleauth (1.8.1)
|
||||
faraday (>= 0.17.3, < 3.a)
|
||||
jwt (>= 1.4, < 3.0)
|
||||
memoist (~> 0.16)
|
||||
multi_json (~> 1.11)
|
||||
os (>= 0.9, < 2.0)
|
||||
signet (>= 0.16, < 2.a)
|
||||
highline (2.0.3)
|
||||
http-cookie (1.0.5)
|
||||
http-cookie (1.0.6)
|
||||
domain_name (~> 0.5)
|
||||
httpclient (2.8.3)
|
||||
jmespath (1.6.1)
|
||||
json (2.6.2)
|
||||
jwt (2.4.1)
|
||||
jmespath (1.6.2)
|
||||
json (2.7.2)
|
||||
jwt (2.8.2)
|
||||
base64
|
||||
kramdown (2.4.0)
|
||||
rexml
|
||||
kramdown-parser-gfm (1.1.0)
|
||||
kramdown (~> 2.0)
|
||||
memoist (0.16.2)
|
||||
mini_magick (4.11.0)
|
||||
mini_mime (1.1.2)
|
||||
mini_magick (4.13.1)
|
||||
mini_mime (1.1.5)
|
||||
multi_json (1.15.0)
|
||||
multipart-post (2.0.0)
|
||||
multipart-post (2.4.1)
|
||||
nanaimo (0.3.0)
|
||||
nap (1.1.0)
|
||||
naturally (2.2.1)
|
||||
nkf (0.2.0)
|
||||
no_proxy_fix (0.1.2)
|
||||
octokit (4.25.1)
|
||||
faraday (>= 1, < 3)
|
||||
sawyer (~> 0.9)
|
||||
open4 (1.3.4)
|
||||
optparse (0.1.1)
|
||||
optparse (0.5.0)
|
||||
os (1.1.4)
|
||||
plist (3.6.0)
|
||||
public_suffix (4.0.7)
|
||||
rake (13.0.6)
|
||||
plist (3.7.1)
|
||||
public_suffix (5.1.1)
|
||||
rake (13.2.1)
|
||||
rchardet (1.8.0)
|
||||
representable (3.2.0)
|
||||
declarative (< 0.1.0)
|
||||
trailblazer-option (>= 0.1.1, < 0.2.0)
|
||||
uber (< 0.2.0)
|
||||
retriable (3.1.2)
|
||||
rexml (3.2.5)
|
||||
rexml (3.3.9)
|
||||
rouge (2.0.7)
|
||||
ruby2_keywords (0.0.5)
|
||||
rubyzip (2.3.2)
|
||||
sawyer (0.9.2)
|
||||
addressable (>= 2.3.5)
|
||||
faraday (>= 0.17.3, < 3)
|
||||
security (0.1.3)
|
||||
signet (0.17.0)
|
||||
security (0.1.5)
|
||||
signet (0.18.0)
|
||||
addressable (~> 2.8)
|
||||
faraday (>= 0.17.5, < 3.a)
|
||||
jwt (>= 1.5, < 3.0)
|
||||
multi_json (~> 1.10)
|
||||
simctl (1.6.8)
|
||||
simctl (1.6.10)
|
||||
CFPropertyList
|
||||
naturally
|
||||
terminal-notifier (2.0.0)
|
||||
terminal-table (1.8.0)
|
||||
unicode-display_width (~> 1.1, >= 1.1.1)
|
||||
terminal-table (3.0.2)
|
||||
unicode-display_width (>= 1.1.1, < 3)
|
||||
trailblazer-option (0.1.2)
|
||||
tty-cursor (0.7.1)
|
||||
tty-screen (0.8.1)
|
||||
tty-screen (0.8.2)
|
||||
tty-spinner (0.9.3)
|
||||
tty-cursor (~> 0.7)
|
||||
uber (0.1.0)
|
||||
unf (0.1.4)
|
||||
unf_ext
|
||||
unf_ext (0.0.8.2)
|
||||
unicode-display_width (1.8.0)
|
||||
webrick (1.7.0)
|
||||
unf_ext (0.0.9.1)
|
||||
unicode-display_width (2.5.0)
|
||||
word_wrap (1.0.0)
|
||||
xcodeproj (1.22.0)
|
||||
xcodeproj (1.25.1)
|
||||
CFPropertyList (>= 2.3.3, < 4.0)
|
||||
atomos (~> 0.1.3)
|
||||
claide (>= 1.0.2, < 2.0)
|
||||
colored2 (~> 3.1)
|
||||
nanaimo (~> 0.3.0)
|
||||
rexml (~> 3.2.4)
|
||||
rexml (>= 3.3.6, < 4.0)
|
||||
xcpretty (0.3.0)
|
||||
rouge (~> 2.0.7)
|
||||
xcpretty-travis-formatter (1.0.1)
|
||||
@@ -247,6 +251,7 @@ GEM
|
||||
|
||||
PLATFORMS
|
||||
universal-darwin-21
|
||||
universal-darwin-23
|
||||
x86_64-darwin-20
|
||||
x86_64-linux
|
||||
|
||||
|
785
LICENSE
785
LICENSE
@@ -1,176 +1,661 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
GNU AFFERO GENERAL PUBLIC LICENSE
|
||||
Version 3, 19 November 2007
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
1. Definitions.
|
||||
Preamble
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
The GNU Affero General Public License is a free, copyleft license for
|
||||
software and other kinds of works, specifically designed to ensure
|
||||
cooperation with the community in the case of network server software.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
our General Public Licenses are intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
Developers that use our General Public Licenses protect your rights
|
||||
with two steps: (1) assert copyright on the software, and (2) offer
|
||||
you this License which gives you legal permission to copy, distribute
|
||||
and/or modify the software.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
A secondary benefit of defending all users' freedom is that
|
||||
improvements made in alternate versions of the program, if they
|
||||
receive widespread use, become available for other developers to
|
||||
incorporate. Many developers of free software are heartened and
|
||||
encouraged by the resulting cooperation. However, in the case of
|
||||
software used on network servers, this result may fail to come about.
|
||||
The GNU General Public License permits making a modified version and
|
||||
letting the public access it on a server without ever releasing its
|
||||
source code to the public.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
The GNU Affero General Public License is designed specifically to
|
||||
ensure that, in such cases, the modified source code becomes available
|
||||
to the community. It requires the operator of a network server to
|
||||
provide the source code of the modified version running there to the
|
||||
users of that server. Therefore, public use of a modified version, on
|
||||
a publicly accessible server, gives the public access to the source
|
||||
code of the modified version.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
An older license, called the Affero General Public License and
|
||||
published by Affero, was designed to accomplish similar goals. This is
|
||||
a different license, not a version of the Affero GPL, but Affero has
|
||||
released a new version of the Affero GPL which permits relicensing under
|
||||
this license.
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
0. Definitions.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
"This License" refers to version 3 of the GNU Affero General Public License.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
1. Source Code.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Remote Network Interaction; Use with the GNU General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, if you modify the
|
||||
Program, your modified version must prominently offer all users
|
||||
interacting with it remotely through a computer network (if your version
|
||||
supports such interaction) an opportunity to receive the Corresponding
|
||||
Source of your version by providing access to the Corresponding Source
|
||||
from a network server at no charge, through some standard or customary
|
||||
means of facilitating copying of software. This Corresponding Source
|
||||
shall include the Corresponding Source for any work covered by version 3
|
||||
of the GNU General Public License that is incorporated pursuant to the
|
||||
following paragraph.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the work with which it is combined will remain governed by version
|
||||
3 of the GNU General Public License.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU Affero General Public License from time to time. Such new versions
|
||||
will be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU Affero General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU Affero General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU Affero General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<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 Affero General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If your software can interact with users remotely through a computer
|
||||
network, you should also make sure that it provides a way for users to
|
||||
get its source. For example, if your program is a web application, its
|
||||
interface could display a "Source" link that leads users to an archive
|
||||
of the code. There are many ways you could offer source, and different
|
||||
solutions will be better for different programs; see section 13 for the
|
||||
specific requirements.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU AGPL, see
|
||||
<https://www.gnu.org/licenses/>.
|
||||
|
20
README.md
20
README.md
@@ -1,20 +1,20 @@
|
||||
[](https://buildkite.com/matrix-dot-org/element-android/builds?branch=develop)
|
||||
[](https://github.com/element-hq/element-android/actions/workflows/build.yml?query=branch%3Adevelop)
|
||||
[](https://translate.element.io/engage/element-android/?utm_source=widget)
|
||||
[](https://matrix.to/#/#element-android:matrix.org)
|
||||
[](https://sonarcloud.io/summary/new_code?id=vector-im_element-android)
|
||||
[](https://sonarcloud.io/summary/new_code?id=vector-im_element-android)
|
||||
[](https://sonarcloud.io/summary/new_code?id=vector-im_element-android)
|
||||
[](https://sonarcloud.io/summary/new_code?id=element-android)
|
||||
[](https://sonarcloud.io/summary/new_code?id=element-android)
|
||||
[](https://sonarcloud.io/summary/new_code?id=element-android)
|
||||
|
||||
# Element Android
|
||||
|
||||
Element Android is an Android Matrix Client provided by [Element](https://element.io/). The app can be run on every Android devices with Android OS Lollipop and more (API 21).
|
||||
|
||||
It is a total rewrite of [Riot-Android](https://github.com/vector-im/riot-android) with a new user experience.
|
||||
It is a total rewrite of [Riot-Android](https://github.com/element-hq/riot-android) with a new user experience.
|
||||
|
||||
[<img src="resources/img/google-play-badge.png" alt="Get it on Google Play" height="60">](https://play.google.com/store/apps/details?id=im.vector.app)
|
||||
[<img src="resources/img/f-droid-badge.png" alt="Get it on F-Droid" height="60">](https://f-droid.org/app/im.vector.app)
|
||||
|
||||
Nightly build: [](https://buildkite.com/matrix-dot-org/element-android/builds?branch=develop) Nightly test status: [](https://github.com/vector-im/element-android/actions/workflows/nightly.yml)
|
||||
Build of develop branch: [](https://github.com/element-hq/element-android/actions/workflows/build.yml?query=branch%3Adevelop) Nightly test status: [](https://github.com/element-hq/element-android/actions/workflows/nightly.yml)
|
||||
|
||||
|
||||
# New Android SDK
|
||||
@@ -39,8 +39,8 @@ There is some delay between when a release is created and when it appears in the
|
||||
If you would like to receive releases more quickly (bearing in mind that they may not be stable) you have a number of options:
|
||||
|
||||
1. [Sign up to receive beta releases](https://play.google.com/apps/testing/im.vector.app) via the Google Play Store.
|
||||
2. Install a [release APK](https://github.com/vector-im/element-android/releases) directly - download the relevant .apk file and allow installing from untrusted sources in your device settings. Note: these releases are the Google Play version, which depend on some Google services. If you prefer to avoid that, try the latest dev builds, and choose the F-Droid version.
|
||||
3. If you're really brave, install the [very latest dev build](https://buildkite.com/matrix-dot-org/element-android/builds/latest?branch=develop&state=passed) - click on *Assemble (GPlay or FDroid) Debug version* then on *Artifacts*.
|
||||
2. Install a [release APK](https://github.com/element-hq/element-android/releases) directly - download the relevant .apk file and allow installing from untrusted sources in your device settings. Note: these releases are the Google Play version, which depend on some Google services. If you prefer to avoid that, try the latest dev builds, and choose the F-Droid version.
|
||||
3. If you're really brave, install the [very latest dev build](https://github.com/element-hq/element-android/actions/workflows/build.yml?query=branch%3Adevelop) - pick a build, then click on `Summary` to download the APKs from there: `vector-Fdroid-debug` and `vector-Gplay-debug` contains the APK for the desired store. Each file contains 5 APKs. 4 APKs for every supported specific architecture of device. In doubt you can install the `universal` APK.
|
||||
|
||||
## Contributing
|
||||
|
||||
@@ -52,7 +52,7 @@ Also [this documentation](./docs/_developer_onboarding.md) can hopefully help de
|
||||
|
||||
## Triaging issues
|
||||
|
||||
Issues are triaged by community members and the Android App Team, following the [triage process](https://github.com/vector-im/element-meta/wiki/Triage-process).
|
||||
Issues are triaged by community members and the Android App Team, following the [triage process](https://github.com/element-hq/element-meta/wiki/Triage-process).
|
||||
|
||||
We use [issue labels](https://github.com/vector-im/element-meta/wiki/Issue-labelling) to sort all incoming issues.
|
||||
We use [issue labels](https://github.com/element-hq/element-meta/wiki/Issue-labelling) to sort all incoming issues.
|
||||
|
||||
|
5
SECURITY.md
Normal file
5
SECURITY.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# Reporting a Vulnerability
|
||||
|
||||
**If you've found a security vulnerability in Element software, please report it to security@element.io.**
|
||||
|
||||
For more information on our security disclosure policy, visit https://element.io/security/security-disclosure-policy.
|
60
build.gradle
60
build.gradle
@@ -24,13 +24,13 @@ buildscript {
|
||||
classpath libs.gradle.gradlePlugin
|
||||
classpath libs.gradle.kotlinPlugin
|
||||
classpath libs.gradle.hiltPlugin
|
||||
classpath 'com.google.firebase:firebase-appdistribution-gradle:3.1.1'
|
||||
classpath 'com.google.gms:google-services:4.3.14'
|
||||
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.5.0.2730'
|
||||
classpath 'com.google.android.gms:oss-licenses-plugin:0.10.5'
|
||||
classpath "com.likethesalad.android:stem-plugin:2.2.3"
|
||||
classpath 'org.owasp:dependency-check-gradle:7.3.0'
|
||||
classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.7.20"
|
||||
classpath 'com.google.firebase:firebase-appdistribution-gradle:4.0.0'
|
||||
classpath 'com.google.gms:google-services:4.3.15'
|
||||
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:4.0.0.2929'
|
||||
classpath 'com.google.android.gms:oss-licenses-plugin:0.10.6'
|
||||
classpath "com.likethesalad.android:stem-plugin:2.9.0"
|
||||
classpath 'org.owasp:dependency-check-gradle:8.2.1'
|
||||
classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.8.10"
|
||||
classpath "org.jetbrains.kotlinx:kotlinx-knit:0.4.0"
|
||||
classpath 'com.jakewharton:butterknife-gradle-plugin:10.2.3'
|
||||
classpath libs.squareup.paparazziPlugin
|
||||
@@ -41,14 +41,14 @@ buildscript {
|
||||
|
||||
plugins {
|
||||
// ktlint Plugin
|
||||
id "org.jlleitschuh.gradle.ktlint" version "11.0.0"
|
||||
id "org.jlleitschuh.gradle.ktlint" version "11.3.2"
|
||||
// Detekt
|
||||
id "io.gitlab.arturbosch.detekt" version "1.21.0"
|
||||
id "io.gitlab.arturbosch.detekt" version "1.23.7"
|
||||
// Ksp
|
||||
id "com.google.devtools.ksp" version "1.7.21-1.0.8"
|
||||
id "com.google.devtools.ksp" version "1.9.24-1.0.20"
|
||||
|
||||
// Dependency Analysis
|
||||
id 'com.autonomousapps.dependency-analysis' version "1.16.0"
|
||||
id 'com.autonomousapps.dependency-analysis' version "1.20.0"
|
||||
// Gradle doctor
|
||||
id "com.osacky.doctor" version "0.8.1"
|
||||
}
|
||||
@@ -96,9 +96,9 @@ allprojects {
|
||||
}
|
||||
// Jitsi repo
|
||||
maven {
|
||||
url "https://github.com/vector-im/jitsi_libre_maven/raw/main/android-sdk-6.2.2"
|
||||
url "https://github.com/element-hq/jitsi_libre_maven/raw/main/mobile-sdk-10.2.0"
|
||||
// Note: to test Jitsi release you can use a local file like this:
|
||||
// url "file:///Users/bmarty/workspaces/jitsi_libre_maven/android-sdk-6.2.2"
|
||||
// url "file:///Users/bmarty/workspaces/jitsi_libre_maven/mobile-sdk-10.2.0"
|
||||
content {
|
||||
groups.jitsi.regex.each { includeGroupByRegex it }
|
||||
groups.jitsi.group.each { includeGroup it }
|
||||
@@ -112,13 +112,11 @@ allprojects {
|
||||
groups.google.group.each { includeGroup it }
|
||||
}
|
||||
}
|
||||
//noinspection JcenterRepositoryObsolete
|
||||
// Do not use `jcenter`, it prevents Dependabot from working properly
|
||||
maven {
|
||||
url 'https://jcenter.bintray.com'
|
||||
url 'https://s01.oss.sonatype.org/content/repositories/snapshots'
|
||||
content {
|
||||
groups.jcenter.regex.each { includeGroupByRegex it }
|
||||
groups.jcenter.group.each { includeGroup it }
|
||||
groups.mavenSnapshots.regex.each { includeGroupByRegex it }
|
||||
groups.mavenSnapshots.group.each { includeGroup it }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -203,21 +201,21 @@ if (launchTask.contains("coverage".toLowerCase())) {
|
||||
apply plugin: 'org.sonarqube'
|
||||
|
||||
// To run a sonar analysis:
|
||||
// Run './gradlew sonarqube -Dsonar.login=<REPLACE_WITH_SONAR_KEY>'
|
||||
// Run './gradlew sonar -Dsonar.login=<REPLACE_WITH_SONAR_KEY>'
|
||||
// The SONAR_KEY is stored in passbolt as Token Sonar Cloud Bma
|
||||
|
||||
sonarqube {
|
||||
sonar {
|
||||
properties {
|
||||
property "sonar.projectName", "element-android"
|
||||
property "sonar.projectKey", "vector-im_element-android"
|
||||
property "sonar.projectKey", "element-android"
|
||||
property "sonar.host.url", "https://sonarcloud.io"
|
||||
property "sonar.projectVersion", project(":vector").android.defaultConfig.versionName
|
||||
property "sonar.sourceEncoding", "UTF-8"
|
||||
property "sonar.links.homepage", "https://github.com/vector-im/element-android/"
|
||||
property "sonar.links.ci", "https://github.com/vector-im/element-android/actions"
|
||||
property "sonar.links.scm", "https://github.com/vector-im/element-android/"
|
||||
property "sonar.links.issue", "https://github.com/vector-im/element-android/issues"
|
||||
property "sonar.organization", "new_vector_ltd_organization"
|
||||
property "sonar.links.homepage", "https://github.com/element-hq/element-android/"
|
||||
property "sonar.links.ci", "https://github.com/element-hq/element-android/actions"
|
||||
property "sonar.links.scm", "https://github.com/element-hq/element-android/"
|
||||
property "sonar.links.issue", "https://github.com/element-hq/element-android/issues"
|
||||
property "sonar.organization", "element-hq"
|
||||
property "sonar.java.coveragePlugin", "jacoco"
|
||||
property "sonar.coverage.jacoco.xmlReportPaths", "${project.buildDir}/reports/jacoco/generateCoverageReport/generateCoverageReport.xml"
|
||||
property "sonar.login", project.hasProperty("SONAR_LOGIN") ? SONAR_LOGIN : "invalid"
|
||||
@@ -225,7 +223,7 @@ sonarqube {
|
||||
}
|
||||
|
||||
project(":vector") {
|
||||
sonarqube {
|
||||
sonar {
|
||||
properties {
|
||||
property "sonar.sources", project(":vector").android.sourceSets.main.java.srcDirs
|
||||
// exclude source code from analyses separated by a colon (:)
|
||||
@@ -236,13 +234,13 @@ project(":vector") {
|
||||
}
|
||||
|
||||
project(":library:external:diff-match-patch") {
|
||||
sonarqube {
|
||||
sonar {
|
||||
skipProject = true
|
||||
}
|
||||
}
|
||||
|
||||
//project(":matrix-sdk-android") {
|
||||
// sonarqube {
|
||||
// sonar {
|
||||
// properties {
|
||||
// property "sonar.sources", project(":matrix-sdk-android").android.sourceSets.main.java.srcDirs
|
||||
// // exclude source code from analyses separated by a colon (:)
|
||||
@@ -333,6 +331,10 @@ ext.initScreenshotTests = { project ->
|
||||
}
|
||||
}
|
||||
|
||||
tasks.withType(Test) {
|
||||
maxHeapSize = "2g"
|
||||
}
|
||||
|
||||
// Workaround to have KSP generated Kotlin code available in the IDE (for code completion)
|
||||
// Ref: https://github.com/airbnb/epoxy/releases/tag/5.0.0beta02
|
||||
subprojects { project ->
|
||||
|
@@ -1 +0,0 @@
|
||||
Fix italic text is truncated when bubble mode and markdown is enabled
|
@@ -1 +0,0 @@
|
||||
[Device Manager] Toggle IP address visibility
|
@@ -1 +0,0 @@
|
||||
Missing translations on "replyTo" messages
|
@@ -1 +0,0 @@
|
||||
New implementation of the full screen mode for the Rich Text Editor.
|
@@ -1 +0,0 @@
|
||||
ANR on session start when sending client info is enabled
|
@@ -1 +0,0 @@
|
||||
Make the plain text mode layout of the RTE more compact.
|
@@ -33,9 +33,9 @@ def initializeReport(report, projects, classExcludes) {
|
||||
)
|
||||
}
|
||||
report.reports {
|
||||
xml.enabled true
|
||||
html.enabled true
|
||||
csv.enabled false
|
||||
xml.required = true
|
||||
html.required = true
|
||||
csv.required = false
|
||||
}
|
||||
|
||||
gradle.projectsEvaluated {
|
||||
@@ -80,12 +80,12 @@ task generateCoverageReport(type: JacocoReport) {
|
||||
|
||||
task unitTestsWithCoverage(type: GradleBuild) {
|
||||
// the 7.1.3 android gradle plugin has a bug where enableTestCoverage generates invalid coverage
|
||||
startParameter.projectProperties.coverage = [enableTestCoverage: false]
|
||||
startParameter.projectProperties.coverage = "false"
|
||||
tasks = ['testDebugUnitTest']
|
||||
}
|
||||
|
||||
task instrumentationTestsWithCoverage(type: GradleBuild) {
|
||||
startParameter.projectProperties.coverage = [enableTestCoverage: true]
|
||||
startParameter.projectProperties.coverage = "true"
|
||||
startParameter.projectProperties['android.testInstrumentationRunnerArguments.notPackage'] = 'im.vector.app.ui'
|
||||
tasks = [':vector-app:connectedGplayDebugAndroidTest', ':vector:connectedDebugAndroidTest', 'matrix-sdk-android:connectedDebugAndroidTest']
|
||||
}
|
||||
|
@@ -1,39 +1,39 @@
|
||||
ext.versions = [
|
||||
'minSdk' : 21,
|
||||
'compileSdk' : 33,
|
||||
'targetSdk' : 33,
|
||||
'sourceCompat' : JavaVersion.VERSION_11,
|
||||
'targetCompat' : JavaVersion.VERSION_11,
|
||||
'compileSdk' : 34,
|
||||
'targetSdk' : 34,
|
||||
'sourceCompat' : JavaVersion.VERSION_21,
|
||||
'targetCompat' : JavaVersion.VERSION_21,
|
||||
'jvmTarget' : "21",
|
||||
]
|
||||
|
||||
def gradle = "7.3.1"
|
||||
def gradle = "8.4.2"
|
||||
// Ref: https://kotlinlang.org/releases.html
|
||||
def kotlin = "1.7.21"
|
||||
def kotlinCoroutines = "1.6.4"
|
||||
def dagger = "2.44.2"
|
||||
def appDistribution = "16.0.0-beta05"
|
||||
def retrofit = "2.9.0"
|
||||
def kotlin = "1.9.24"
|
||||
def kotlinCoroutines = "1.8.1"
|
||||
def dagger = "2.51.1"
|
||||
def firebaseBom = "33.1.1"
|
||||
def appDistribution = "16.0.0-beta08"
|
||||
def retrofit = "2.11.0"
|
||||
def markwon = "4.6.2"
|
||||
def moshi = "1.14.0"
|
||||
def lifecycle = "2.5.1"
|
||||
def moshi = "1.15.1"
|
||||
def lifecycle = "2.8.3"
|
||||
def flowBinding = "1.2.0"
|
||||
def flipper = "0.174.0"
|
||||
def flipper = "0.259.0"
|
||||
def epoxy = "5.0.0"
|
||||
def mavericks = "3.0.1"
|
||||
def glide = "4.14.2"
|
||||
def mavericks = "3.0.9"
|
||||
def glide = "4.16.0"
|
||||
def bigImageViewer = "1.8.1"
|
||||
def jjwt = "0.11.5"
|
||||
// Temporary version to unblock #6929. Once 0.16.0 is released we should use it, and revert
|
||||
// the whole commit which set version 0.16.0-SNAPSHOT
|
||||
def vanniktechEmoji = "0.16.0-SNAPSHOT"
|
||||
def sentry = "6.7.0"
|
||||
def fragment = "1.5.4"
|
||||
def vanniktechEmoji = "0.16.0"
|
||||
def sentry = "6.18.1"
|
||||
def fragment = "1.8.1"
|
||||
// Testing
|
||||
def mockk = "1.12.3" // We need to use 1.12.3 to have mocking in androidTest until a new version is released: https://github.com/mockk/mockk/issues/819
|
||||
def espresso = "3.4.0"
|
||||
def androidxTest = "1.4.0"
|
||||
def androidxOrchestrator = "1.4.2"
|
||||
def paparazzi = "1.1.0"
|
||||
def mockk = "1.13.11"
|
||||
def espresso = "3.6.1"
|
||||
def androidxTest = "1.6.1"
|
||||
def androidxOrchestrator = "1.5.0"
|
||||
def paparazzi = "1.3.4"
|
||||
|
||||
ext.libs = [
|
||||
gradle : [
|
||||
@@ -47,19 +47,20 @@ ext.libs = [
|
||||
'coroutinesTest' : "org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlinCoroutines"
|
||||
],
|
||||
androidx : [
|
||||
'activity' : "androidx.activity:activity-ktx:1.6.1",
|
||||
'appCompat' : "androidx.appcompat:appcompat:1.5.1",
|
||||
'activity' : "androidx.activity:activity-ktx:1.9.0",
|
||||
'appCompat' : "androidx.appcompat:appcompat:1.7.0",
|
||||
'biometric' : "androidx.biometric:biometric:1.1.0",
|
||||
'core' : "androidx.core:core-ktx:1.9.0",
|
||||
'recyclerview' : "androidx.recyclerview:recyclerview:1.2.1",
|
||||
'exifinterface' : "androidx.exifinterface:exifinterface:1.3.5",
|
||||
'core' : "androidx.core:core-ktx:1.10.1",
|
||||
'recyclerview' : "androidx.recyclerview:recyclerview:1.3.0",
|
||||
'exifinterface' : "androidx.exifinterface:exifinterface:1.3.6",
|
||||
'fragmentKtx' : "androidx.fragment:fragment-ktx:$fragment",
|
||||
'fragmentTesting' : "androidx.fragment:fragment-testing:$fragment",
|
||||
'fragmentTestingManifest' : "androidx.fragment:fragment-testing-manifest:$fragment",
|
||||
'constraintLayout' : "androidx.constraintlayout:constraintlayout:2.1.4",
|
||||
'work' : "androidx.work:work-runtime-ktx:2.7.1",
|
||||
'work' : "androidx.work:work-runtime-ktx:2.8.1",
|
||||
'autoFill' : "androidx.autofill:autofill:1.1.0",
|
||||
'preferenceKtx' : "androidx.preference:preference-ktx:1.2.0",
|
||||
'junit' : "androidx.test.ext:junit:1.1.3",
|
||||
'junit' : "androidx.test.ext:junit:1.1.5",
|
||||
'lifecycleCommon' : "androidx.lifecycle:lifecycle-common:$lifecycle",
|
||||
'lifecycleLivedata' : "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle",
|
||||
'lifecycleProcess' : "androidx.lifecycle:lifecycle-process:$lifecycle",
|
||||
@@ -67,7 +68,7 @@ ext.libs = [
|
||||
'datastore' : "androidx.datastore:datastore:1.0.0",
|
||||
'datastorepreferences' : "androidx.datastore:datastore-preferences:1.0.0",
|
||||
'pagingRuntimeKtx' : "androidx.paging:paging-runtime-ktx:2.1.2",
|
||||
'coreTesting' : "androidx.arch.core:core-testing:2.1.0",
|
||||
'coreTesting' : "androidx.arch.core:core-testing:2.2.0",
|
||||
'testCore' : "androidx.test:core:$androidxTest",
|
||||
'orchestrator' : "androidx.test:orchestrator:$androidxOrchestrator",
|
||||
'testRunner' : "androidx.test:runner:$androidxTest",
|
||||
@@ -75,15 +76,17 @@ ext.libs = [
|
||||
'espressoCore' : "androidx.test.espresso:espresso-core:$espresso",
|
||||
'espressoContrib' : "androidx.test.espresso:espresso-contrib:$espresso",
|
||||
'espressoIntents' : "androidx.test.espresso:espresso-intents:$espresso",
|
||||
'viewpager2' : "androidx.viewpager2:viewpager2:1.0.0",
|
||||
'transition' : "androidx.transition:transition:1.2.0",
|
||||
'viewpager2' : "androidx.viewpager2:viewpager2:1.1.0",
|
||||
'transition' : "androidx.transition:transition:1.5.0",
|
||||
],
|
||||
google : [
|
||||
'material' : "com.google.android.material:material:1.7.0",
|
||||
'material' : "com.google.android.material:material:1.12.0",
|
||||
'firebaseBom' : "com.google.firebase:firebase-bom:$firebaseBom",
|
||||
'messaging' : "com.google.firebase:firebase-messaging",
|
||||
'appdistributionApi' : "com.google.firebase:firebase-appdistribution-api-ktx:$appDistribution",
|
||||
'appdistribution' : "com.google.firebase:firebase-appdistribution:$appDistribution",
|
||||
// Phone number https://github.com/google/libphonenumber
|
||||
'phonenumber' : "com.googlecode.libphonenumber:libphonenumber:8.13.0"
|
||||
'phonenumber' : "com.googlecode.libphonenumber:libphonenumber:8.13.11"
|
||||
],
|
||||
dagger : [
|
||||
'dagger' : "com.google.dagger:dagger:$dagger",
|
||||
@@ -98,7 +101,7 @@ ext.libs = [
|
||||
],
|
||||
element : [
|
||||
'opusencoder' : "io.element.android:opusencoder:1.1.0",
|
||||
'wysiwyg' : "io.element.android:wysiwyg:0.7.0"
|
||||
'wysiwyg' : "io.element.android:wysiwyg:2.37.4"
|
||||
],
|
||||
squareup : [
|
||||
'moshi' : "com.squareup.moshi:moshi:$moshi",
|
||||
@@ -129,7 +132,7 @@ ext.libs = [
|
||||
'mavericksTesting' : "com.airbnb.android:mavericks-testing:$mavericks"
|
||||
],
|
||||
maplibre : [
|
||||
'androidSdk' : "org.maplibre.gl:android-sdk:9.5.2",
|
||||
'androidSdk' : "org.maplibre.gl:android-sdk:10.0.2",
|
||||
'pluginAnnotation' : "org.maplibre.gl:android-plugin-annotation-v9:1.0.0"
|
||||
],
|
||||
mockk : [
|
||||
@@ -166,9 +169,10 @@ ext.libs = [
|
||||
'sentryAndroid' : "io.sentry:sentry-android:$sentry"
|
||||
],
|
||||
tests : [
|
||||
'kluent' : "org.amshove.kluent:kluent-android:1.72",
|
||||
'kluent' : "org.amshove.kluent:kluent-android:1.73",
|
||||
'timberJunitRule' : "net.lachlanmckee:timber-junit-rule:1.0.1",
|
||||
'junit' : "junit:junit:4.13.2",
|
||||
'robolectric' : "org.robolectric:robolectric:4.13",
|
||||
]
|
||||
]
|
||||
|
||||
|
@@ -1,21 +1,22 @@
|
||||
ext.groups = [
|
||||
jitpack : [
|
||||
jitpack : [
|
||||
regex: [
|
||||
],
|
||||
group: [
|
||||
'com.github.Armen101',
|
||||
'com.github.chrisbanes',
|
||||
'com.github.element-hq',
|
||||
'com.github.hyuwah',
|
||||
'com.github.jetradarmobile',
|
||||
'com.github.MatrixFrog',
|
||||
'com.github.matrix-org',
|
||||
'com.github.tapadoo',
|
||||
'com.github.UnifiedPush',
|
||||
'com.github.vector-im',
|
||||
'com.github.yalantis',
|
||||
'com.github.Zhuinden',
|
||||
]
|
||||
],
|
||||
jitsi : [
|
||||
jitsi : [
|
||||
regex: [
|
||||
],
|
||||
group: [
|
||||
@@ -24,7 +25,7 @@ ext.groups = [
|
||||
'org.webkit',
|
||||
]
|
||||
],
|
||||
google : [
|
||||
google : [
|
||||
regex: [
|
||||
'androidx\\..*',
|
||||
'com\\.android\\.tools\\..*',
|
||||
@@ -42,7 +43,13 @@ ext.groups = [
|
||||
regex: [
|
||||
],
|
||||
group: [
|
||||
'com.vanniktech',
|
||||
]
|
||||
],
|
||||
mavenSnapshots: [
|
||||
regex: [
|
||||
],
|
||||
group: [
|
||||
'org.matrix.rustcomponents'
|
||||
]
|
||||
],
|
||||
mavenCentral: [
|
||||
@@ -65,6 +72,7 @@ ext.groups = [
|
||||
'com.facebook.flipper',
|
||||
'com.facebook.fresco',
|
||||
'com.facebook.infer.annotation',
|
||||
'com.facebook.react',
|
||||
'com.facebook.soloader',
|
||||
'com.facebook.stetho',
|
||||
'com.facebook.yoga',
|
||||
@@ -89,6 +97,7 @@ ext.groups = [
|
||||
'com.google.auto.value',
|
||||
'com.google.code.findbugs',
|
||||
'com.google.code.gson',
|
||||
'com.google.crypto.tink',
|
||||
'com.google.dagger',
|
||||
'com.google.devtools.ksp',
|
||||
'com.google.errorprone',
|
||||
@@ -109,11 +118,12 @@ ext.groups = [
|
||||
'com.linkedin.dexmaker',
|
||||
'com.mapbox.mapboxsdk',
|
||||
'com.nulab-inc',
|
||||
'com.otaliastudios',
|
||||
'com.otaliastudios.opengl',
|
||||
'com.parse.bolts',
|
||||
'com.pinterest',
|
||||
'com.pinterest.ktlint',
|
||||
'com.posthog.android',
|
||||
'com.posthog',
|
||||
'com.squareup',
|
||||
'com.squareup.curtains',
|
||||
'com.squareup.duktape',
|
||||
@@ -128,11 +138,12 @@ ext.groups = [
|
||||
'com.sun.xml.bind.mvn',
|
||||
'com.sun.xml.fastinfoset',
|
||||
'com.thoughtworks.qdox',
|
||||
// 'com.vanniktech',
|
||||
'com.vanniktech',
|
||||
'commons-cli',
|
||||
'commons-codec',
|
||||
'commons-io',
|
||||
'commons-logging',
|
||||
'dev.drewhamilton.poko',
|
||||
'info.picocli',
|
||||
'io.element.android',
|
||||
'io.github.davidburstrom.contester',
|
||||
@@ -183,6 +194,7 @@ ext.groups = [
|
||||
'org.codehaus.groovy',
|
||||
'org.codehaus.mojo',
|
||||
'org.codehaus.woodstox',
|
||||
'org.conscrypt',
|
||||
'org.eclipse.ee4j',
|
||||
'org.ec4j.core',
|
||||
'org.freemarker',
|
||||
@@ -191,12 +203,14 @@ ext.groups = [
|
||||
'org.jacoco',
|
||||
'org.java-websocket',
|
||||
'org.jcodec',
|
||||
'org.jcommander',
|
||||
'org.jetbrains',
|
||||
'org.jetbrains.dokka',
|
||||
'org.jetbrains.intellij.deps',
|
||||
'org.jetbrains.kotlin',
|
||||
'org.jetbrains.kotlinx',
|
||||
'org.jetbrains.trove4j',
|
||||
'org.jitsi',
|
||||
'org.json',
|
||||
'org.jsoup',
|
||||
'org.junit',
|
||||
@@ -205,6 +219,7 @@ ext.groups = [
|
||||
'org.jvnet.staxex',
|
||||
'org.maplibre.gl',
|
||||
'org.matrix.android',
|
||||
'org.matrix.rustcomponents',
|
||||
'org.mockito',
|
||||
'org.mongodb',
|
||||
'org.objenesis',
|
||||
@@ -213,7 +228,9 @@ ext.groups = [
|
||||
'org.ow2.asm',
|
||||
'org.ow2.asm',
|
||||
'org.reactivestreams',
|
||||
'org.robolectric',
|
||||
'org.slf4j',
|
||||
'org.snakeyaml',
|
||||
'org.sonatype.oss',
|
||||
'org.testng',
|
||||
'org.threeten',
|
||||
@@ -224,18 +241,4 @@ ext.groups = [
|
||||
'xml-apis',
|
||||
]
|
||||
],
|
||||
jcenter : [
|
||||
regex: [
|
||||
],
|
||||
group: [
|
||||
'com.amulyakhare',
|
||||
'com.otaliastudios',
|
||||
'com.yqritc',
|
||||
// https://github.com/cmelchior/realmfieldnameshelper/issues/42
|
||||
'dk.ilios',
|
||||
'im.dlg',
|
||||
'me.dm7.barcodescanner',
|
||||
'me.gujun.android',
|
||||
]
|
||||
]
|
||||
]
|
||||
|
@@ -17,7 +17,7 @@ We ask for the user to give consent before sending any analytics data.
|
||||
|
||||
The analytics plan is shared between all Element clients. To add an Event, please open a PR to this project: https://github.com/matrix-org/matrix-analytics-events
|
||||
|
||||
Then, once the PR has been merged, you can run the tool `import_analytic_plan.sh` to import the plan to Element, and then you can use the new Event. Note that this tool is run by Github action once a week.
|
||||
Then, once the PR has been merged, and the library is release, you can update the version of the library in the `build.gradle` file.
|
||||
|
||||
## Forks of Element
|
||||
|
||||
|
@@ -24,7 +24,7 @@
|
||||
|
||||
### Main change for developers
|
||||
|
||||
- Read migration guide: https://github.com/vector-im/element-android/pull/3459/files#diff-f0e52729d5e4f6eccbcf72246807aa34ed19c4ef5625ca669df998cd1022874b
|
||||
- Read migration guide: https://github.com/element-hq/element-android/pull/3459/files#diff-f0e52729d5e4f6eccbcf72246807aa34ed19c4ef5625ca669df998cd1022874b
|
||||
- Use MaterialAlertDialogBuilder instead of AlertDialog.Builder
|
||||
- some Epoxy Item included a divider. This has been removed. Use a `dividerItem` or `bottomSheetDividerItem` Epoxy items to add a divider
|
||||
- RecyclerView.configureWith now take a divider drawable instead of a divider color
|
||||
|
@@ -63,7 +63,7 @@ bundle exec danger pr <PR_URL> --dangerfile=./tools/danger/dangerfile.js
|
||||
For instance:
|
||||
|
||||
```shell
|
||||
bundle exec danger pr https://github.com/vector-im/element-android/pull/6637 --dangerfile=./tools/danger/dangerfile.js
|
||||
bundle exec danger pr https://github.com/element-hq/element-android/pull/6637 --dangerfile=./tools/danger/dangerfile.js
|
||||
```
|
||||
|
||||
We may need to create a GitHub token to have less API rate limiting, and then set the env var:
|
||||
@@ -84,7 +84,7 @@ bundle exec danger-kotlin pr <PR_URL> --dangerfile=./tools/danger/dangerfile.js
|
||||
To let Danger check all the PRs, including PRs form forks, a GitHub account have been created:
|
||||
- login: ElementBot
|
||||
- password: Stored on Passbolt
|
||||
- GitHub token: A token with limited access has been created and added to the repository https://github.com/vector-im/element-android as secret DANGER_GITHUB_API_TOKEN. This token is not saved anywhere else. In case of problem, just delete it and create a new one, then update the secret.
|
||||
- GitHub token: A token with limited access has been created and added to the repository https://github.com/element-hq/element-android as secret DANGER_GITHUB_API_TOKEN. This token is not saved anywhere else. In case of problem, just delete it and create a new one, then update the secret.
|
||||
|
||||
PRs from forks do not always have access to the secret `secrets.DANGER_GITHUB_API_TOKEN`, so `secrets.GITHUB_TOKEN` is also provided to the job environment. If `secrets.DANGER_GITHUB_API_TOKEN` is available, it will be used, so user `ElementBot` will comment the PR. Else `secrets.GITHUB_TOKEN` will be used, and bot `github-actions` will comment the PR.
|
||||
|
||||
|
55
docs/database_migration_test.md
Normal file
55
docs/database_migration_test.md
Normal file
@@ -0,0 +1,55 @@
|
||||
<!--- TOC -->
|
||||
|
||||
* [Testing database migration](#testing-database-migration)
|
||||
* [Creating a reference database](#creating-a-reference-database)
|
||||
* [Testing](#testing)
|
||||
|
||||
<!--- END -->
|
||||
|
||||
## Testing database migration
|
||||
|
||||
### Creating a reference database
|
||||
|
||||
Databases are encrypted, the key to decrypt is needed to setup the test.
|
||||
A special build property must be enabled to extract it.
|
||||
|
||||
Set `vector.debugPrivateData=true` in `~/.gradle/gradle.properties` (to avoid committing by mistake)
|
||||
|
||||
Launch the app in your emulator, login and use the app to fill up the database.
|
||||
|
||||
Save the key for the tested database
|
||||
```
|
||||
RealmKeysUtils W Database key for alias `session_db_fe9f212a611ccf6dea1141777065ed0a`: 935a6dfa0b0fc5cce1414194ed190....
|
||||
RealmKeysUtils W Database key for alias `crypto_module_fe9f212a611ccf6dea1141777065ed0a`: 7b9a21a8a311e85d75b069a343.....
|
||||
```
|
||||
|
||||
|
||||
Use the [Device File Explorer](https://developer.android.com/studio/debug/device-file-explorer) to extrat the database file from the emulator.
|
||||
|
||||
Go to `data/data/im.vector.app.debug/files/<hash>/`
|
||||
Pick the database you want to test (name can be found in SessionRealmConfigurationFactory):
|
||||
- crypto_store.realm for crypto
|
||||
- disk_store.realm for session
|
||||
- etc...
|
||||
|
||||
Download the file on your disk
|
||||
|
||||
### Testing
|
||||
|
||||
Copy the file in `src/AndroidTest/assets`
|
||||
|
||||
see `CryptoSanityMigrationTest` or `RealmSessionStoreMigration43Test` for sample tests.
|
||||
|
||||
There are already some databases in the assets folder.
|
||||
The existing test will properly detect schema changes, and fail with such errors if a migration is missing:
|
||||
|
||||
```
|
||||
io.realm.exceptions.RealmMigrationNeededException: Migration is required due to the following errors:
|
||||
- Property 'CryptoMetadataEntity.foo' has been added.
|
||||
```
|
||||
|
||||
If you want to test properly more complex database migration (dynamic transforms) ensure that the database contains
|
||||
the entity you want to migrate.
|
||||
|
||||
You can explore the database with [realm studio](https://www.mongodb.com/docs/realm/studio/) if needed.
|
||||
|
52
docs/installing_from_ci.md
Normal file
52
docs/installing_from_ci.md
Normal file
@@ -0,0 +1,52 @@
|
||||
## Installing from CI
|
||||
|
||||
<!--- TOC -->
|
||||
|
||||
* [Installing from Buildkite](#installing-from-buildkite)
|
||||
* [Installing from GitHub](#installing-from-github)
|
||||
* [Create a GitHub token](#create-a-github-token)
|
||||
* [Provide artifact URL](#provide-artifact-url)
|
||||
* [Next steps](#next-steps)
|
||||
* [Future improvement](#future-improvement)
|
||||
|
||||
<!--- END -->
|
||||
|
||||
Installing APK build by the CI is possible
|
||||
|
||||
### Installing from Buildkite
|
||||
|
||||
The script `./tools/install/installFromBuildkite.sh` can be used, but Builkite will be removed soon. See next section.
|
||||
|
||||
### Installing from GitHub
|
||||
|
||||
To install an APK built by a GitHub action, run the script `./tools/install/installFromGitHub.sh`. You will need to pass a GitHub token to do so.
|
||||
|
||||
#### Create a GitHub token
|
||||
|
||||
You can create a GitHub token going to your Github account, at this page: [https://github.com/settings/tokens](https://github.com/settings/tokens).
|
||||
|
||||
You need to create a token (classic) with the scope `repo/public_repo`. So just check the corresponding checkbox.
|
||||
Validity can be long since the scope of this token is limited. You will still be able to delete the token and generate a new one.
|
||||
Click on Generate token and save the token locally.
|
||||
|
||||
### Provide artifact URL
|
||||
|
||||
The script will ask for an artifact URL. You can get this artifact URL by following these steps:
|
||||
|
||||
- open the pull request
|
||||
- in the check at the bottom, click on `APK Build / Build debug APKs`
|
||||
- click on `Summary`
|
||||
- scroll to the bottom of the page
|
||||
- copy the link `vector-Fdroid-debug` if you want the F-Droid variant or `vector-Gplay-debug` if you want the Gplay variant.
|
||||
|
||||
The copied link can be provided to the script.
|
||||
|
||||
### Next steps
|
||||
|
||||
The script will download the artifact, unzip it and install the correct version (regarding arch) on your device.
|
||||
|
||||
Files will be added to the folder `./tmp/DebugApks`. Feel free to cleanup this folder from time to time, the script will not delete files.
|
||||
|
||||
### Future improvement
|
||||
|
||||
The script could ask the user for a Pull Request number and Gplay/Fdroid choice like it was done with Buildkite script. Using GitHub API may be possible to do that.
|
@@ -12,9 +12,9 @@
|
||||
|
||||
<!--- END -->
|
||||
|
||||
Native Jitsi support has been added to Element Android by the PR [#1914](https://github.com/vector-im/element-android/pull/1914). The description of the PR contains some documentation about the behaviour in each possible room configuration.
|
||||
Native Jitsi support has been added to Element Android by the PR [#1914](https://github.com/element-hq/element-android/pull/1914). The description of the PR contains some documentation about the behaviour in each possible room configuration.
|
||||
|
||||
Also, ensure to have a look on [the documentation from Element Web](https://github.com/vector-im/element-web/blob/develop/docs/jitsi.md)
|
||||
Also, ensure to have a look on [the documentation from Element Web](https://github.com/element-hq/element-web/blob/develop/docs/jitsi.md)
|
||||
|
||||
The official documentation about how to integrate the Jitsi SDK in an Android app is available here: https://jitsi.github.io/handbook/docs/dev-guide/dev-guide-android-sdk.
|
||||
|
||||
@@ -22,24 +22,24 @@ The official documentation about how to integrate the Jitsi SDK in an Android ap
|
||||
|
||||
The Jitsi SDK is built by ourselves with the flag LIBRE_BUILD, to be able to be integrated on the F-Droid version of Element Android.
|
||||
|
||||
The generated maven repository is then host in the project https://github.com/vector-im/jitsi_libre_maven
|
||||
The generated maven repository is then host in the project https://github.com/element-hq/jitsi_libre_maven
|
||||
|
||||
### How to build the Jitsi Meet SDK
|
||||
|
||||
#### Jitsi version
|
||||
|
||||
Update the script `./tools/jitsi/build_jisti_libs.sh` with the tag of the project `https://github.com/jitsi/jitsi-meet`.
|
||||
Update the script `./tools/jitsi/build_jitsi_libs.sh` with the tag of the project `https://github.com/jitsi/jitsi-meet`.
|
||||
|
||||
Latest tag can be found from this page: https://github.com/jitsi/jitsi-meet-release-notes/blob/master/CHANGELOG-MOBILE-SDKS.md
|
||||
|
||||
Currently we are building the version with the tag `android-sdk-3.10.0`.
|
||||
Currently we are building the version with the tag `mobile-sdk-10.2.0`.
|
||||
|
||||
#### Run the build script
|
||||
|
||||
At the root of the Element Android, run the following script:
|
||||
|
||||
```shell script
|
||||
./tools/jitsi/build_jisti_libs.sh
|
||||
./tools/jitsi/build_jitsi_libs.sh
|
||||
```
|
||||
|
||||
It will build the Jitsi Meet Android library and put every generated files in the folder `/tmp/jitsi`
|
||||
@@ -49,7 +49,7 @@ It will build the Jitsi Meet Android library and put every generated files in th
|
||||
- Update the file `./build.gradle` to use the previously created local Maven repository. Currently we have this line:
|
||||
|
||||
```groovy
|
||||
url "https://github.com/vector-im/jitsi_libre_maven/raw/master/android-sdk-3.10.0"
|
||||
url "https://github.com/element-hq/jitsi_libre_maven/raw/main/mobile-sdk-10.2.0"
|
||||
```
|
||||
|
||||
You can uncomment and update the line starting with `// url "file://...` and comment the line starting with `url`, to test the library using the locally generated Maven repository.
|
||||
@@ -57,13 +57,7 @@ You can uncomment and update the line starting with `// url "file://...` and com
|
||||
- Update the dependency of the Jitsi Meet library in the file `./vector/build.gradle`. Currently we have this line:
|
||||
|
||||
```groovy
|
||||
implementation('org.jitsi.react:jitsi-meet-sdk:3.10.0')
|
||||
```
|
||||
|
||||
- Update the dependency of the WebRTC library in the file `./vector/build.gradle`. Currently we have this line:
|
||||
|
||||
```groovy
|
||||
implementation('com.facebook.react:react-native-webrtc:1.92.1-jitsi-9093212@aar')
|
||||
api('org.jitsi.react:jitsi-meet-sdk:10.2.0')
|
||||
```
|
||||
|
||||
- Perform a gradle sync and build the project
|
||||
@@ -81,14 +75,14 @@ In order to validate that the upgrade of the Jitsi and WebRTC dependency does no
|
||||
|
||||
If all the tests are passed, you can export the generated Jitsi library to our Maven repository.
|
||||
|
||||
- Clone the project https://github.com/vector-im/jitsi_libre_maven.
|
||||
- Clone the project https://github.com/element-hq/jitsi_libre_maven.
|
||||
- Create a new folder with the version name.
|
||||
- Copy every generated files form `/tmp/jitsi` to the folder you have just created.
|
||||
- Commit and push the change on https://github.com/vector-im/jitsi_libre_maven.
|
||||
- Commit and push the change on https://github.com/element-hq/jitsi_libre_maven.
|
||||
- Update the file `./build.gradle` to use the previously created Maven repository. Currently we have this line:
|
||||
|
||||
```groovy
|
||||
url "https://github.com/vector-im/jitsi_libre_maven/raw/master/android-sdk-3.10.0"
|
||||
url "https://github.com/element-hq/jitsi_libre_maven/raw/main/mobile-sdk-10.2.0"
|
||||
```
|
||||
|
||||
- Build the project and perform the sanity tests again.
|
||||
|
@@ -48,7 +48,7 @@ mv towncrier.toml towncrier.toml.bak
|
||||
sed 's/CHANGES\.md/CHANGES_NIGHTLY\.md/' towncrier.toml.bak > towncrier.toml
|
||||
rm towncrier.toml.bak
|
||||
yes n | towncrier build --version nightly
|
||||
./gradlew assembleGplayNightly appDistributionUploadGplayNightly $CI_GRADLE_ARG_PROPERTIES
|
||||
./gradlew assembleGplayNightly appDistributionUploadNightly $CI_GRADLE_ARG_PROPERTIES
|
||||
```
|
||||
|
||||
Then you can reset the change on the codebase.
|
||||
|
@@ -86,13 +86,13 @@ Exceptions can occur:
|
||||
We use automatic assignment for PR reviews. **A PR is automatically routed by GitHub to one team member** using the round robin algorithm. Additional reviewers can be used for complex changes or when the first reviewer is not confident enough on the changes.
|
||||
The process is the following:
|
||||
|
||||
- The PR creator selects the [element-android-reviewers](https://github.com/orgs/vector-im/teams/element-android-reviewers) team as a reviewer.
|
||||
- The PR creator selects the [element-android-reviewers](https://github.com/orgs/element-hq/teams/element-android-reviewers) team as a reviewer.
|
||||
- GitHub automatically assign the reviewer. If the reviewer is not available (holiday, etc.), remove them and set again the team, GitHub will select another reviewer.
|
||||
- Alternatively, the PR creator can directly assign specific people if they have another Android developer in their team or they think a specific reviewer should take a look at their PR.
|
||||
- Reviewers get a notification to make the review: they review the code following the good practice (see the rest of this document).
|
||||
- After making their own review, if they feel not confident enough, they can ask another person for a full review, or they can tag someone within a PR comment to check specific lines.
|
||||
|
||||
For PRs coming from the community, the issue wrangler can assign either the team [element-android-reviewers](https://github.com/orgs/vector-im/teams/element-android-reviewers) or any member directly.
|
||||
For PRs coming from the community, the issue wrangler can assign either the team [element-android-reviewers](https://github.com/orgs/element-hq/teams/element-android-reviewers) or any member directly.
|
||||
|
||||
##### PR review time
|
||||
|
||||
|
63
docs/rust_crypto_integration.md
Normal file
63
docs/rust_crypto_integration.md
Normal file
@@ -0,0 +1,63 @@
|
||||
## Overview
|
||||
|
||||
Until the final migration to [rust crypto sdk](https://github.com/matrix-org/matrix-rust-components-kotlin), the Element Android project will support two
|
||||
different SDK as a product flavor.
|
||||
|
||||
The `matrix-sdk-android` module is defining a new flavor dimension `crypto`, with two flavors `kotlinCrypto` and `rustCrypto`.
|
||||
The crypto module cannot be changed at runtime, it's a build time configuration. The app supports migration from kotlinCrypto to rustCrypto but not the other
|
||||
way around.
|
||||
|
||||
The code that is not shared between the flavors is located in dedicated source sets (`src/kotlinCrypto/`, `src/rustCrypto/`). Some tests are also extracted
|
||||
in different source sets because they were accessing internal API and won't work with the rust crypto sdk.
|
||||
|
||||
## Noticeable changes
|
||||
|
||||
As a general rule, if you stick to the `kotlinCrypto` the app should behave as it was before the integration of favours.
|
||||
There is a noticeable exception though:
|
||||
In order to integrate the rust crypto several APIs had to be migrated from callback code to suspendable code. This change
|
||||
impacted a lot the key verification engine (user and device verification), so this part has been refactored for `kotlinCrypto`. The UI is also impacted,
|
||||
the verification flows now match the web experience.
|
||||
|
||||
TLDR; Verification UI and engine has been refactored.
|
||||
|
||||
## Testing with a local rust aar
|
||||
|
||||
In order to run a custom rust SDK branch you can follow the direction in the [bindings repository](https://github.com/matrix-org/matrix-rust-components-kotlin)
|
||||
in order to build the `matrix-rust-sdk-crypto.aar`.
|
||||
|
||||
Copy this lib in `library/rustCrypto/`, and rename it `matrix-rust-sdk-crypto.aar`.
|
||||
|
||||
Then go to `matrix-sdk-android/build.gradle` and toggle the comments between the following lines.
|
||||
|
||||
````
|
||||
rustCryptoImplementation("org.matrix.rustcomponents:crypto-android:0.3.1")
|
||||
// rustCryptoApi project(":library:rustCrypto")
|
||||
````
|
||||
|
||||
## Changes in CI
|
||||
|
||||
The workflow files have been updated to use the `kotlinCrypto` flavor, e.g
|
||||
|
||||
`assembleGplayNightly` => `assembleGplayKotlinCryptoNightly`
|
||||
|
||||
So building the unsigned release kotlin crypto apk is now:
|
||||
|
||||
`> ./gradlew assembleGplayKotlinCryptoRelease`
|
||||
|
||||
An additional workflow has been added to build the `rustCrypto` flavor (elementr.yml, ` Build debug APKs ER`).
|
||||
|
||||
|
||||
## Database migration from kotlin to rust
|
||||
|
||||
With the kotlin flavor, the crypto information are persisted in the crypto realm database.
|
||||
With the rust flavor, the crypto information are in a sqllite database.
|
||||
|
||||
The migration is handled when injecting `@SessionRustFilesDirectory` in the olmMachine.
|
||||
When launching the first time after migration, the app will detect that there is no rust data repository and it will
|
||||
create one. If there is an existing realm database, the data will then migrated to rust. See `ExtractMigrationDataUseCase`.
|
||||
This will extract your device keys, account secrets, active olm and megolm sessions.
|
||||
|
||||
There is no inverse migration for now, as there is not yet rust pickle to olm pickle support in the sdk.
|
||||
|
||||
If you migrate your app to rust, and want to revert to kotlin you have to logout then login again.
|
||||
|
@@ -62,7 +62,7 @@ class PaparazziExampleScreenshotTest {
|
||||
val view = paparazzi.inflate<ConstraintLayout>(R.layout.item_radio)
|
||||
|
||||
// Bind data to the view
|
||||
view.findViewById<TextView>(R.id.actionTitle).text = paparazzi.resources.getString(R.string.room_settings_all_messages)
|
||||
view.findViewById<TextView>(R.id.actionTitle).text = paparazzi.resources.getString(CommonStrings.room_settings_all_messages)
|
||||
view.findViewById<ImageView>(R.id.radioIcon).setImageResource(R.drawable.ic_radio_on)
|
||||
|
||||
// Record the bound view
|
||||
|
@@ -179,7 +179,7 @@ class SettingsRobot {
|
||||
}
|
||||
|
||||
fun advancedSettings(block: SettingsAdvancedRobot.() -> Unit) {
|
||||
clickOn(R.string.settings_advanced_settings)
|
||||
clickOn(CommonStrings.settings_advanced_settings)
|
||||
block(SettingsAdvancedRobot())
|
||||
pressBack()
|
||||
}
|
||||
@@ -187,7 +187,7 @@ class SettingsRobot {
|
||||
|
||||
class SettingsAdvancedRobot {
|
||||
fun toggleDeveloperMode() {
|
||||
clickOn(R.string.settings_developer_mode_summary)
|
||||
clickOn(CommonStrings.settings_developer_mode_summary)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
@@ -1,2 +1,2 @@
|
||||
يحتوي هذا الإصدار الجديد بشكل أساسي على إصلاحات للأخطاء وتحسينات. إرسال الرسالة أصبح الآن أسرع بكثير.
|
||||
سجل التعديل الكامل: https://github.com/vector-im/element-android/releases/tag/v1.0.10
|
||||
سجل التعديل الكامل: https://github.com/element-hq/element-android/releases/tag/v1.0.10
|
||||
|
@@ -1,2 +1,2 @@
|
||||
يحتوي هذا الإصدار الجديد بشكل أساسي على تحسينات في واجهة المستخدم وتجربة المستخدم. يُمكنك الآن دعوة الأصدقاء وإنشاء رسالة مُباشرة بسرعة كبيرة عن طريق مسح رموز الاستجابة السريعة.
|
||||
سجل التعديل الكامل: https://github.com/vector-im/element-android/releases/tag/v1.0.11
|
||||
سجل التعديل الكامل: https://github.com/element-hq/element-android/releases/tag/v1.0.11
|
||||
|
@@ -1,2 +1,2 @@
|
||||
التغييرات الرئيسة في هذا الإصدار: مُعاينة URL، لوحة مفاتيح Emoji جديدة، إمكانيات جديدة لإعدادات الغرفة والثلج لميلاد المسيح!
|
||||
سجل التعديل الكامل: https://github.com/vector-im/element-android/releases/tag/v1.0.12
|
||||
سجل التعديل الكامل: https://github.com/element-hq/element-android/releases/tag/v1.0.12
|
||||
|
@@ -1,2 +1,2 @@
|
||||
التغييرات الرئيسة في هذا الإصدار: مُعاينة URL، لوحة مفاتيح Emoji جديدة، إمكانيات جديدة لإعدادات الغرفة والثلج لميلاد المسيح!
|
||||
سجل التعديل الكامل: https://github.com/vector-im/element-android/releases/tag/v1.0.13
|
||||
سجل التعديل الكامل: https://github.com/element-hq/element-android/releases/tag/v1.0.13
|
||||
|
@@ -1,2 +1,2 @@
|
||||
التغييرات الرئيسة في هذا الإصدار: تحرير أذونات الغُرفة، السِّمة التلقائية الفاتحة/الداكنة، ومجموعة من إصلاحات الأخطاء.
|
||||
سجل التعديل الكامل: https://github.com/vector-im/element-android/releases/tag/v1.0.14
|
||||
سجل التعديل الكامل: https://github.com/element-hq/element-android/releases/tag/v1.0.14
|
||||
|
@@ -1,2 +1,2 @@
|
||||
التغييرات الرئيسة في هذا الإصدار: دعم تسجيل الدخول الاجتماعي.
|
||||
سجل التعديل الكامل: https://github.com/vector-im/element-android/releases/tag/v1.0.15
|
||||
سجل التعديل الكامل: https://github.com/element-hq/element-android/releases/tag/v1.0.15
|
||||
|
@@ -1,2 +1,2 @@
|
||||
التغييرات الرئيسة في هذا الإصدار: دعم تسجيل الدخول الاجتماعي.
|
||||
سجل التعديل الكامل: https://github.com/vector-im/element-android/releases/tag/v1.0.15 and https://github.com/vector-im/element-android/releases/tag/v1.0.16
|
||||
سجل التعديل الكامل: https://github.com/element-hq/element-android/releases/tag/v1.0.15 and https://github.com/element-hq/element-android/releases/tag/v1.0.16
|
||||
|
@@ -1,2 +1,2 @@
|
||||
التغييرات الرئيسة في هذا الإصدار: إصلاحات الأخطاء!
|
||||
سجل التعديل الكامل: https://github.com/vector-im/element-android/releases/tag/v1.0.17
|
||||
سجل التعديل الكامل: https://github.com/element-hq/element-android/releases/tag/v1.0.17
|
||||
|
@@ -1,2 +1,2 @@
|
||||
التغييرات الرئيسة في هذه النسخة: تحسينات على الأداء وإصلاح للعلل!
|
||||
اطّلع على سجل التغييرات الكامل هنا: https://github.com/vector-im/element-android/releases/tag/v1.1.1
|
||||
اطّلع على سجل التغييرات الكامل هنا: https://github.com/element-hq/element-android/releases/tag/v1.1.1
|
||||
|
1
fastlane/metadata/android/az-AZ/title.txt
Normal file
1
fastlane/metadata/android/az-AZ/title.txt
Normal file
@@ -0,0 +1 @@
|
||||
Element
|
@@ -1 +0,0 @@
|
||||
Element - Təhlükəsiz Mesajlaşma
|
@@ -1,2 +1,2 @@
|
||||
Aquesta nova versió principalment conté correccions d'errors i millores. Ara, enviar un missatge és molt més ràpid.
|
||||
Registre de canvis complet: https://github.com/vector-im/element-android/releases/tag/v1.0.10
|
||||
Registre de canvis complet: https://github.com/element-hq/element-android/releases/tag/v1.0.10
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Aquesta principalment conté millores d'interfície experiència d'usuari. Ara pots convidar amics i crear xats personals ràpidament escanejant codis QR.
|
||||
Registre de canvis complet: https://github.com/vector-im/element-android/releases/tag/v1.0.11
|
||||
Registre de canvis complet: https://github.com/element-hq/element-android/releases/tag/v1.0.11
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Canvis principals d'aquesta versió: previsualització d'URL, nou teclat d'emoticones, noves funcions de configuració de les sales i neu pel Nadal!
|
||||
Registre de canvis complet: https://github.com/vector-im/element-android/releases/tag/v1.0.12
|
||||
Registre de canvis complet: https://github.com/element-hq/element-android/releases/tag/v1.0.12
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Canvis principals d'aquesta versió: previsualització d'URL, nou teclat d'emoticones, noves funcions de configuració de les sales i neu pel Nadal!
|
||||
Registre de canvis complet: https://github.com/vector-im/element-android/releases/tag/v1.0.13
|
||||
Registre de canvis complet: https://github.com/element-hq/element-android/releases/tag/v1.0.13
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Canvis principals d'aquesta versió: modificació dels permisos de sala, tema clar/fosc automàtic, correcció d'errors.
|
||||
Registre de canvis complet: https://github.com/vector-im/element-android/releases/tag/v1.0.14
|
||||
Registre de canvis complet: https://github.com/element-hq/element-android/releases/tag/v1.0.14
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Canvis principals d'aquesta versió: inici de sessió amb xarxes socials.
|
||||
Registre de canvis complet: https://github.com/vector-im/element-android/releases/tag/v1.0.15
|
||||
Registre de canvis complet: https://github.com/element-hq/element-android/releases/tag/v1.0.15
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Canvis principals d'aquesta versió: inici de sessió amb xarxes socials.
|
||||
Registre de canvis complet: https://github.com/vector-im/element-android/releases/tag/v1.0.15 i https://github.com/vector-im/element-android/releases/tag/v1.0.16
|
||||
Registre de canvis complet: https://github.com/element-hq/element-android/releases/tag/v1.0.15 i https://github.com/element-hq/element-android/releases/tag/v1.0.16
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Canvis principals d'aquesta versió: correcció d'errors!
|
||||
Registre de canvis complet: https://github.com/vector-im/element-android/releases/tag/v1.0.17
|
||||
Registre de canvis complet: https://github.com/element-hq/element-android/releases/tag/v1.0.17
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Canvis principals d'aquesta versió: millora de VoIP (trucades i videotrucades en xats personals) i correcció d'errors!
|
||||
Registre de canvis complet: https://github.com/vector-im/element-android/releases/tag/v1.1.0
|
||||
Registre de canvis complet: https://github.com/element-hq/element-android/releases/tag/v1.1.0
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Canvis principals d'aquesta versió: millora de rendiment i correcció d'errors!
|
||||
Registre de canvis complet: https://github.com/vector-im/element-android/releases/tag/v1.1.1
|
||||
Registre de canvis complet: https://github.com/element-hq/element-android/releases/tag/v1.1.1
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Canvis principals d'aquesta versió: millora de rendiment i correcció d'errors!
|
||||
Registre de canvis complet: https://github.com/vector-im/element-android/releases/tag/v1.1.2
|
||||
Registre de canvis complet: https://github.com/element-hq/element-android/releases/tag/v1.1.2
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Canvis principals d'aquesta versió: millora de rendiment i correcció d'errors!
|
||||
Registre de canvis complet: https://github.com/vector-im/element-android/releases/tag/v1.1.3
|
||||
Registre de canvis complet: https://github.com/element-hq/element-android/releases/tag/v1.1.3
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Tato nová verze obsahuje hlavně opravy chyb a vylepšení. Odeslání zprávy je nyní mhohem rychlejší.
|
||||
Plné znění změn: https://github.com/vector-im/element-android/releases/tag/v1.0.10
|
||||
Plné znění změn: https://github.com/element-hq/element-android/releases/tag/v1.0.10
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Tato nová verze obsahuje hlavně vylepšení v uživatelském rozhraní. Nyní můžete pozvat přátele a napsat DM velmi rychle skenem QR kódů.
|
||||
Plné znění změn: https://github.com/vector-im/element-android/releases/tag/v1.0.11
|
||||
Plné znění změn: https://github.com/element-hq/element-android/releases/tag/v1.0.11
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Hlavní změny v této verzi: Náhled URL, nová klávesice s Emoji, nové možnosti nastavení místností a sníh na vánoce!
|
||||
Plné znění změn: https://github.com/vector-im/element-android/releases/tag/v1.0.12
|
||||
Plné znění změn: https://github.com/element-hq/element-android/releases/tag/v1.0.12
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Hlavní změny v této verzi: Náhled URL, nová klávesice s Emoji, nové možnosti nastavení místností a sníh na vánoce!
|
||||
Plné znění změn: https://github.com/vector-im/element-android/releases/tag/v1.0.13
|
||||
Plné znění změn: https://github.com/element-hq/element-android/releases/tag/v1.0.13
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Hlavní změny v této verzi: Úpravy práv místností, automatický tmavý/světlý vzhled a řada oprav chyb.
|
||||
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.0.14
|
||||
Úplný záznam změn: https://github.com/element-hq/element-android/releases/tag/v1.0.14
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Hlavní změny v této verzi: Podpora přihlášení v sociálních sítích.
|
||||
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.0.15
|
||||
Úplný záznam změn: https://github.com/element-hq/element-android/releases/tag/v1.0.15
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Hlavní změny v této verzi: Podpora přihlášení v sociálních sítích.
|
||||
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.0.15 a https://github.com/vector-im/element-android/releases/tag/v1.0.16
|
||||
Úplný záznam změn: https://github.com/element-hq/element-android/releases/tag/v1.0.15 a https://github.com/element-hq/element-android/releases/tag/v1.0.16
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Hlavní změny v této verzi: Opravy chyb!
|
||||
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.0.17
|
||||
Úplný záznam změn: https://github.com/element-hq/element-android/releases/tag/v1.0.17
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Hlavní změny v této verzi: VoIP (audio a video hovory v DM), vylepšení a opravy chyb!
|
||||
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.0
|
||||
Úplný záznam změn: https://github.com/element-hq/element-android/releases/tag/v1.1.0
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Hlavní změny v této verzi: vylepšení výkonnosti a opravy chyb!
|
||||
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.1
|
||||
Úplný záznam změn: https://github.com/element-hq/element-android/releases/tag/v1.1.1
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Hlavní změny v této verzi: vylepšení výkonnosti a opravy chyb!
|
||||
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.2
|
||||
Úplný záznam změn: https://github.com/element-hq/element-android/releases/tag/v1.1.2
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Hlavní změny v této verzi: vylepšení výkonnosti a opravy chyb!
|
||||
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.3
|
||||
Úplný záznam změn: https://github.com/element-hq/element-android/releases/tag/v1.1.3
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Hlavní změny v této verzi: vylepšení výkonnosti a opravy chyb!
|
||||
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.4
|
||||
Úplný záznam změn: https://github.com/element-hq/element-android/releases/tag/v1.1.4
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Hlavní změny v této verzi: nutné opravy pro 1.1.4
|
||||
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.5
|
||||
Úplný záznam změn: https://github.com/element-hq/element-android/releases/tag/v1.1.5
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Hlavní změny v této verzi: nutné opravy chyb pro 1.1.5!
|
||||
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.6
|
||||
Úplný záznam změn: https://github.com/element-hq/element-android/releases/tag/v1.1.6
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Hlavní změny v této verzi: beta podpora pro Spaces. Komprimace videa před odesláním.
|
||||
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.7
|
||||
Úplný záznam změn: https://github.com/element-hq/element-android/releases/tag/v1.1.7
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Hlavní změny v této verzi: vylepšení pro Spaces
|
||||
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.8
|
||||
Úplný záznam změn: https://github.com/element-hq/element-android/releases/tag/v1.1.8
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Hlavní změny v této verzi: doplněna podpora pro síť gitter.im
|
||||
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.9
|
||||
Úplný záznam změn: https://github.com/element-hq/element-android/releases/tag/v1.1.9
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Hlavní změny v této verzi: aktualizace vzhledu a stylu a nové funkce prostorů.
|
||||
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.10
|
||||
Úplný záznam změn: https://github.com/element-hq/element-android/releases/tag/v1.1.10
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Hlavní změny v této verzi: aktualizace vzhledu a stylu a nové funkce prostorů (bugfix pro 1.1.10)
|
||||
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.11
|
||||
Úplný záznam změn: https://github.com/element-hq/element-android/releases/tag/v1.1.11
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user