mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-01-08 13:27:02 +01:00
Compare commits
6396 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
944e4102c8 | ||
|
|
bfe99a06f1 | ||
|
|
1fdf8cc9f8 | ||
|
|
0d084ab34e | ||
|
|
195f288492 | ||
|
|
870f8e3571 | ||
|
|
07579c910a | ||
|
|
9876695cdb | ||
|
|
158876059e | ||
|
|
1a23bc5add | ||
|
|
cf80ac9c1b | ||
|
|
6567e8db16 | ||
|
|
44b8a9fe1e | ||
|
|
e34fe272a5 | ||
|
|
13791aa932 | ||
|
|
b2b7dc3ccf | ||
|
|
543d5d1b6d | ||
|
|
e584aa3382 | ||
|
|
81c09685e9 | ||
|
|
144721ad07 | ||
|
|
95865bfd24 | ||
|
|
2a1e11e844 | ||
|
|
803476dcee | ||
|
|
ac8c0324e2 | ||
|
|
dcfc169240 | ||
|
|
c1a811c26a | ||
|
|
061d724f44 | ||
|
|
f5325f025c | ||
|
|
5da8809b4e | ||
|
|
7d6a7744a8 | ||
|
|
08fe13a8f6 | ||
|
|
5baa0b1904 | ||
|
|
35e8d04f66 | ||
|
|
7d4e804cec | ||
|
|
41997eb599 | ||
|
|
dbe52d3d52 | ||
|
|
9d7373467d | ||
|
|
e6767c8e8b | ||
|
|
5cbe9dd911 | ||
|
|
5492b4ae62 | ||
|
|
466252745d | ||
|
|
13cb52763d | ||
|
|
4291fa57f9 | ||
|
|
a29f73e624 | ||
|
|
c92931fe5a | ||
|
|
cc708e7ac5 | ||
|
|
c72a6cb9d4 | ||
|
|
58015feb3a | ||
|
|
65378200c6 | ||
|
|
07029ff4c0 | ||
|
|
8947cddf95 | ||
|
|
48e5c69c43 | ||
|
|
9867a9909d | ||
|
|
fa98fbd9f1 | ||
|
|
1fac3d3d1c | ||
|
|
f85fc98352 | ||
|
|
3e651b8de6 | ||
|
|
0d9b797ef0 | ||
|
|
d08fcd85a0 | ||
|
|
28144b6375 | ||
|
|
eeca3014e7 | ||
|
|
6750442d91 | ||
|
|
0524a4bddd | ||
|
|
a2e29c8c3a | ||
|
|
8cdb8c8dff | ||
|
|
96dd159ba8 | ||
|
|
1e1429177b | ||
|
|
cbf1c61c58 | ||
|
|
d122f7ff99 | ||
|
|
995fd2ed50 | ||
|
|
429e19615c | ||
|
|
3828ac6ecf | ||
|
|
c819b287f3 | ||
|
|
a2e05b771b | ||
|
|
12ce7e7674 | ||
|
|
320cc56b7e | ||
|
|
0b281677df | ||
|
|
47999199e9 | ||
|
|
aceffe3212 | ||
|
|
7fda4229c3 | ||
|
|
e3b7038003 | ||
|
|
0e41684cf0 | ||
|
|
27d8beb0cb | ||
|
|
df521b4c9b | ||
|
|
44e28886d7 | ||
|
|
e4e1b5b43d | ||
|
|
00e10d38c2 | ||
|
|
bc4bde8cee | ||
|
|
483e37c8b0 | ||
|
|
f82babb76a | ||
|
|
6e4a2898ab | ||
|
|
4c3b470ec0 | ||
|
|
8bcabe17e0 | ||
|
|
f34ff7090f | ||
|
|
5e56412e1e | ||
|
|
45ba48498d | ||
|
|
5726c14ed8 | ||
|
|
10252c3c1e | ||
|
|
c7f761a589 | ||
|
|
17475ec705 | ||
|
|
9168f871af | ||
|
|
49b2823056 | ||
|
|
b13f74c089 | ||
|
|
0c5b528c54 | ||
|
|
fb531139c8 | ||
|
|
a743e496c5 | ||
|
|
956eb98125 | ||
|
|
53f0b00328 | ||
|
|
c180150d54 | ||
|
|
a6e0396290 | ||
|
|
7e008af00a | ||
|
|
840b8d73b1 | ||
|
|
7dafb45ab4 | ||
|
|
c6528cc4ed | ||
|
|
a3edac62f1 | ||
|
|
fc8ee435e6 | ||
|
|
2e047e04de | ||
|
|
82c5c00092 | ||
|
|
b09ce1bb57 | ||
|
|
f38c838050 | ||
|
|
fa37287bdc | ||
|
|
fcd05f2f51 | ||
|
|
c1c14b4f2e | ||
|
|
fb2b150a1d | ||
|
|
92f61d6ef5 | ||
|
|
c94c79a057 | ||
|
|
dbcf1fca15 | ||
|
|
923c220338 | ||
|
|
8a0cf5ed97 | ||
|
|
1f307ba2f0 | ||
|
|
67ae9b0376 | ||
|
|
97e5e22b4e | ||
|
|
6f0b16de49 | ||
|
|
cc5633db30 | ||
|
|
af70b6b689 | ||
|
|
87743e8e5d | ||
|
|
047d5987c4 | ||
|
|
da45647a39 | ||
|
|
79a4c4051e | ||
|
|
07f3507f11 | ||
|
|
218a739996 | ||
|
|
d84a13bb7e | ||
|
|
1a1f4351ca | ||
|
|
7a0dd5b455 | ||
|
|
dae0520375 | ||
|
|
eb2968de6e | ||
|
|
3a924ab333 | ||
|
|
196db19be8 | ||
|
|
25e9241d42 | ||
|
|
9baaaefc5f | ||
|
|
3fb707f78d | ||
|
|
8b98ed7447 | ||
|
|
ad18765ebc | ||
|
|
473e5dbf75 | ||
|
|
9434936679 | ||
|
|
a510d5e3ce | ||
|
|
9a77c3a87a | ||
|
|
14ad19e1e3 | ||
|
|
b1c535a2ce | ||
|
|
6287460614 | ||
|
|
dd62dab831 | ||
|
|
1f4ba8f267 | ||
|
|
c0b78835ac | ||
|
|
4fe1acab36 | ||
|
|
46099058b5 | ||
|
|
4f4810acc4 | ||
|
|
3739b771e5 | ||
|
|
37cb62f6eb | ||
|
|
0de4750fad | ||
|
|
91ffe5e707 | ||
|
|
d0c9350ac4 | ||
|
|
6244604d03 | ||
|
|
5fd7e2f7e6 | ||
|
|
3cdac58070 | ||
|
|
6d138e80fb | ||
|
|
617150cf50 | ||
|
|
d1b55d9ff4 | ||
|
|
2f6d512614 | ||
|
|
c2325181ea | ||
|
|
a6c13dcfbe | ||
|
|
f574694cc0 | ||
|
|
b775d0710f | ||
|
|
b17955c968 | ||
|
|
0de7781b51 | ||
|
|
57bde1c54c | ||
|
|
02aa5cab96 | ||
|
|
7674a6fe47 | ||
|
|
96ac6a6a12 | ||
|
|
5b4e678f14 | ||
|
|
b56e62e5de | ||
|
|
a167c8d3ac | ||
|
|
6ac508fb93 | ||
|
|
a2c0febccc | ||
|
|
9cf404250b | ||
|
|
b5f6722ae7 | ||
|
|
150f26731c | ||
|
|
d50b89262c | ||
|
|
f465daf585 | ||
|
|
f987a48b3a | ||
|
|
ba0d41f743 | ||
|
|
9480013868 | ||
|
|
96a4e071d6 | ||
|
|
e42bbaaaf7 | ||
|
|
6cbb094cfb | ||
|
|
cd1b7dbc2c | ||
|
|
6b199a1154 | ||
|
|
b6a905709a | ||
|
|
e5d001e434 | ||
|
|
7d53b9a5b5 | ||
|
|
febe1aa9a0 | ||
|
|
a8a618af1d | ||
|
|
08d569ccf6 | ||
|
|
bb92b03156 | ||
|
|
d8b92662ba | ||
|
|
f97cda9196 | ||
|
|
759c5a2eb8 | ||
|
|
d300b007f2 | ||
|
|
ba9e2449f3 | ||
|
|
42c77d7d42 | ||
|
|
5c01e3a826 | ||
|
|
df0a14403c | ||
|
|
3afa124bea | ||
|
|
ec0fb6a4c7 | ||
|
|
77dfaab17e | ||
|
|
e731cc04c1 | ||
|
|
eca77ad8b3 | ||
|
|
a7bd0cfde8 | ||
|
|
f51dacff08 | ||
|
|
57c5575a8d | ||
|
|
5e2df77da7 | ||
|
|
c059977c78 | ||
|
|
8499a44dfe | ||
|
|
150e7d40dd | ||
|
|
ca8faf00c2 | ||
|
|
4af508c532 | ||
|
|
6a6c45189e | ||
|
|
21a9c82df4 | ||
|
|
4a087a816e | ||
|
|
a98b12a2fb | ||
|
|
77ed74b353 | ||
|
|
357fb8f66d | ||
|
|
5f4514a88e | ||
|
|
0b1bac1f4a | ||
|
|
ec26f67b38 | ||
|
|
c057babf2b | ||
|
|
b9367c0ca6 | ||
|
|
f41fe145fc | ||
|
|
0ed166eae2 | ||
|
|
a4c8815913 | ||
|
|
0b9b1ef5e4 | ||
|
|
c3ffd17e43 | ||
|
|
b2c8900bae | ||
|
|
97fdf033c8 | ||
|
|
2074d32cb1 | ||
|
|
e50cd85e9a | ||
|
|
e5f171c836 | ||
|
|
d931937538 | ||
|
|
ef8415ddfe | ||
|
|
e160e223f0 | ||
|
|
994652a535 | ||
|
|
ca06f2ae5b | ||
|
|
445ca5aaf2 | ||
|
|
7366db477a | ||
|
|
2a6de71767 | ||
|
|
89330986f4 | ||
|
|
6767ff736b | ||
|
|
2b2c813e69 | ||
|
|
1cf4f08ae7 | ||
|
|
4b47d71749 | ||
|
|
195c265a36 | ||
|
|
8fb93dc6ee | ||
|
|
5779b43c80 | ||
|
|
08636c6a22 | ||
|
|
0431b17546 | ||
|
|
28366fe5c4 | ||
|
|
2f36366902 | ||
|
|
78ca0d5846 | ||
|
|
8a7e07d264 | ||
|
|
b8f1df776b | ||
|
|
6d9d4a7112 | ||
|
|
2fca99e3c5 | ||
|
|
6ae7cc059b | ||
|
|
dba3bd0a3a | ||
|
|
8c6b447a33 | ||
|
|
a357d62ff5 | ||
|
|
b482188782 | ||
|
|
59fd84c5ec | ||
|
|
f408c34aca | ||
|
|
0a19f0dfc7 | ||
|
|
07dd66ecbc | ||
|
|
4897c44b64 | ||
|
|
1aa04bc201 | ||
|
|
a8d2aeedf2 | ||
|
|
02f9e3b22e | ||
|
|
898d612af6 | ||
|
|
e241700414 | ||
|
|
ad8b959493 | ||
|
|
a070af5169 | ||
|
|
78f5b4c3a4 | ||
|
|
cca10d2455 | ||
|
|
c51103404f | ||
|
|
7a8c0bc6fb | ||
|
|
c0c0e6465f | ||
|
|
7181626b5a | ||
|
|
53047cea80 | ||
|
|
5757852469 | ||
|
|
f0d6384cf3 | ||
|
|
49007369cf | ||
|
|
66754afd76 | ||
|
|
462a107c7c | ||
|
|
420a24e607 | ||
|
|
d234536cf7 | ||
|
|
5d21cd05c5 | ||
|
|
6abc7df75d | ||
|
|
b9a534b75f | ||
|
|
a411db0c82 | ||
|
|
7b7742719c | ||
|
|
b9ccb9f049 | ||
|
|
ff290eef9d | ||
|
|
6431ccd370 | ||
|
|
db191b8b75 | ||
|
|
429569dcf3 | ||
|
|
130561cfbb | ||
|
|
498bb3a7e2 | ||
|
|
c6d31ccbe7 | ||
|
|
a63288009a | ||
|
|
1ff5fa8794 | ||
|
|
460f242967 | ||
|
|
a3042b8435 | ||
|
|
e171264dc2 | ||
|
|
aa6910acb1 | ||
|
|
778bb7ad9f | ||
|
|
d73fae4f95 | ||
|
|
d1f55bb9ea | ||
|
|
76b4237cf1 | ||
|
|
19c4255c7d | ||
|
|
a8ee7c58ea | ||
|
|
10bfb014eb | ||
|
|
2add9db780 | ||
|
|
4da866aaa3 | ||
|
|
9c21e2dc14 | ||
|
|
d17ac2bf79 | ||
|
|
d4083abee2 | ||
|
|
1cfce6182d | ||
|
|
16c28c788d | ||
|
|
17b80aa0f1 | ||
|
|
8e4ef1a4ac | ||
|
|
87720ef701 | ||
|
|
bbe020bb37 | ||
|
|
af98395e25 | ||
|
|
a2638d01dc | ||
|
|
982415f578 | ||
|
|
5b13328bdd | ||
|
|
887da6dc1a | ||
|
|
1c264e0899 | ||
|
|
af5b9903ee | ||
|
|
292874a0c2 | ||
|
|
b2e1337d4e | ||
|
|
ab41b61e84 | ||
|
|
ee904ae1b1 | ||
|
|
79e037eef4 | ||
|
|
1d25e552d0 | ||
|
|
7bbefe9ee7 | ||
|
|
792c09167b | ||
|
|
5f12351a72 | ||
|
|
fc880f6000 | ||
|
|
78758a3fb0 | ||
|
|
c1c0af36b9 | ||
|
|
32f3e6bf70 | ||
|
|
6d531a9a6b | ||
|
|
5e955f034e | ||
|
|
1ecaf039ca | ||
|
|
4e202e4523 | ||
|
|
7c0bf9f1f4 | ||
|
|
82fea7eff1 | ||
|
|
08be4abd56 | ||
|
|
b9e8b807fd | ||
|
|
4e20ae07ca | ||
|
|
123269ea5e | ||
|
|
6ef40f53c3 | ||
|
|
bed18a418c | ||
|
|
665851300d | ||
|
|
63cc35c8ce | ||
|
|
98287d7883 | ||
|
|
dded74736d | ||
|
|
1dae8fa8f3 | ||
|
|
4a8e3624e4 | ||
|
|
b8c8884065 | ||
|
|
7ada904271 | ||
|
|
28e6545f6f | ||
|
|
789312c6ce | ||
|
|
7740258440 | ||
|
|
3984ee79bf | ||
|
|
5a7985f791 | ||
|
|
ca3c758046 | ||
|
|
09f4dead7f | ||
|
|
cba6507d2b | ||
|
|
ceba2708c6 | ||
|
|
38e7b3b7ae | ||
|
|
73590c3ea9 | ||
|
|
922d21f9f1 | ||
|
|
675d79a4aa | ||
|
|
03cf77723e | ||
|
|
f19ba94a2c | ||
|
|
7b0f97597d | ||
|
|
7f8c5c9f0c | ||
|
|
e33e23909f | ||
|
|
2dae107977 | ||
|
|
0c5eb1e32d | ||
|
|
9d7c9c1746 | ||
|
|
feead9c68b | ||
|
|
5d4b365910 | ||
|
|
dda4bfa6b8 | ||
|
|
3f3e837c36 | ||
|
|
006165574e | ||
|
|
c8b7995d8c | ||
|
|
82ff6400eb | ||
|
|
9b3e8503a8 | ||
|
|
7e291fb303 | ||
|
|
086eb58d80 | ||
|
|
96f34ee4e9 | ||
|
|
7001d8c79f | ||
|
|
6e515954dd | ||
|
|
f489626f6e | ||
|
|
c7d1465946 | ||
|
|
76ebed0897 | ||
|
|
fcfbb67123 | ||
|
|
bc603f88ce | ||
|
|
f39691cdbc | ||
|
|
1383e9666c | ||
|
|
eb235eef37 | ||
|
|
fc68f1810e | ||
|
|
49a6359990 | ||
|
|
311a4dbae9 | ||
|
|
55c5cf850f | ||
|
|
a4f4d5985a | ||
|
|
c0d5f36224 | ||
|
|
56264eb089 | ||
|
|
66c8d38e59 | ||
|
|
a06a62b986 | ||
|
|
7d742760e7 | ||
|
|
9207983abb | ||
|
|
78d65a87cd | ||
|
|
2274e0c67d | ||
|
|
d9c0af232b | ||
|
|
785160653c | ||
|
|
eedea3159c | ||
|
|
768603eb61 | ||
|
|
bb67764be6 | ||
|
|
16c7a22410 | ||
|
|
e7d3aadec3 | ||
|
|
a3b7c70fe0 | ||
|
|
f44bf99dfd | ||
|
|
13db8575e0 | ||
|
|
c26e23b904 | ||
|
|
5c431b5ac5 | ||
|
|
c85305695e | ||
|
|
4c796c0b53 | ||
|
|
8cea22aaf1 | ||
|
|
b6fe34cada | ||
|
|
e9d0f16d2e | ||
|
|
df80bd461d | ||
|
|
a1d5df23a8 | ||
|
|
de72a9860d | ||
|
|
bbd108be7e | ||
|
|
de130171e9 | ||
|
|
4e3c965511 | ||
|
|
ae57ca07f0 | ||
|
|
405d79e72f | ||
|
|
733041ba2b | ||
|
|
9100e03be9 | ||
|
|
a5ecbc4088 | ||
|
|
ae65e55c14 | ||
|
|
efa09182d3 | ||
|
|
c0217a3cc4 | ||
|
|
7f4a2ca6db | ||
|
|
5d6160cf7a | ||
|
|
3753642f23 | ||
|
|
dae63ce3b9 | ||
|
|
1fe9d95322 | ||
|
|
6ef439bda4 | ||
|
|
dd14fe0c42 | ||
|
|
3d54cb8385 | ||
|
|
792331e5a6 | ||
|
|
6caf472798 | ||
|
|
0d0aaca0e6 | ||
|
|
5a0f9a3a2d | ||
|
|
65f457e9d1 | ||
|
|
b1ad9160cc | ||
|
|
bdddea9b04 | ||
|
|
9fb9c6a61e | ||
|
|
a397e72eb0 | ||
|
|
da9c2b649b | ||
|
|
7f6c91e166 | ||
|
|
6d97fb2dc8 | ||
|
|
2979bfbc42 | ||
|
|
c8458dc059 | ||
|
|
6ea274a4e4 | ||
|
|
f0e045d17d | ||
|
|
3caef119a7 | ||
|
|
b395001808 | ||
|
|
e11bafcc93 | ||
|
|
28751d2d36 | ||
|
|
f519a88ee0 | ||
|
|
bb65085727 | ||
|
|
bf2a107d7d | ||
|
|
915663e7db | ||
|
|
31fd6258e0 | ||
|
|
af4dc80ce9 | ||
|
|
996a235e12 | ||
|
|
8e2570033c | ||
|
|
c08135d6e3 | ||
|
|
680f89e0f7 | ||
|
|
98ef328331 | ||
|
|
0c78b12f59 | ||
|
|
98d312a9d4 | ||
|
|
35797e8680 | ||
|
|
ca64239809 | ||
|
|
e6be44623a | ||
|
|
3d8fbd0507 | ||
|
|
de4b66b51e | ||
|
|
45d0e7da2b | ||
|
|
35d0cc5104 | ||
|
|
0fbec1ca02 | ||
|
|
d37bab3d2d | ||
|
|
ad28c41c46 | ||
|
|
db06840338 | ||
|
|
73c259342b | ||
|
|
c36a80dad5 | ||
|
|
cfff0a2af8 | ||
|
|
e887b3b395 | ||
|
|
d4b62d8118 | ||
|
|
32fc88abd2 | ||
|
|
0ad71815bb | ||
|
|
4f1e3b85bf | ||
|
|
202abd351b | ||
|
|
0da616f917 | ||
|
|
0c238a8eea | ||
|
|
d201ae4335 | ||
|
|
35bb4280d0 | ||
|
|
3cb0638c7e | ||
|
|
f4dbdbdd7a | ||
|
|
b7fccc3211 | ||
|
|
e637902892 | ||
|
|
a0eacca17f | ||
|
|
656ac441cd | ||
|
|
9e0781d86c | ||
|
|
81f99264b3 | ||
|
|
28eb4c80f6 | ||
|
|
19bf2e3614 | ||
|
|
3e300e9151 | ||
|
|
3b542d2fdf | ||
|
|
46cf9a2334 | ||
|
|
a81bc2e7b5 | ||
|
|
1772af60a2 | ||
|
|
5d6f1ba676 | ||
|
|
27c52bebc7 | ||
|
|
6ccc059d7a | ||
|
|
de3f6f9fff | ||
|
|
62c9594584 | ||
|
|
548678bf44 | ||
|
|
f8c624a62d | ||
|
|
fcdf79f7e9 | ||
|
|
31e3c46641 | ||
|
|
eeda2ec985 | ||
|
|
7af8b930be | ||
|
|
6f5429ec49 | ||
|
|
22f9629174 | ||
|
|
301f26aca1 | ||
|
|
2159e2722e | ||
|
|
759ea40b22 | ||
|
|
35c1438514 | ||
|
|
d9e8b3e9c3 | ||
|
|
18cb5639a8 | ||
|
|
9b7a7f93b7 | ||
|
|
b6ff870549 | ||
|
|
8be1c86223 | ||
|
|
43e658f388 | ||
|
|
fdc813a5ca | ||
|
|
244394865f | ||
|
|
f5f8861eac | ||
|
|
e8bb2de8b6 | ||
|
|
b5531a1f6b | ||
|
|
55f38016d7 | ||
|
|
1490fb300c | ||
|
|
b33bc2ecd0 | ||
|
|
33072c7ee3 | ||
|
|
db881ceeb0 | ||
|
|
9335705389 | ||
|
|
04b37fffd5 | ||
|
|
e5c3b15a45 | ||
|
|
5c8742e557 | ||
|
|
a11f9ab4c9 | ||
|
|
65df14036c | ||
|
|
97be8dbd14 | ||
|
|
7a7d025956 | ||
|
|
29f0ae0395 | ||
|
|
6f306e1259 | ||
|
|
465df35d27 | ||
|
|
9e4a58ee95 | ||
|
|
6f0e2f9994 | ||
|
|
368c7756ef | ||
|
|
3cf6685eeb | ||
|
|
ba4b9cf549 | ||
|
|
25cfd07ae1 | ||
|
|
1c3bc1ee20 | ||
|
|
a9181a0184 | ||
|
|
f9e967973e | ||
|
|
ce9cba1af2 | ||
|
|
93dcf71fc7 | ||
|
|
61805aada2 | ||
|
|
251ea6ded9 | ||
|
|
be1ed8c0d4 | ||
|
|
dda0aa237c | ||
|
|
1552e75df2 | ||
|
|
3751642782 | ||
|
|
871b456be3 | ||
|
|
88e79ac669 | ||
|
|
ab4328310c | ||
|
|
ffa20c0073 | ||
|
|
13750188fd | ||
|
|
a5be152b87 | ||
|
|
181b1e45da | ||
|
|
260b55eebc | ||
|
|
6e6f474df7 | ||
|
|
3548e6820e | ||
|
|
3443c73d0e | ||
|
|
5f4a26ebba | ||
|
|
d15ff6da8d | ||
|
|
2555203da8 | ||
|
|
90ecd5e10f | ||
|
|
6a2d9e4e39 | ||
|
|
336de6a7db | ||
|
|
c485da2816 | ||
|
|
741457ffa5 | ||
|
|
0d2c0fd5da | ||
|
|
affe40a206 | ||
|
|
22786a6bdc | ||
|
|
7d62a17882 | ||
|
|
c224a2ca61 | ||
|
|
f10390ee2f | ||
|
|
3d40314953 | ||
|
|
a97b77b187 | ||
|
|
292954743f | ||
|
|
104ac50a95 | ||
|
|
06840f466b | ||
|
|
7cbdfa7bf1 | ||
|
|
73b09ffd9f | ||
|
|
cf0c8a2149 | ||
|
|
f85e59c20c | ||
|
|
69c62677f3 | ||
|
|
ae0bf84431 | ||
|
|
63d2a5dd71 | ||
|
|
3da341fb1b | ||
|
|
f42409cb17 | ||
|
|
e703551b4a | ||
|
|
d74386acd1 | ||
|
|
7816c430a5 | ||
|
|
0549b02315 | ||
|
|
2a7afa38d0 | ||
|
|
44fb9caf6b | ||
|
|
4384074283 | ||
|
|
7cd061be6d | ||
|
|
31c54c9609 | ||
|
|
658f85b85a | ||
|
|
52e9fe077f | ||
|
|
a1b0a941ae | ||
|
|
d683ab0afd | ||
|
|
b463cb11aa | ||
|
|
5bcd767d49 | ||
|
|
2de1a51b78 | ||
|
|
3e6a297b34 | ||
|
|
310c010c19 | ||
|
|
f803fed026 | ||
|
|
b5aa55d172 | ||
|
|
032c917493 | ||
|
|
9f4e19ef41 | ||
|
|
b3c520ed54 | ||
|
|
40300c1e4f | ||
|
|
665839637f | ||
|
|
27c4b1be0e | ||
|
|
42afc4f4fc | ||
|
|
da0aac2a18 | ||
|
|
38c538b0c5 | ||
|
|
9a77bcadb2 | ||
|
|
2a15a068b8 | ||
|
|
88517bfdf7 | ||
|
|
cbd362cef1 | ||
|
|
d9c8d8d4e2 | ||
|
|
038e8e1510 | ||
|
|
1727f2b813 | ||
|
|
e530968a9a | ||
|
|
a5323b75d9 | ||
|
|
52709ddc4a | ||
|
|
86783e9815 | ||
|
|
f778d010e5 | ||
|
|
5dd9049810 | ||
|
|
98268cc10a | ||
|
|
529bccc0bf | ||
|
|
75e966ce19 | ||
|
|
a09d8bf14b | ||
|
|
d5a5f858c0 | ||
|
|
2cf354ff28 | ||
|
|
3ea0a10c73 | ||
|
|
6f50a38e5f | ||
|
|
1fc7a59b7c | ||
|
|
c7e0850b7b | ||
|
|
fd01ee391b | ||
|
|
44165621f0 | ||
|
|
686a48a29b | ||
|
|
e444881320 | ||
|
|
12282a8dc7 | ||
|
|
95dcbb1891 | ||
|
|
04588bc7e0 | ||
|
|
172c63f1e2 | ||
|
|
b5622cd07a | ||
|
|
ba73bc7d50 | ||
|
|
bdbf0b8c14 | ||
|
|
79227b9db6 | ||
|
|
4aadaf9bf1 | ||
|
|
403969587e | ||
|
|
1be880438a | ||
|
|
80e9fc0c43 | ||
|
|
559a0442d8 | ||
|
|
724620a24e | ||
|
|
75f2be1891 | ||
|
|
aba4e462a8 | ||
|
|
58aa274b21 | ||
|
|
d9c054b1f5 | ||
|
|
53a92215fc | ||
|
|
d7617a47d3 | ||
|
|
ada3a9ad88 | ||
|
|
c22a3fbcb7 | ||
|
|
9c9b5d9dca | ||
|
|
dd03d1ee63 | ||
|
|
ae196fd592 | ||
|
|
b3a0bf7919 | ||
|
|
58b219f671 | ||
|
|
889bc1e514 | ||
|
|
fcc1d46b63 | ||
|
|
1d15070698 | ||
|
|
380add882c | ||
|
|
4c067bb728 | ||
|
|
42ba008323 | ||
|
|
b7d528b6e8 | ||
|
|
176f2c2870 | ||
|
|
2e3a2b3f96 | ||
|
|
f4f8a1bd69 | ||
|
|
34e4e7e5bd | ||
|
|
5914fc1ffd | ||
|
|
bad435bb26 | ||
|
|
41f4d971dd | ||
|
|
79d4782b23 | ||
|
|
cfdaea4363 | ||
|
|
d66fac3c3c | ||
|
|
66619ca059 | ||
|
|
79b2cdca7b | ||
|
|
3e9c7f83c8 | ||
|
|
561882c2f1 | ||
|
|
7365ba14d0 | ||
|
|
bf3e427017 | ||
|
|
50169f9271 | ||
|
|
1f64c1cf83 | ||
|
|
6648402ddb | ||
|
|
0816714782 | ||
|
|
a8fb9e0804 | ||
|
|
309a0661c3 | ||
|
|
0d3aa3a187 | ||
|
|
94391775c8 | ||
|
|
b1b1f1ba21 | ||
|
|
ba525f068b | ||
|
|
ffdb5d44d7 | ||
|
|
3b04cfd267 | ||
|
|
462b48edae | ||
|
|
05d5649c9c | ||
|
|
b415e79ef5 | ||
|
|
477041a884 | ||
|
|
425346b1f2 | ||
|
|
46684966a1 | ||
|
|
eb961ee052 | ||
|
|
0a5bdf6734 | ||
|
|
ec3ea5c4ae | ||
|
|
9cf39654d9 | ||
|
|
139c6c2c8d | ||
|
|
b20e991a35 | ||
|
|
81f61630cb | ||
|
|
e8363a3be1 | ||
|
|
27611593bd | ||
|
|
6b6ba2205c | ||
|
|
aa2c9390ef | ||
|
|
45f121b8bc | ||
|
|
400cd7ea45 | ||
|
|
62c2f9479b | ||
|
|
3a8218be44 | ||
|
|
5881469855 | ||
|
|
4e662f61c3 | ||
|
|
efd14d8611 | ||
|
|
57bc924d8d | ||
|
|
3715b0c378 | ||
|
|
2783342f33 | ||
|
|
1920a1f3de | ||
|
|
29a25454d8 | ||
|
|
47920f50f3 | ||
|
|
cc8d8074bb | ||
|
|
b4250c1235 | ||
|
|
c428f0787d | ||
|
|
c3b378101c | ||
|
|
489335e4d0 | ||
|
|
ddc075d24c | ||
|
|
50a73965d9 | ||
|
|
d5fc4547a2 | ||
|
|
84e142631e | ||
|
|
8edfb8fe80 | ||
|
|
d9c98bbc29 | ||
|
|
4ff7e4150f | ||
|
|
f4044ffd51 | ||
|
|
2b747d02d3 | ||
|
|
6a722e2961 | ||
|
|
230c199ee5 | ||
|
|
87bb89ab15 | ||
|
|
e9dccf82ab | ||
|
|
4cc74602c1 | ||
|
|
6b2cde7eb0 | ||
|
|
af65d79573 | ||
|
|
dabf657761 | ||
|
|
4572f62ce5 | ||
|
|
f2093ec423 | ||
|
|
51aba915f0 | ||
|
|
9fff2b535f | ||
|
|
3ede2a6467 | ||
|
|
35bfb0f83e | ||
|
|
832f580aa8 | ||
|
|
03b7cb4690 | ||
|
|
d744ca33b6 | ||
|
|
05728a6dc2 | ||
|
|
10a5629fe8 | ||
|
|
38e401007a | ||
|
|
3508301f06 | ||
|
|
3df2c5fe6a | ||
|
|
dc15a6cecc | ||
|
|
f6a292d47f | ||
|
|
f0d084c59c | ||
|
|
9fc3727709 | ||
|
|
218e9cfcb9 | ||
|
|
9e029c0867 | ||
|
|
01a3106450 | ||
|
|
416419ffde | ||
|
|
57a8d505c0 | ||
|
|
ddcb065b22 | ||
|
|
8c64a0b6f8 | ||
|
|
cc68133ddc | ||
|
|
692817e382 | ||
|
|
651e823c30 | ||
|
|
11bb7ccf60 | ||
|
|
c3dda238e9 | ||
|
|
ff95257e5f | ||
|
|
e284b07da7 | ||
|
|
49a2218358 | ||
|
|
c46ccce373 | ||
|
|
2cdf6f9cc0 | ||
|
|
8bb0772ae5 | ||
|
|
2a34cf740b | ||
|
|
314425e32e | ||
|
|
26e3eb9350 | ||
|
|
a3dbb55404 | ||
|
|
f62dd6933c | ||
|
|
3e7b04891d | ||
|
|
ddf96e28b8 | ||
|
|
567cc50fb7 | ||
|
|
79c13aec6e | ||
|
|
26f01431ff | ||
|
|
55e3a94da3 | ||
|
|
0fc69ca222 | ||
|
|
51a43d58de | ||
|
|
b27a7261be | ||
|
|
8144f5cedd | ||
|
|
f67ae38aba | ||
|
|
6b5fd308cb | ||
|
|
fb4ab87fdd | ||
|
|
d302c761d7 | ||
|
|
814c8e382c | ||
|
|
b98be49bfa | ||
|
|
91d36b4b47 | ||
|
|
03c36b4f65 | ||
|
|
792a04cf48 | ||
|
|
a1bb281386 | ||
|
|
941ff0a5a6 | ||
|
|
39b98dab3b | ||
|
|
f9434ac812 | ||
|
|
022ed601ec | ||
|
|
e131d0ff4b | ||
|
|
f6f8e4c4eb | ||
|
|
5880f3855b | ||
|
|
1a25dacc73 | ||
|
|
b6a207c4b6 | ||
|
|
cccadec44c | ||
|
|
edc43e39ca | ||
|
|
5eaf60e8a2 | ||
|
|
2182aabe35 | ||
|
|
2ccf492707 | ||
|
|
0506f06a18 | ||
|
|
2e8dfa73d2 | ||
|
|
453bb613af | ||
|
|
7833ace553 | ||
|
|
6a01be2c38 | ||
|
|
ac4f725433 | ||
|
|
a1f319afa7 | ||
|
|
714ca349ff | ||
|
|
dec1aca97f | ||
|
|
409f58e55a | ||
|
|
f721c1f226 | ||
|
|
a1643b0a2e | ||
|
|
f6576e01f3 | ||
|
|
758a21a22f | ||
|
|
167ec5a3a8 | ||
|
|
8c24d7e942 | ||
|
|
5035dc6754 | ||
|
|
ba431c5bfd | ||
|
|
a96187bd04 | ||
|
|
127cf4e412 | ||
|
|
aa876838d4 | ||
|
|
1a9473c896 | ||
|
|
d52037fd5e | ||
|
|
bcba63e4b2 | ||
|
|
f303c29d4c | ||
|
|
cf0c45a319 | ||
|
|
67933a8470 | ||
|
|
a0dca4f401 | ||
|
|
2bf2dfe685 | ||
|
|
3d59c797f9 | ||
|
|
244a3b936e | ||
|
|
4484727c69 | ||
|
|
5ddfbc1f9a | ||
|
|
740230c870 | ||
|
|
f63d389d26 | ||
|
|
fa81968dbb | ||
|
|
d39c4121a9 | ||
|
|
b6affde530 | ||
|
|
54a3e67eed | ||
|
|
f6daf0b1f6 | ||
|
|
939e8db692 | ||
|
|
c1a80a2001 | ||
|
|
bee877fe41 | ||
|
|
5460b00c8b | ||
|
|
92aba94e78 | ||
|
|
5f9cf69a24 | ||
|
|
7b280ebde1 | ||
|
|
979d3c6011 | ||
|
|
7ac7e48e66 | ||
|
|
226b04e014 | ||
|
|
a8c62c2d78 | ||
|
|
4066243c6f | ||
|
|
c25a5a821f | ||
|
|
09e188621c | ||
|
|
81e0e14008 | ||
|
|
bb88aff663 | ||
|
|
7d0304fd06 | ||
|
|
f280170021 | ||
|
|
57cdae724a | ||
|
|
dc08987a60 | ||
|
|
288e0487a0 | ||
|
|
3805348afd | ||
|
|
a16a11df81 | ||
|
|
d724f6de70 | ||
|
|
6d2730d15f | ||
|
|
d5a2bf16d9 | ||
|
|
239610f1cd | ||
|
|
f4b0e6372a | ||
|
|
cc5d33606b | ||
|
|
3ada3c20a2 | ||
|
|
073caffef4 | ||
|
|
d359b3adc8 | ||
|
|
f5d2f86c23 | ||
|
|
a612ba845e | ||
|
|
dfba79313f | ||
|
|
02de31b7c0 | ||
|
|
b93095a9c0 | ||
|
|
950711c836 | ||
|
|
c48f8f75d4 | ||
|
|
9152ea8f1c | ||
|
|
1e0033166f | ||
|
|
dfe9169e39 | ||
|
|
c140185ee0 | ||
|
|
c681988892 | ||
|
|
2ba1dcf03a | ||
|
|
dfa139b72f | ||
|
|
6559d1a520 | ||
|
|
b9c1ec2eed | ||
|
|
8ce3a5524a | ||
|
|
71380d6fb1 | ||
|
|
aa376a2c0d | ||
|
|
52a237c355 | ||
|
|
e6428da21f | ||
|
|
3b89e6f5a4 | ||
|
|
d7e36079fc | ||
|
|
88ec74d81e | ||
|
|
c9e8ba4955 | ||
|
|
d8f2946ba6 | ||
|
|
fc303c2c38 | ||
|
|
8b59e6e626 | ||
|
|
de42a90a34 | ||
|
|
35d328964f | ||
|
|
9d10426295 | ||
|
|
287bc99a0f | ||
|
|
f92bfc62f1 | ||
|
|
82ad79dd1f | ||
|
|
c95fb78cf4 | ||
|
|
a018e0493b | ||
|
|
0e61f41e31 | ||
|
|
87f6278bf9 | ||
|
|
22f8390ef9 | ||
|
|
ec11abbc52 | ||
|
|
974bf4708c | ||
|
|
319d722a59 | ||
|
|
bf2c5d9ec0 | ||
|
|
7974a9f43b | ||
|
|
72ea4ff8b3 | ||
|
|
991124c9e4 | ||
|
|
47b5386c0c | ||
|
|
5381486c25 | ||
|
|
375ce4c798 | ||
|
|
d2c6148662 | ||
|
|
84101ab821 | ||
|
|
bd0db76e31 | ||
|
|
8743c2329e | ||
|
|
46244e8e84 | ||
|
|
8afac77841 | ||
|
|
6452369351 | ||
|
|
641d838140 | ||
|
|
2d5276f742 | ||
|
|
0dae5d0402 | ||
|
|
022dde4754 | ||
|
|
0aaf00dc5e | ||
|
|
dfb5736ac0 | ||
|
|
04a72ed947 | ||
|
|
105f94690d | ||
|
|
36bbce78d7 | ||
|
|
5a9f52fb11 | ||
|
|
5a4822f89e | ||
|
|
c934127d84 | ||
|
|
2128b88571 | ||
|
|
84d361e8a9 | ||
|
|
c7381cf1d5 | ||
|
|
11354a45ce | ||
|
|
7703991f4c | ||
|
|
9bb6d57515 | ||
|
|
0aa213a31d | ||
|
|
bef119b03b | ||
|
|
d036740c8b | ||
|
|
2c9b86d873 | ||
|
|
fb97ce040b | ||
|
|
c2adab0716 | ||
|
|
06882b4fbd | ||
|
|
079a3b49de | ||
|
|
c9dca6802e | ||
|
|
019c05c8e4 | ||
|
|
159629372d | ||
|
|
3a6dd45741 | ||
|
|
e19ecd2ba1 | ||
|
|
3ead98a770 | ||
|
|
9ca32aa3ea | ||
|
|
9d9df949ef | ||
|
|
cd5c22aaa1 | ||
|
|
39a03d876e | ||
|
|
992833bdc9 | ||
|
|
e2c8880363 | ||
|
|
e6a7f9193b | ||
|
|
3dc85595b1 | ||
|
|
cb4f4ff89c | ||
|
|
fe85ee5307 | ||
|
|
fa3a5f80a1 | ||
|
|
a881e6b3d5 | ||
|
|
e62df46c61 | ||
|
|
24d853966f | ||
|
|
b87e51567e | ||
|
|
3a48fa03a5 | ||
|
|
ebad5364b9 | ||
|
|
3720d559a3 | ||
|
|
522e6b8001 | ||
|
|
32a8936fc6 | ||
|
|
fe8dfc7da3 | ||
|
|
4dc0a4c8c6 | ||
|
|
df8aa42ee4 | ||
|
|
c4951dc605 | ||
|
|
a5edc29be7 | ||
|
|
2c608c5a92 | ||
|
|
8e0af3fc27 | ||
|
|
af8366f0fe | ||
|
|
db90802e6e | ||
|
|
59108365f1 | ||
|
|
092ee49139 | ||
|
|
c324cd5953 | ||
|
|
5cfbd72fa8 | ||
|
|
ce942b0585 | ||
|
|
91ed50d993 | ||
|
|
a93dc423f0 | ||
|
|
399df8ab68 | ||
|
|
8d383cba9d | ||
|
|
dadb12a6e5 | ||
|
|
d7cecc1d8c | ||
|
|
5b76668cbe | ||
|
|
64cc6b7af7 | ||
|
|
15f3c2ff66 | ||
|
|
0e5c654d5b | ||
|
|
de446c4240 | ||
|
|
4f335b9471 | ||
|
|
6269aa6398 | ||
|
|
da0b96a5ad | ||
|
|
db1318fed1 | ||
|
|
a0cacb5553 | ||
|
|
6cc8da120f | ||
|
|
35ca90b8f2 | ||
|
|
65e5b40223 | ||
|
|
4803180bcf | ||
|
|
7e8e954de7 | ||
|
|
0ca9b1be48 | ||
|
|
85eddfc536 | ||
|
|
0ab0fb5dd4 | ||
|
|
6705fb453e | ||
|
|
2c58475d61 | ||
|
|
a381a64b31 | ||
|
|
68c199aa64 | ||
|
|
805d8d81c5 | ||
|
|
063beddb01 | ||
|
|
59aa9c5474 | ||
|
|
a32206a6fb | ||
|
|
bec0dc3c0b | ||
|
|
cf2ec690db | ||
|
|
7daf35d898 | ||
|
|
9d3c5e50d6 | ||
|
|
9cc0c4f874 | ||
|
|
fe1ee08df4 | ||
|
|
84b2ae3e8f | ||
|
|
55054f1fa6 | ||
|
|
8aae821e59 | ||
|
|
d646edee08 | ||
|
|
b0d35f5ef8 | ||
|
|
34e81fdf87 | ||
|
|
5696f22951 | ||
|
|
8853adda62 | ||
|
|
1984b3747e | ||
|
|
c85fa98bcc | ||
|
|
7874b77104 | ||
|
|
bc7d1bc7b2 | ||
|
|
26e8d0d976 | ||
|
|
acadd069e8 | ||
|
|
6e4a5a4bb6 | ||
|
|
6212c1bb80 | ||
|
|
3358fd9b02 | ||
|
|
88e24263cf | ||
|
|
d7098e87ee | ||
|
|
64ecb553e4 | ||
|
|
2130cef3a9 | ||
|
|
f647223e94 | ||
|
|
a0ebe5ed54 | ||
|
|
b05378cdf7 | ||
|
|
423faf7af1 | ||
|
|
f9bb7ba270 | ||
|
|
4bc2de7b7b | ||
|
|
d199b41937 | ||
|
|
7fe63cdb50 | ||
|
|
f4531130b6 | ||
|
|
c6a24b3907 | ||
|
|
2c44cc9cd2 | ||
|
|
739737dc2b | ||
|
|
6bd0840863 | ||
|
|
323f41d14b | ||
|
|
8115a709e9 | ||
|
|
b0344f1426 | ||
|
|
9fb663210d | ||
|
|
881b1da6a7 | ||
|
|
8e350ca4a7 | ||
|
|
a0a355c3a7 | ||
|
|
7ac1e00d01 | ||
|
|
7e22f26b52 | ||
|
|
4f02795c60 | ||
|
|
f430aff4af | ||
|
|
f05d64b01e | ||
|
|
cae6bdf437 | ||
|
|
7d8f7aafdd | ||
|
|
5d279ed22c | ||
|
|
1edd52014e | ||
|
|
1f2f247c1d | ||
|
|
7c2a807278 | ||
|
|
21c7374177 | ||
|
|
1495285a6a | ||
|
|
bdeb96d0a7 | ||
|
|
5963294b04 | ||
|
|
2c58bdbfb2 | ||
|
|
f00bf7cf19 | ||
|
|
2fe6282157 | ||
|
|
a6cca7cfb0 | ||
|
|
2bfc62d9a5 | ||
|
|
dcc4563c8c | ||
|
|
a4f84844bc | ||
|
|
941221cba9 | ||
|
|
0b6d654ec8 | ||
|
|
b8236d55e2 | ||
|
|
4a1e21ac83 | ||
|
|
ee69dc5e44 | ||
|
|
fd06c52dec | ||
|
|
91910b4606 | ||
|
|
f10faf004e | ||
|
|
f0750997de | ||
|
|
f7333c89bb | ||
|
|
19fb3fd56c | ||
|
|
d197ddeb15 | ||
|
|
46bfd2cdac | ||
|
|
45b5545cf7 | ||
|
|
e881043787 | ||
|
|
2b95eba51b | ||
|
|
4177708e49 | ||
|
|
da46b90457 | ||
|
|
e35568f63d | ||
|
|
078cf2c22f | ||
|
|
c1127b3667 | ||
|
|
7f2c6aa3d3 | ||
|
|
39d46074d6 | ||
|
|
0f55256262 | ||
|
|
0440a89292 | ||
|
|
fce3864784 | ||
|
|
99ec79fe6b | ||
|
|
44fd8aa8a8 | ||
|
|
0c81d5afc4 | ||
|
|
eb2ef7070b | ||
|
|
c125cc281d | ||
|
|
e70994f121 | ||
|
|
cea9b35319 | ||
|
|
ea25bd91b0 | ||
|
|
44ef29ca39 | ||
|
|
e87e06bae6 | ||
|
|
31a5d49246 | ||
|
|
ec08a1d44a | ||
|
|
8639740e6c | ||
|
|
784a4641f1 | ||
|
|
e96c0da265 | ||
|
|
c3a51f9227 | ||
|
|
2df4b987ce | ||
|
|
7f7ab5f5b1 | ||
|
|
d704aad162 | ||
|
|
29d3f47d47 | ||
|
|
05f12dcdf1 | ||
|
|
0b509a2d0b | ||
|
|
93fb487fd5 | ||
|
|
f02b89700b | ||
|
|
c1d3faa267 | ||
|
|
b13936f989 | ||
|
|
20215197c5 | ||
|
|
521c70a27a | ||
|
|
9427d90573 | ||
|
|
59f74e93fc | ||
|
|
1deb664ee4 | ||
|
|
da66188148 | ||
|
|
cdc0322a6c | ||
|
|
3116cb073c | ||
|
|
a925d9e6e1 | ||
|
|
c1b16cfbed | ||
|
|
1791246a79 | ||
|
|
7ea1f26209 | ||
|
|
7278d62307 | ||
|
|
f6645b04ed | ||
|
|
35c8130060 | ||
|
|
cc6a8d30b3 | ||
|
|
37e130a1a8 | ||
|
|
7751fed39e | ||
|
|
d106db8061 | ||
|
|
b84f9c93bf | ||
|
|
e762bfa348 | ||
|
|
5a97db8992 | ||
|
|
04636339ce | ||
|
|
9731cdee67 | ||
|
|
0c02a9acd7 | ||
|
|
6077fa3530 | ||
|
|
1a4d97ef28 | ||
|
|
88513cf38a | ||
|
|
7c0cc145eb | ||
|
|
398dcc4a44 | ||
|
|
823d641087 | ||
|
|
65618ffa9c | ||
|
|
5e4f50fa45 | ||
|
|
b2a86db6de | ||
|
|
d2e04d46f4 | ||
|
|
6dfaf6a21c | ||
|
|
9af08d9842 | ||
|
|
d57773e8ef | ||
|
|
24a80de2ec | ||
|
|
ec544b0907 | ||
|
|
d87a325529 | ||
|
|
c651a4b36e | ||
|
|
37132c91e6 | ||
|
|
9727d56864 | ||
|
|
03b5a0f283 | ||
|
|
91797669ee | ||
|
|
e6ffbcf315 | ||
|
|
e12e707704 | ||
|
|
f4a54b667e | ||
|
|
a084ea24b3 | ||
|
|
c05e33cae3 | ||
|
|
55923f2790 | ||
|
|
cdfb566137 | ||
|
|
39f0db8cb4 | ||
|
|
1bd702340b | ||
|
|
3c04111483 | ||
|
|
e965fcb690 | ||
|
|
d583b083d1 | ||
|
|
25a7bf9ab0 | ||
|
|
4d8c18a557 | ||
|
|
579881002e | ||
|
|
5027a55e7f | ||
|
|
d3cd7bec5f | ||
|
|
323a12a44a | ||
|
|
8c955ce9d6 | ||
|
|
9d597faabc | ||
|
|
d85c3f8cc9 | ||
|
|
3f70c8c889 | ||
|
|
370e8c8574 | ||
|
|
25ab4afe78 | ||
|
|
6ad6ff7fb6 | ||
|
|
0d5f97d8bf | ||
|
|
71f2561eb1 | ||
|
|
b42eb08ec6 | ||
|
|
086394d455 | ||
|
|
03eb9c3f5c | ||
|
|
9c248cdcd2 | ||
|
|
2ddab2549e | ||
|
|
4c323ab71a | ||
|
|
a90c738c10 | ||
|
|
4e23832d52 | ||
|
|
e450669663 | ||
|
|
d8f0f7aca4 | ||
|
|
e5cb07729f | ||
|
|
d7e09e83c2 | ||
|
|
0f32e99d88 | ||
|
|
4aa1e43bac | ||
|
|
8fcfcd6790 | ||
|
|
da1cdd7ca4 | ||
|
|
f0b94453f2 | ||
|
|
2dc82f31b3 | ||
|
|
eeea6b3bae | ||
|
|
c93eb92cd0 | ||
|
|
bdf85989fc | ||
|
|
cf9f0ce6a9 | ||
|
|
7e79654ee0 | ||
|
|
4c3fbad9ee | ||
|
|
5679d48073 | ||
|
|
f662c062d2 | ||
|
|
c953f10c21 | ||
|
|
735accc1a8 | ||
|
|
70b9c0f879 | ||
|
|
482163daf7 | ||
|
|
3f00aa0981 | ||
|
|
4e5c85ec03 | ||
|
|
74a1715d6e | ||
|
|
cdd06d7e98 | ||
|
|
5b804a1ff6 | ||
|
|
b2cff5cbd3 | ||
|
|
9eae6cc6f2 | ||
|
|
8d5f52c718 | ||
|
|
94a6947cd6 | ||
|
|
c5e464a704 | ||
|
|
c9c54b7780 | ||
|
|
fc9d7e4f1b | ||
|
|
27e609f6eb | ||
|
|
203f8b2eb4 | ||
|
|
80b07f749f | ||
|
|
3e5c757b9b | ||
|
|
884a313f3c | ||
|
|
55b6fb8da6 | ||
|
|
f0d68211a3 | ||
|
|
0f19d675f5 | ||
|
|
1dabd761e1 | ||
|
|
a6458823b1 | ||
|
|
17f9ee84b3 | ||
|
|
367b3df705 | ||
|
|
e69cd8a057 | ||
|
|
266aafb700 | ||
|
|
9a1034e122 | ||
|
|
a8ff1c856c | ||
|
|
3b32116d36 | ||
|
|
8e24e07e81 | ||
|
|
cecf6fb089 | ||
|
|
3807673574 | ||
|
|
338b7b8a29 | ||
|
|
36fb2a434f | ||
|
|
3262d6deff | ||
|
|
aecabc0372 | ||
|
|
fa3567d95d | ||
|
|
0b13c4d6a5 | ||
|
|
208e1701d0 | ||
|
|
894f469de6 | ||
|
|
6821c50ffe | ||
|
|
b79ab9cd5d | ||
|
|
516c96a8b7 | ||
|
|
7180278c33 | ||
|
|
9f6e1966ae | ||
|
|
d537280454 | ||
|
|
0be526bd7e | ||
|
|
17fbe40b40 | ||
|
|
50c6a1de8a | ||
|
|
4a65aa3d0e | ||
|
|
b84e9da005 | ||
|
|
756c9ff935 | ||
|
|
4026b9e9ae | ||
|
|
2dd079dd51 | ||
|
|
b96b4fcb0f | ||
|
|
d55badf14a | ||
|
|
601da71f15 | ||
|
|
c948c1fca8 | ||
|
|
f29b8dc50c | ||
|
|
58d41d40e5 | ||
|
|
f86a2f1ed3 | ||
|
|
de9b7772e1 | ||
|
|
319adcbd62 | ||
|
|
19952ef634 | ||
|
|
15d49776b3 | ||
|
|
48f2376aaa | ||
|
|
803522ac7a | ||
|
|
daa775c215 | ||
|
|
e1942b8058 | ||
|
|
d566d0bdf0 | ||
|
|
65ecfd2424 | ||
|
|
fcae21bb5f | ||
|
|
a23279f3de | ||
|
|
ff486e5a61 | ||
|
|
95bac54c0e | ||
|
|
3d8ed3905e | ||
|
|
2e7ca62291 | ||
|
|
10c6172a29 | ||
|
|
e7ecad6c14 | ||
|
|
a78da90282 | ||
|
|
3196de2e29 | ||
|
|
9c6b96fa37 | ||
|
|
f3414c16dc | ||
|
|
f1b4081257 | ||
|
|
4a9797797d | ||
|
|
465d850e89 | ||
|
|
e195c42f17 | ||
|
|
b22e409d91 | ||
|
|
7cf1c64575 | ||
|
|
6617444f14 | ||
|
|
eb106650f6 | ||
|
|
e366e8e878 | ||
|
|
0931d23fc5 | ||
|
|
c2f1cbf867 | ||
|
|
4a46619857 | ||
|
|
61a787844b | ||
|
|
8013664eef | ||
|
|
bd8decdfc8 | ||
|
|
79c70b3998 | ||
|
|
f0e5be9982 | ||
|
|
f20e3fffe4 | ||
|
|
d8762a8ed8 | ||
|
|
863b2541a0 | ||
|
|
1fa174c184 | ||
|
|
c33bc31c89 | ||
|
|
617b7adb09 | ||
|
|
af4ec9ad8b | ||
|
|
1347223707 | ||
|
|
64bc9cb771 | ||
|
|
a4d429c5de | ||
|
|
c6c19e3824 | ||
|
|
6e16f5c918 | ||
|
|
6b2b066696 | ||
|
|
924057cf41 | ||
|
|
f0ea815427 | ||
|
|
fd3c55866e | ||
|
|
7b6762609e | ||
|
|
5cf82d7000 | ||
|
|
489ff37bf4 | ||
|
|
f6ed5fd7b3 | ||
|
|
8785fca309 | ||
|
|
9461909321 | ||
|
|
21247c0bb0 | ||
|
|
b07966ba26 | ||
|
|
0a232cd3e2 | ||
|
|
0baf2cb9da | ||
|
|
3f5f83ae1c | ||
|
|
bf6dcf40ef | ||
|
|
9d59709c6c | ||
|
|
3fc864d846 | ||
|
|
404f9125ed | ||
|
|
e53b4346d7 | ||
|
|
4dab056d28 | ||
|
|
077f3b79c1 | ||
|
|
40478bee75 | ||
|
|
ff1ca4dac1 | ||
|
|
86e4a9120d | ||
|
|
4ef667dc83 | ||
|
|
d586814308 | ||
|
|
dda2472487 | ||
|
|
33a81416fc | ||
|
|
f4f481c498 | ||
|
|
088b23f09a | ||
|
|
31ca8ff2ce | ||
|
|
15df1a2f1d | ||
|
|
485c15e981 | ||
|
|
9a009d63eb | ||
|
|
a458aba2d3 | ||
|
|
7f5558bd8a | ||
|
|
75ed9c7b12 | ||
|
|
a13a5fde84 | ||
|
|
45e24a2605 | ||
|
|
0c3ce81c94 | ||
|
|
fa0cfeccb9 | ||
|
|
6d72c4eff2 | ||
|
|
ffa4bf50c3 | ||
|
|
16d5a3efed | ||
|
|
5efb3d3a61 | ||
|
|
d3face8664 | ||
|
|
8496b1dc09 | ||
|
|
994af18770 | ||
|
|
3651c66d5b | ||
|
|
1e46c770b2 | ||
|
|
b01b878b47 | ||
|
|
c2d54b0733 | ||
|
|
d2ec89a0ca | ||
|
|
4279d6c067 | ||
|
|
2c2cd3fde2 | ||
|
|
5426e7bc30 | ||
|
|
4c6191d7c0 | ||
|
|
0aee35df0c | ||
|
|
aa51f81bb8 | ||
|
|
a8c99e9513 | ||
|
|
e9a0b58796 | ||
|
|
b2f47b9073 | ||
|
|
7d71e8828c | ||
|
|
395309c67c | ||
|
|
798667d0e5 | ||
|
|
f277832188 | ||
|
|
6729da3a1b | ||
|
|
e098581688 | ||
|
|
5e897a546a | ||
|
|
c0757b74e8 | ||
|
|
3d35f2cb0a | ||
|
|
849c376fb8 | ||
|
|
919f7bacfe | ||
|
|
3f3494a3c3 | ||
|
|
f561b25d9d | ||
|
|
61739453c2 | ||
|
|
75d8443e3e | ||
|
|
94c2115bf4 | ||
|
|
150ffe6013 | ||
|
|
a0c5f8cc59 | ||
|
|
aa46bf6076 | ||
|
|
c13840b114 | ||
|
|
6ec30e2186 | ||
|
|
0e64071051 | ||
|
|
9b8970fd9c | ||
|
|
78943dc19b | ||
|
|
7aad6d8f95 | ||
|
|
7bf2114ece | ||
|
|
3dd1487a13 | ||
|
|
04e9635f66 | ||
|
|
10b3011757 | ||
|
|
ac3b2bb14d | ||
|
|
9adbfdf270 | ||
|
|
bf05f97cfe | ||
|
|
05c083bb54 | ||
|
|
5a37991d44 | ||
|
|
34f371aeae | ||
|
|
21d68c7998 | ||
|
|
a92c18f80c | ||
|
|
6e65f9cbd5 | ||
|
|
71cf94b330 | ||
|
|
43a73065af | ||
|
|
e762859d1b | ||
|
|
501d3b9a35 | ||
|
|
9ff63b486e | ||
|
|
d4e5418f07 | ||
|
|
3c3859e840 | ||
|
|
f3915043dd | ||
|
|
e9ce9ab87a | ||
|
|
b585aef166 | ||
|
|
b13388a138 | ||
|
|
2f5458ab5f | ||
|
|
0f89acea96 | ||
|
|
28e9f168d4 | ||
|
|
04101d23e7 | ||
|
|
0a6de4561f | ||
|
|
cd647eb352 | ||
|
|
18f94fc0e6 | ||
|
|
c141e4eec3 | ||
|
|
a178ad7524 | ||
|
|
162f7498a4 | ||
|
|
d74f2406b7 | ||
|
|
afbddfc23b | ||
|
|
c08be14919 | ||
|
|
59b4e29be9 | ||
|
|
aa5ff65b54 | ||
|
|
97fdf10cea | ||
|
|
2afa653eff | ||
|
|
9cb333f7b5 | ||
|
|
4cec34d014 | ||
|
|
15677cef4a | ||
|
|
0e0bae0198 | ||
|
|
55a851e5f2 | ||
|
|
675ae91c29 | ||
|
|
353ca842ad | ||
|
|
304ba8c6bb | ||
|
|
bb5d4dfbf0 | ||
|
|
29ed73ba92 | ||
|
|
e36f08db3a | ||
|
|
fc2189fe0a | ||
|
|
bb5deffdd4 | ||
|
|
68e00ed208 | ||
|
|
1c8b7a5ae5 | ||
|
|
ed21dba8f0 | ||
|
|
8e78892712 | ||
|
|
38bc0bab3d | ||
|
|
927e947385 | ||
|
|
b0465bb500 | ||
|
|
0ee034a084 | ||
|
|
fa92f2e581 | ||
|
|
bc28a3f5e3 | ||
|
|
6561290bde | ||
|
|
2b9ecf75b6 | ||
|
|
d128939227 | ||
|
|
6613522e53 | ||
|
|
5de2c3dc22 | ||
|
|
a91f74d648 | ||
|
|
9cf3b9f91d | ||
|
|
667e38fea0 | ||
|
|
1728857ca1 | ||
|
|
38b9ce3aa2 | ||
|
|
fba4fd91a1 | ||
|
|
ffda6a51bb | ||
|
|
49fb838175 | ||
|
|
31fa9475da | ||
|
|
ccc380f11c | ||
|
|
9a3896f48a | ||
|
|
5baf11dada | ||
|
|
1c46e6b72b | ||
|
|
ccaa98513c | ||
|
|
aac479f58c | ||
|
|
718289c115 | ||
|
|
13c4c188fa | ||
|
|
7ba03ed24f | ||
|
|
6229ea4559 | ||
|
|
fd55026fba | ||
|
|
3ae5135f67 | ||
|
|
ee932450df | ||
|
|
32984dc126 | ||
|
|
aba97a419c | ||
|
|
3601492ce1 | ||
|
|
2304eff3ca | ||
|
|
55cfaaf929 | ||
|
|
730e5f299f | ||
|
|
2698585018 | ||
|
|
acbabbe13d | ||
|
|
77d67f3599 | ||
|
|
612e9f8b99 | ||
|
|
057e92afb8 | ||
|
|
3a15276668 | ||
|
|
5e9a31eaa7 | ||
|
|
69d293790a | ||
|
|
7c28459673 | ||
|
|
fa5ce634e1 | ||
|
|
cc38d42bf9 | ||
|
|
72d92413a2 | ||
|
|
535cd1f9ac | ||
|
|
7c8ed9e2bb | ||
|
|
013be4bbb8 | ||
|
|
81c19b4749 | ||
|
|
1d2aeaf147 | ||
|
|
0413fe944f | ||
|
|
79eafee59a | ||
|
|
6e14e86e4b | ||
|
|
885c7c4e50 | ||
|
|
7377ef5606 | ||
|
|
9a061d74b3 | ||
|
|
d872be4310 | ||
|
|
acb8595a50 | ||
|
|
488ee19f93 | ||
|
|
b4b4b3f95f | ||
|
|
1840cc9b62 | ||
|
|
72da703f0e | ||
|
|
e586a7ad64 | ||
|
|
9a2c195f5f | ||
|
|
b9397157ab | ||
|
|
2e3473bbfd | ||
|
|
5c45f2c7b8 | ||
|
|
964286ab99 | ||
|
|
d9a29e1da5 | ||
|
|
38eb6ad062 | ||
|
|
34882073c9 | ||
|
|
c36b202fe7 | ||
|
|
5214df42a6 | ||
|
|
0c3f8af4d9 | ||
|
|
e66db5cc10 | ||
|
|
f09b3e2dae | ||
|
|
11c622afca | ||
|
|
22429b2407 | ||
|
|
026630df74 | ||
|
|
4ce0c91ea7 | ||
|
|
0dfc9b540f | ||
|
|
28bbc8089e | ||
|
|
7e5fb876bb | ||
|
|
f648ac44b2 | ||
|
|
8f3e0517ca | ||
|
|
f7e2fa5263 | ||
|
|
b5ca691e69 | ||
|
|
283d0a352e | ||
|
|
0446c27df1 | ||
|
|
de7f8c4a3a | ||
|
|
571e7f2c2c | ||
|
|
a2fcc14e8b | ||
|
|
078aa3d89b | ||
|
|
a12350274b | ||
|
|
b9ee317ab9 | ||
|
|
bb228c73ab | ||
|
|
4a9e920a1c | ||
|
|
f839a408de | ||
|
|
889360b5e4 | ||
|
|
571bceb386 | ||
|
|
20a922ce21 | ||
|
|
060fff6d2f | ||
|
|
e27d892d74 | ||
|
|
2b0e32916d | ||
|
|
a786fd308a | ||
|
|
ed25ae64e5 | ||
|
|
072638ab73 | ||
|
|
6580eb4bef | ||
|
|
ff4a78a7f9 | ||
|
|
a29b3aa500 | ||
|
|
5dae51e12e | ||
|
|
7fcf2bbdb3 | ||
|
|
7f15755edc | ||
|
|
bb1681e40c | ||
|
|
5e75c0fc6e | ||
|
|
ee45c39d65 | ||
|
|
666b4e5964 | ||
|
|
df5f5ba1b5 | ||
|
|
2d39bb8cd2 | ||
|
|
d740ac57c7 | ||
|
|
204beaca11 | ||
|
|
8fcb9e2b63 | ||
|
|
419a143bf2 | ||
|
|
916ff4a3ad | ||
|
|
15dab02e75 | ||
|
|
687b281b47 | ||
|
|
d190e33313 | ||
|
|
3715b8c5f2 | ||
|
|
d92ff6d45d | ||
|
|
ec6b9acad9 | ||
|
|
d2902440d2 | ||
|
|
6793f74b3b | ||
|
|
34e2a86f1a | ||
|
|
068027e23b | ||
|
|
c20f501175 | ||
|
|
c8f0492353 | ||
|
|
9c6dfd493c | ||
|
|
21abb6fd09 | ||
|
|
6213e0a116 | ||
|
|
006ba60071 | ||
|
|
531a502c53 | ||
|
|
47e288da4c | ||
|
|
1899d017dc | ||
|
|
1be227b07b | ||
|
|
4195fa481b | ||
|
|
2e3345d2ce | ||
|
|
8f14226ab4 | ||
|
|
77d84982c2 | ||
|
|
e0e53fcf69 | ||
|
|
fffb26f558 | ||
|
|
2b449e0850 | ||
|
|
2caee2a0dc | ||
|
|
75116b43b4 | ||
|
|
f0e887ca33 | ||
|
|
c7b6e51eba | ||
|
|
4bba8bc173 | ||
|
|
f4f12b7dcb | ||
|
|
32d164a786 | ||
|
|
4cffc825c8 | ||
|
|
700e1a1c6f | ||
|
|
3f6bc35ec6 | ||
|
|
e4963d65ff | ||
|
|
612f3e20ac | ||
|
|
f309f48ae2 | ||
|
|
d5764fd387 | ||
|
|
6fe36c9d1c | ||
|
|
245bd302d7 | ||
|
|
3d35aed95b | ||
|
|
8556ccb810 | ||
|
|
0273fbffb9 | ||
|
|
6d0677f84f | ||
|
|
8f22c142b7 | ||
|
|
a56141e0e8 | ||
|
|
53c239f052 | ||
|
|
b38da96933 | ||
|
|
067ea274bd | ||
|
|
ffa660832f | ||
|
|
399812b40e | ||
|
|
f109a6e544 | ||
|
|
6c149b47a3 | ||
|
|
646d61bd4d | ||
|
|
eb15cdde1b | ||
|
|
661a4adac6 | ||
|
|
da4e74ba2a | ||
|
|
cbf529bff2 | ||
|
|
74f831fb2e | ||
|
|
2e961d1d70 | ||
|
|
5713230c6d | ||
|
|
be02ee1a25 | ||
|
|
a24ea2f3be | ||
|
|
016656f5e7 | ||
|
|
2b42fb8a38 | ||
|
|
eed89eff45 | ||
|
|
c8e43cb77d | ||
|
|
bdd9452465 | ||
|
|
0b12798922 | ||
|
|
b74afd3a80 | ||
|
|
a1910b4914 | ||
|
|
da6fc54d1c | ||
|
|
a0faf4c8d1 | ||
|
|
1c80b49990 | ||
|
|
e8ca77395a | ||
|
|
5eb95f836e | ||
|
|
a434d6047f | ||
|
|
da33d22c85 | ||
|
|
433e2e57ed | ||
|
|
d2a1ac9c3f | ||
|
|
6835855c66 | ||
|
|
2311c3fc18 | ||
|
|
8c1cfba5d8 | ||
|
|
84b84c91c2 | ||
|
|
98a6e27957 | ||
|
|
3e59fe6877 | ||
|
|
9ae48fcb21 | ||
|
|
0d9594b220 | ||
|
|
6031d9ec6e | ||
|
|
7514758b8c | ||
|
|
ea21a11259 | ||
|
|
990c27718a | ||
|
|
8aad873a26 | ||
|
|
655a86694d | ||
|
|
11a569b113 | ||
|
|
b1a6964e18 | ||
|
|
6ecf8b60b6 | ||
|
|
9073ce8884 | ||
|
|
7a562950b0 | ||
|
|
1364f78b30 | ||
|
|
7bcf4b7894 | ||
|
|
3503ac27a8 | ||
|
|
dbda4d50bd | ||
|
|
cccd2c0139 | ||
|
|
abf9287a99 | ||
|
|
17b40aa10a | ||
|
|
3a87c4909c | ||
|
|
f0600f1725 | ||
|
|
4958f6c158 | ||
|
|
b590437ca1 | ||
|
|
dda3dce34b | ||
|
|
485d278b8c | ||
|
|
d4a4203f95 | ||
|
|
93bdb819ca | ||
|
|
d82c083076 | ||
|
|
197af8853f | ||
|
|
a493043085 | ||
|
|
e456521b94 | ||
|
|
68a86a86ce | ||
|
|
e84158b486 | ||
|
|
843d077da0 | ||
|
|
ff07374e2a | ||
|
|
a8a87bc2ca | ||
|
|
4aecabae47 | ||
|
|
8b8f87c7e8 | ||
|
|
b6dbd2d80d | ||
|
|
ea83c0fe6b | ||
|
|
16e4c34d69 | ||
|
|
4f594c92e8 | ||
|
|
9b2f1a826d | ||
|
|
33866c124e | ||
|
|
e69fbfd16f | ||
|
|
3eff741da8 | ||
|
|
9939779932 | ||
|
|
511ac53d07 | ||
|
|
0c300194dc | ||
|
|
ff74ef4a42 | ||
|
|
9ab3cb4e9f | ||
|
|
0ffa9198f5 | ||
|
|
dde63b5017 | ||
|
|
0843efd282 | ||
|
|
321a722b8e | ||
|
|
063e704321 | ||
|
|
7040fffcca | ||
|
|
295fc7c0dc | ||
|
|
11bdbaa07f | ||
|
|
34ff670e5b | ||
|
|
f752758181 | ||
|
|
50b797aa32 | ||
|
|
c9c4c9ba8c | ||
|
|
3a3cb27b36 | ||
|
|
c4f939f44b | ||
|
|
d124315ba1 | ||
|
|
f8a22cbdac | ||
|
|
0709b0648a | ||
|
|
e58ff6c71c | ||
|
|
24141abde2 | ||
|
|
a0ccca555d | ||
|
|
cb25c7e5aa | ||
|
|
748eb9555a | ||
|
|
e2ca4177dd | ||
|
|
540e16b179 | ||
|
|
49369f3e98 | ||
|
|
8007c0af3f | ||
|
|
764c01befb | ||
|
|
df2ed05edf | ||
|
|
445c32c996 | ||
|
|
212ea2de30 | ||
|
|
cddf48547d | ||
|
|
f4ffdbe8a9 | ||
|
|
29752c72d0 | ||
|
|
64a864a332 | ||
|
|
5fa4ee4942 | ||
|
|
6c53c116ad | ||
|
|
df5409d103 | ||
|
|
da22e21a0e | ||
|
|
4403876320 | ||
|
|
f113bc8a77 | ||
|
|
cd8be91f4a | ||
|
|
1d1dc41bb0 | ||
|
|
1dc2b1c4c0 | ||
|
|
84932eb9da | ||
|
|
8a7824924a | ||
|
|
709d42d3e7 | ||
|
|
6cefb4e83f | ||
|
|
1790bfe91c | ||
|
|
04586c02de | ||
|
|
0e59be87cb | ||
|
|
1d16320caa | ||
|
|
9a906d427a | ||
|
|
9d0d5db948 | ||
|
|
292939c4a1 | ||
|
|
b1c0c5a03e | ||
|
|
8ceee89ee7 | ||
|
|
69c0f179f5 | ||
|
|
aa18543903 | ||
|
|
b4939a8873 | ||
|
|
7235df2e89 | ||
|
|
83cc54f28d | ||
|
|
375953641b | ||
|
|
aa3dd133c7 | ||
|
|
0603f2db1a | ||
|
|
df3d007a1b | ||
|
|
9d02a23325 | ||
|
|
dc3e645591 | ||
|
|
4478f29b47 | ||
|
|
d184b79a19 | ||
|
|
4e997951e4 | ||
|
|
fd841ec272 | ||
|
|
035a452900 | ||
|
|
d5542ad35e | ||
|
|
dd35de863a | ||
|
|
a8f566052b | ||
|
|
79dcd7c555 | ||
|
|
2ddbb89599 | ||
|
|
3d726fd2ba | ||
|
|
14588ccba8 | ||
|
|
506a3337c6 | ||
|
|
d2f91aa3da | ||
|
|
8249763088 | ||
|
|
fd8a4f63ce | ||
|
|
d9ca68e6ea | ||
|
|
f31652053f | ||
|
|
e9e7df693a | ||
|
|
04e3cd0fdb | ||
|
|
34030169cf | ||
|
|
6296be4b75 | ||
|
|
c6078e3136 | ||
|
|
f86182d062 | ||
|
|
bec0fd603f | ||
|
|
6cee767ddf | ||
|
|
f0553c370a | ||
|
|
9a31d3ccab | ||
|
|
d56319208a | ||
|
|
7c9888300b | ||
|
|
f2b4d790b6 | ||
|
|
e2d37a31ad | ||
|
|
faa9b4b27f | ||
|
|
fe8bbb82a0 | ||
|
|
06984ff317 | ||
|
|
ef0728657c | ||
|
|
2e080bc6ae | ||
|
|
b4e37e0be5 | ||
|
|
9735459552 | ||
|
|
65c03a786b | ||
|
|
9757a4574f | ||
|
|
3bd18af816 | ||
|
|
aa3d033066 | ||
|
|
a40ba55750 | ||
|
|
6d1cf8ec53 | ||
|
|
0662baacd6 | ||
|
|
eb264537f3 | ||
|
|
095b76b3e8 | ||
|
|
e9fc0d1db8 | ||
|
|
9d90f2eed1 | ||
|
|
65f8966247 | ||
|
|
50dcd97611 | ||
|
|
4b419e02db | ||
|
|
fc2d334834 | ||
|
|
e5145e5273 | ||
|
|
146e3c2ca6 | ||
|
|
34ebd250d7 | ||
|
|
6650c4cc5c | ||
|
|
49e6af929d | ||
|
|
99826a3398 | ||
|
|
289532d7c8 | ||
|
|
2b0bcaa34c | ||
|
|
9819742df3 | ||
|
|
2cc1319cb3 | ||
|
|
63ce7ca981 | ||
|
|
b345f565f7 | ||
|
|
952de46e45 | ||
|
|
92de810d4e | ||
|
|
fa21ef7ea7 | ||
|
|
71c309d2b8 | ||
|
|
7b274c955f | ||
|
|
a92fec2d0d | ||
|
|
ef6374becc | ||
|
|
25f836ad0b | ||
|
|
deb1f3723c | ||
|
|
eb1712808a | ||
|
|
9c5f142786 | ||
|
|
0626519b4d | ||
|
|
1d3e3f40fd | ||
|
|
b12b3576a8 | ||
|
|
0e96b54a9e | ||
|
|
9144123f32 | ||
|
|
b3abebcf9d | ||
|
|
854ea0e5ac | ||
|
|
6256436305 | ||
|
|
567e4a39d5 | ||
|
|
d056c136dd | ||
|
|
98a8129f93 | ||
|
|
4c853a8f45 | ||
|
|
f113aadb68 | ||
|
|
0669fbcc27 | ||
|
|
1735be1cc2 | ||
|
|
53bbd08fd3 | ||
|
|
fec05ff353 | ||
|
|
e2473b70ca | ||
|
|
df4ff2d299 | ||
|
|
c9d082303f | ||
|
|
613d1fdf2a | ||
|
|
60a5c3f946 | ||
|
|
bd8088daca | ||
|
|
bc5f1bf1fc | ||
|
|
fe351fbfda | ||
|
|
1eb1b5189c | ||
|
|
dc57e0165c | ||
|
|
9ccd97798f | ||
|
|
5477dbe396 | ||
|
|
b8e5ccfb7b | ||
|
|
687fc2e169 | ||
|
|
471defca72 | ||
|
|
d649ed70e9 | ||
|
|
4115c3f9c1 | ||
|
|
238e5b3afa | ||
|
|
bcebd27739 | ||
|
|
4516d10197 | ||
|
|
853a400867 | ||
|
|
48e5cc152f | ||
|
|
d193640041 | ||
|
|
81e0836e11 | ||
|
|
6df97d1e38 | ||
|
|
fc1b98811b | ||
|
|
b653743f5f | ||
|
|
a2f612715b | ||
|
|
24690973a8 | ||
|
|
8af6cf8d72 | ||
|
|
927d78cc04 | ||
|
|
95dc2f79a6 | ||
|
|
7116179dc6 | ||
|
|
165a06b5a9 | ||
|
|
4910bd3feb | ||
|
|
c1b1fe6371 | ||
|
|
97fcc8311f | ||
|
|
1826b38aa9 | ||
|
|
ba42b192b8 | ||
|
|
d896db7d7d | ||
|
|
f2ad8086a7 | ||
|
|
0013282012 | ||
|
|
102f42928c | ||
|
|
6a580c720a | ||
|
|
9eb8377cea | ||
|
|
c756bad83c | ||
|
|
62f2e6fb8e | ||
|
|
2c0656142a | ||
|
|
bc22631340 | ||
|
|
56af486790 | ||
|
|
6c47254bb5 | ||
|
|
f2469415d2 | ||
|
|
5c2e5e14fa | ||
|
|
3b62f2ceba | ||
|
|
d50ae7489e | ||
|
|
8a86253958 | ||
|
|
991d6478aa | ||
|
|
8f11874449 | ||
|
|
e4e2586939 | ||
|
|
1e00d8cdaf | ||
|
|
7ecf01737d | ||
|
|
23083decbb | ||
|
|
0a8bc1a63c | ||
|
|
db61c6b643 | ||
|
|
48cf167a3c | ||
|
|
248135dffb | ||
|
|
5056048ccd | ||
|
|
7bbcde9310 | ||
|
|
a0e14fd37c | ||
|
|
b3a2df7bf9 | ||
|
|
2d61b69ff5 | ||
|
|
a6031a46a2 | ||
|
|
0266776a3e | ||
|
|
701c119986 | ||
|
|
8c7f2b6a74 | ||
|
|
5a9e1b14cb | ||
|
|
e27c5e3043 | ||
|
|
83b2ffd0c9 | ||
|
|
f8e6802e3f | ||
|
|
4a25335036 | ||
|
|
772255e4e0 | ||
|
|
d192e6feb6 | ||
|
|
36f55ae80c | ||
|
|
dc2751aa38 | ||
|
|
c0501bdc02 | ||
|
|
25d7df470f | ||
|
|
e2dd94332b | ||
|
|
c4eccb3666 | ||
|
|
767ce22019 | ||
|
|
b087deadcb | ||
|
|
71f9299485 | ||
|
|
57dd0ce113 | ||
|
|
d9de059a4f | ||
|
|
090ddafade | ||
|
|
fbc82f01b2 | ||
|
|
3e874f8bb2 | ||
|
|
9ffbc0f08c | ||
|
|
9e5edaba71 | ||
|
|
aafab46456 | ||
|
|
14f905dbfd | ||
|
|
f424e93d34 | ||
|
|
0d43ea2bb9 | ||
|
|
3a7aa76ef6 | ||
|
|
b6bcea6679 | ||
|
|
da36371448 | ||
|
|
edbbc69f4f | ||
|
|
1c64e62e3d | ||
|
|
36fd030075 | ||
|
|
f23925340e | ||
|
|
65ce8c760d | ||
|
|
9402f4ad02 | ||
|
|
db8be6ad10 | ||
|
|
4d92a7e250 | ||
|
|
5b85e942f1 | ||
|
|
8a55d327b6 | ||
|
|
8a1d2611d8 | ||
|
|
01e9be9180 | ||
|
|
42b4989846 | ||
|
|
6de5e61031 | ||
|
|
59522b84db | ||
|
|
eb5bf06272 | ||
|
|
74b04e4f2c | ||
|
|
085314d503 | ||
|
|
8a317e5af2 | ||
|
|
7f21ebe82b | ||
|
|
f0889b13dd | ||
|
|
54ace02b9b | ||
|
|
3bc4820d90 | ||
|
|
fc1feab7ec | ||
|
|
8fa04fe2cf | ||
|
|
4786b64b93 | ||
|
|
50a8884c32 | ||
|
|
1dc1531104 | ||
|
|
82bc61e620 | ||
|
|
ad15a5e26f | ||
|
|
8e43a3ca0b | ||
|
|
e3b70bc8b9 | ||
|
|
37f711b234 | ||
|
|
ea495b631c | ||
|
|
045837a888 | ||
|
|
4b1ba511de | ||
|
|
6bca6f992c | ||
|
|
1aa4008b36 | ||
|
|
21c1665678 | ||
|
|
083605fb85 | ||
|
|
7f6d8ba86c | ||
|
|
1a64597fca | ||
|
|
ced25643e0 | ||
|
|
a34afd1ca2 | ||
|
|
bd8c2ce774 | ||
|
|
7508a73373 | ||
|
|
7a766c6c09 | ||
|
|
bdeb35ba3b | ||
|
|
e6ccd5cf0d | ||
|
|
a6a4821380 | ||
|
|
fd6863506d | ||
|
|
fdb39ca314 | ||
|
|
859e674c11 | ||
|
|
aa1d6f7095 | ||
|
|
9c1ed88e5f | ||
|
|
35cf50c796 | ||
|
|
f36584ce38 | ||
|
|
77fad07a28 | ||
|
|
0929a937a3 | ||
|
|
8b39996577 | ||
|
|
78b2020669 | ||
|
|
269b12226a | ||
|
|
4228b9a772 | ||
|
|
c103a8a205 | ||
|
|
6e8337c563 | ||
|
|
ccf02579e6 | ||
|
|
49811fc4b8 | ||
|
|
1bbdf2f1cc | ||
|
|
80d8144f1e | ||
|
|
40f439bc15 | ||
|
|
7f6e2c308e | ||
|
|
60f9a2f773 | ||
|
|
394482157e | ||
|
|
a66b276e7d | ||
|
|
0a23f1e35c | ||
|
|
c47e61d136 | ||
|
|
f3f57ba79b | ||
|
|
41ee6e706a | ||
|
|
0d4017fe1a | ||
|
|
11f9a64737 | ||
|
|
5c3eef0112 | ||
|
|
a2f3e7cccd | ||
|
|
fbd1108041 | ||
|
|
ebf81a6a03 | ||
|
|
f33b3c771a | ||
|
|
5629e8068b | ||
|
|
4a4b6c5589 | ||
|
|
d7eafcb641 | ||
|
|
4e0120493e | ||
|
|
a772527a4a | ||
|
|
954b483e4f | ||
|
|
fa1448163a | ||
|
|
f89b98e7c7 | ||
|
|
44af8f30f8 | ||
|
|
7ff8b97006 | ||
|
|
62c9184658 | ||
|
|
1777fca0e3 | ||
|
|
ce0f0322af | ||
|
|
462d64ab7a | ||
|
|
2c5b9b4d52 | ||
|
|
dddafc8944 | ||
|
|
bd34127cd4 | ||
|
|
450ccf6359 | ||
|
|
98c9199f0e | ||
|
|
0a0b41393e | ||
|
|
7e942a366c | ||
|
|
23975d225d | ||
|
|
ad9f88c487 | ||
|
|
7442162cc0 | ||
|
|
3e20672efe | ||
|
|
2b235e0827 | ||
|
|
8720a0dcdf | ||
|
|
d116298d2f | ||
|
|
fd8b99bd8c | ||
|
|
724ca6f06e | ||
|
|
054ab88ef1 | ||
|
|
9c6c7a82cb | ||
|
|
c72ed77632 | ||
|
|
6e6ae6f1d3 | ||
|
|
706bce07e5 | ||
|
|
ee6a9b3b6b | ||
|
|
ade22bf48c | ||
|
|
3bc0405715 | ||
|
|
c2114d8e3b | ||
|
|
6c0efef967 | ||
|
|
b0a584d5ee | ||
|
|
27bb96b61c | ||
|
|
034da586c8 | ||
|
|
e889e1a5c6 | ||
|
|
4961601b84 | ||
|
|
beab8d2deb | ||
|
|
aa19430d52 | ||
|
|
a161a94241 | ||
|
|
468e08dfa7 | ||
|
|
791b0cb904 | ||
|
|
37dbcb91cd | ||
|
|
1888a4cf99 | ||
|
|
d377170747 | ||
|
|
e68999ea0d | ||
|
|
a2a063e6a2 | ||
|
|
c3e978793c | ||
|
|
98cb5f2e55 | ||
|
|
ad52061c50 | ||
|
|
6f67fa533a | ||
|
|
4a7ce82688 | ||
|
|
df28473326 | ||
|
|
181db8c40a | ||
|
|
a87dabda1c | ||
|
|
c37d08c475 | ||
|
|
5417afc623 | ||
|
|
6d60249fd2 | ||
|
|
ec8ead8183 | ||
|
|
49d7f90c99 | ||
|
|
5015642b6d | ||
|
|
215c353dee | ||
|
|
7ec2ff5513 | ||
|
|
06cd9409e9 | ||
|
|
6e2191a34e | ||
|
|
ef023d144b | ||
|
|
676b6f98a3 | ||
|
|
2dea187595 | ||
|
|
04b0a4c888 | ||
|
|
1c8c3d65c5 | ||
|
|
fdffe20c0b | ||
|
|
e30393e18f | ||
|
|
6726abd37e | ||
|
|
2174e97286 | ||
|
|
698d19cb51 | ||
|
|
365a1808c0 | ||
|
|
5ac30cec73 | ||
|
|
623e4427f1 | ||
|
|
7d29bd55f8 | ||
|
|
6d1cabaa9d | ||
|
|
1516d38254 | ||
|
|
2e5b6df3a7 | ||
|
|
5ee9af795f | ||
|
|
175e962c0c | ||
|
|
1fb31352de | ||
|
|
302d28088d | ||
|
|
a25cc12c67 | ||
|
|
6ebea75f87 | ||
|
|
eee5b0d231 | ||
|
|
24b7748834 | ||
|
|
68cc4f190c | ||
|
|
d3fa1f5be7 | ||
|
|
e81dfea600 | ||
|
|
edaf0fcd2c | ||
|
|
3e059aac56 | ||
|
|
13b0c62ecd | ||
|
|
70f78c3189 | ||
|
|
2c916aa117 | ||
|
|
8f12973c84 | ||
|
|
5ca11f3eac | ||
|
|
b00e5008af | ||
|
|
b8069ce657 | ||
|
|
29ba06739a | ||
|
|
9db53461a4 | ||
|
|
3d53e80532 | ||
|
|
40b0a8c127 | ||
|
|
965f3813b2 | ||
|
|
97a51fc2a9 | ||
|
|
3a7fc33943 | ||
|
|
8a006d27ca | ||
|
|
3f45a521a0 | ||
|
|
39982f1eec | ||
|
|
3ede935949 | ||
|
|
9a60892b68 | ||
|
|
10052a6d7e | ||
|
|
9fd8d831ca | ||
|
|
bb8ee18a59 | ||
|
|
6c05d116a0 | ||
|
|
d5ef0b1330 | ||
|
|
d09e03d7f2 | ||
|
|
191c5c3b37 | ||
|
|
51faca5b69 | ||
|
|
3b1a70c10a | ||
|
|
1390bf271f | ||
|
|
97ee0205e9 | ||
|
|
ad4a6b3386 | ||
|
|
0925b479c2 | ||
|
|
f7d3c20648 | ||
|
|
92e8a84a4e | ||
|
|
f637cd3202 | ||
|
|
a022b2231f | ||
|
|
0c544409dd | ||
|
|
92a3ff9b2a | ||
|
|
ab5a4860a2 | ||
|
|
cacd7a4c32 | ||
|
|
b7bcd4484a | ||
|
|
d1fad42ec3 | ||
|
|
f97ed9c340 | ||
|
|
f03553e107 | ||
|
|
4394491292 | ||
|
|
fe32e10dc1 | ||
|
|
03ea90dced | ||
|
|
d7912e1e12 | ||
|
|
ce464f4816 | ||
|
|
a019ebb15e | ||
|
|
674e24fd58 | ||
|
|
eccc5b204c | ||
|
|
c99fbe54bd | ||
|
|
71ed538285 | ||
|
|
8eab2ef27c | ||
|
|
93da059454 | ||
|
|
162ff4ab15 | ||
|
|
07e600907b | ||
|
|
2c2a033e18 | ||
|
|
ccd61c2d78 | ||
|
|
877bd0954b | ||
|
|
810ee0e290 | ||
|
|
c00b4ba6ac | ||
|
|
23b854dedc | ||
|
|
d10d7d06fb | ||
|
|
b4102eabe5 | ||
|
|
3bd6e787ab | ||
|
|
1758449b51 | ||
|
|
9c3c5725af | ||
|
|
931fd66f66 | ||
|
|
d2435262ec | ||
|
|
cbb4307f6d | ||
|
|
46f5bfbe22 | ||
|
|
ca1e5d111a | ||
|
|
c76c4f026e | ||
|
|
3906896947 | ||
|
|
825e7a7533 | ||
|
|
e411e6dc75 | ||
|
|
39ebd82e20 | ||
|
|
ec22bc40bc | ||
|
|
129342edff | ||
|
|
8ca0c35242 | ||
|
|
e5f2810212 | ||
|
|
48292fb189 | ||
|
|
e6a5b589ff | ||
|
|
8ef91a528f | ||
|
|
8ea09e0c95 | ||
|
|
854828e4ca | ||
|
|
bea1cf92d8 | ||
|
|
fa37d53cd9 | ||
|
|
344013d860 | ||
|
|
61a2e5297f | ||
|
|
93627d2bbe | ||
|
|
2ef451aa4a | ||
|
|
36b628df48 | ||
|
|
146e7866a6 | ||
|
|
6424667396 | ||
|
|
beecdc8d79 | ||
|
|
6ae8d6749a | ||
|
|
ba07b52cc2 | ||
|
|
87128ceee6 | ||
|
|
773c57e609 | ||
|
|
7c42162618 | ||
|
|
466a0015e9 | ||
|
|
359d4aca29 | ||
|
|
859e9f8b04 | ||
|
|
c5bf549dde | ||
|
|
3f5810bfdb | ||
|
|
5b86885cd1 | ||
|
|
600a7da670 | ||
|
|
f92bd6ffd3 | ||
|
|
aa0947061a | ||
|
|
e2c94b592f | ||
|
|
31799cd019 | ||
|
|
ec18e31ff1 | ||
|
|
5e772340bc | ||
|
|
5593f81242 | ||
|
|
3d0254bdeb | ||
|
|
bc103ce25c | ||
|
|
cfe9e2328f | ||
|
|
dd2627dbbc | ||
|
|
86d77103e9 | ||
|
|
8ecf246386 | ||
|
|
29ed39c7ae | ||
|
|
8d9e85f4f5 | ||
|
|
73df7b5deb | ||
|
|
cd8c9c5375 | ||
|
|
147b78ffce | ||
|
|
9c341cc9bc | ||
|
|
f506980e4d | ||
|
|
6c62be1818 | ||
|
|
e05146acf9 | ||
|
|
eaec26a012 | ||
|
|
3801ad3030 | ||
|
|
4da4673e24 | ||
|
|
a1782f31b2 | ||
|
|
f4d0ef19fb | ||
|
|
47430edf9f | ||
|
|
466ed10f3d | ||
|
|
0314b570cd | ||
|
|
18eb6b4ffd | ||
|
|
9a9424a975 | ||
|
|
51d6482ec2 | ||
|
|
334e612bce | ||
|
|
14e74376d9 | ||
|
|
58cf165eb4 | ||
|
|
7c07bc2717 | ||
|
|
83872046fa | ||
|
|
701ccfdbcc | ||
|
|
280d1907d8 | ||
|
|
8b759094f7 | ||
|
|
0aae535986 | ||
|
|
688f134051 | ||
|
|
03509e7f36 | ||
|
|
4660dd4970 | ||
|
|
12a84c01b1 | ||
|
|
06de5ffa07 | ||
|
|
7e0574cba2 | ||
|
|
b80578b1b9 | ||
|
|
36dd29c056 | ||
|
|
6f5cdb4674 | ||
|
|
c34c963121 | ||
|
|
36bcbe9d95 | ||
|
|
4634c74f9e | ||
|
|
c576bb611d | ||
|
|
5f86956a41 | ||
|
|
fd7c7ffd57 | ||
|
|
438169e64f | ||
|
|
598729f84c | ||
|
|
001c3304a2 | ||
|
|
eeeae65493 | ||
|
|
184b6c5bd0 | ||
|
|
70bc967219 | ||
|
|
944e605f06 | ||
|
|
d1372af581 | ||
|
|
3f4336697e | ||
|
|
789816084e | ||
|
|
ac94bbe575 | ||
|
|
539b834da9 | ||
|
|
094136daec | ||
|
|
5444bde283 | ||
|
|
8ade8fb2c5 | ||
|
|
844a68dae0 | ||
|
|
954705e3a0 | ||
|
|
dde19380e9 | ||
|
|
bb8cc0a305 | ||
|
|
45124c2245 | ||
|
|
6e8cc67824 | ||
|
|
c6a82ef199 | ||
|
|
bd700a5b29 | ||
|
|
1f1cff3389 | ||
|
|
d9d328173b | ||
|
|
6161531376 | ||
|
|
3807e98f23 | ||
|
|
889f20c4a7 | ||
|
|
8643bfc977 | ||
|
|
7fd5e18ef4 | ||
|
|
d753179d1e | ||
|
|
ff20ef26d8 | ||
|
|
bd3c877ca3 | ||
|
|
274c009f20 | ||
|
|
210426a020 | ||
|
|
c393db0b65 | ||
|
|
1390b57d3e | ||
|
|
4451403c1e | ||
|
|
38e03e6bb0 | ||
|
|
42ebc42c98 | ||
|
|
e1d22c74b0 | ||
|
|
9928579364 | ||
|
|
cfe2bbd75e | ||
|
|
8a81bea413 | ||
|
|
9216aa465f | ||
|
|
038087e076 | ||
|
|
de4436ccc0 | ||
|
|
5e30ad176a | ||
|
|
d011843113 | ||
|
|
0c0aec0f2a | ||
|
|
2bd6c5c664 | ||
|
|
eae0937db0 | ||
|
|
69e25cfefc | ||
|
|
163a699bff | ||
|
|
8b66932036 | ||
|
|
a2fce22973 | ||
|
|
206397dc86 | ||
|
|
ac3910580a | ||
|
|
bee1af427b | ||
|
|
ea0de4f831 | ||
|
|
5d095efe90 | ||
|
|
71765238b1 | ||
|
|
4feb0f209f | ||
|
|
7c607ad540 | ||
|
|
3f25d7ccc8 | ||
|
|
b2e72e1ca4 | ||
|
|
55fd8749c8 | ||
|
|
fd32a6f7d6 | ||
|
|
b981467f1e | ||
|
|
c219fe0d1d | ||
|
|
19b519638f | ||
|
|
85f56f4ed8 | ||
|
|
8f81b9c662 | ||
|
|
5c84de5400 | ||
|
|
b2c00b1e1a | ||
|
|
67072b99d4 | ||
|
|
07256c50ef | ||
|
|
6711a6bc7e | ||
|
|
39c61b9abd | ||
|
|
24ba7f08cf | ||
|
|
fb8e80c09c | ||
|
|
240f67f15c | ||
|
|
8d18626659 | ||
|
|
a5b22cffa2 | ||
|
|
9f8202bc4f | ||
|
|
bdd513b212 | ||
|
|
3062a47b3b | ||
|
|
de870c843e | ||
|
|
9c32e32097 | ||
|
|
f61db8ed3f | ||
|
|
9e1711cbb9 | ||
|
|
c941b5333c | ||
|
|
8d934df0c0 | ||
|
|
2f0937951a | ||
|
|
a676537e26 | ||
|
|
b071220b6c | ||
|
|
dafc1e0c7d | ||
|
|
5a07579b73 | ||
|
|
0148669e98 | ||
|
|
d1348bb26a | ||
|
|
eadab13d1c | ||
|
|
75ace74d37 | ||
|
|
1ef4c43382 | ||
|
|
c1e9f2de6a | ||
|
|
55b36d44fa | ||
|
|
d2201cbb79 | ||
|
|
934949725b | ||
|
|
57972c6653 | ||
|
|
0f6428eed0 | ||
|
|
6e89ef62e4 | ||
|
|
b266e336b5 | ||
|
|
e135153c45 | ||
|
|
28cae124d1 | ||
|
|
94d8b4a122 | ||
|
|
ce835418cb | ||
|
|
3aa7a52c21 | ||
|
|
2bc3480396 | ||
|
|
7893f387d5 | ||
|
|
00187269de | ||
|
|
b3833fcf1a | ||
|
|
923972dd49 | ||
|
|
f19bad3761 | ||
|
|
b5cc24fcff | ||
|
|
d414d52156 | ||
|
|
85c0eaa598 | ||
|
|
d409a71000 | ||
|
|
0a716c253b | ||
|
|
13fd6bd6e1 | ||
|
|
b0f0940534 | ||
|
|
dc284d9cbb | ||
|
|
0a86360948 | ||
|
|
aff717ffce | ||
|
|
e49900f927 | ||
|
|
5e301133ff | ||
|
|
5b684cca9a | ||
|
|
3d36779e19 | ||
|
|
eaf54ca525 | ||
|
|
ba7a598b2e | ||
|
|
dce4b2288b | ||
|
|
2a847eebb9 | ||
|
|
25f93e8b94 | ||
|
|
7328aa7df5 | ||
|
|
d75dd71848 | ||
|
|
a8dca61a3c | ||
|
|
d32d5b8bac | ||
|
|
3d5c790fb6 | ||
|
|
5af88de27b | ||
|
|
997a7bc60f | ||
|
|
bfbd7b53a1 | ||
|
|
1dec80902d | ||
|
|
0478d99aac | ||
|
|
db9677bb4a | ||
|
|
0e32edb603 | ||
|
|
82e1be2839 | ||
|
|
ab8bec8866 | ||
|
|
3b8fa8b4ce | ||
|
|
c4cb3df306 | ||
|
|
efd5c33a92 | ||
|
|
f589103f5d | ||
|
|
19175e9bde | ||
|
|
3137aaa660 | ||
|
|
cfda69a120 | ||
|
|
1027b7de72 | ||
|
|
fb1888f01f | ||
|
|
f61e9d389f | ||
|
|
936b02865f | ||
|
|
cbd3516fc4 | ||
|
|
c2d6f740a1 | ||
|
|
305a04ce69 | ||
|
|
fdd7d6afa4 | ||
|
|
1a51f77fce | ||
|
|
8ea8db7994 | ||
|
|
cd906b0a6f | ||
|
|
85fa644aca | ||
|
|
839d3f89d8 | ||
|
|
52a06b5cdc | ||
|
|
5065239266 | ||
|
|
13426eac50 | ||
|
|
c5f90272d1 | ||
|
|
e0d6c2a4cd | ||
|
|
3c76942799 | ||
|
|
4ff888b2b0 | ||
|
|
a0eaf077de | ||
|
|
726f94e2a2 | ||
|
|
19771b171c | ||
|
|
b4223967e8 | ||
|
|
e57283460a | ||
|
|
78edaf5edc | ||
|
|
91f0d40d1a | ||
|
|
dacccf1415 | ||
|
|
8fcb76e300 | ||
|
|
24906e6fa5 | ||
|
|
570065175c | ||
|
|
e84a293642 | ||
|
|
41559d8742 | ||
|
|
6e898ae52d | ||
|
|
288d929477 | ||
|
|
807fbd4d89 | ||
|
|
6ce47e5cd9 | ||
|
|
712d5fbfa7 | ||
|
|
8d3380b388 | ||
|
|
c9855a2671 | ||
|
|
c887f0ce5b | ||
|
|
64ee0015d1 | ||
|
|
1b598ad87e | ||
|
|
c9f536c635 | ||
|
|
742f4fe36d | ||
|
|
fc34c05a2f | ||
|
|
84055a420b | ||
|
|
e5ec08ff9d | ||
|
|
06267f5a03 | ||
|
|
824bec2784 | ||
|
|
cb81f7b057 | ||
|
|
ce43b10b5b | ||
|
|
0349383d08 | ||
|
|
777e1dc48c | ||
|
|
fe8727bd94 | ||
|
|
6a531ca57c | ||
|
|
1d9c15b1cc | ||
|
|
fc4ac803aa | ||
|
|
870f1095cd | ||
|
|
4e969a3701 | ||
|
|
0a603449ad | ||
|
|
d51640c2f0 | ||
|
|
be8695777c | ||
|
|
eb825ae619 | ||
|
|
40a4a6a1a8 | ||
|
|
07dfa6f296 | ||
|
|
cb52cb2549 | ||
|
|
26b73b0745 | ||
|
|
fead0c5ad9 | ||
|
|
c3652786ff | ||
|
|
3bd6c363de | ||
|
|
48b6654ad2 | ||
|
|
2075f9fa71 | ||
|
|
96fdb6169a | ||
|
|
6d47a5477a | ||
|
|
d3b80b26e3 | ||
|
|
3ede1a0b53 | ||
|
|
aebd7657ef | ||
|
|
15938a12be | ||
|
|
f2cfd90c46 | ||
|
|
f3a55d96f5 | ||
|
|
392ca87dab | ||
|
|
ff48421e4f | ||
|
|
f6579184a2 | ||
|
|
c0c68f6acd | ||
|
|
f2fd376363 | ||
|
|
9999a2b126 | ||
|
|
2817bf4d62 | ||
|
|
845bb466c6 | ||
|
|
f64df97652 | ||
|
|
9c6b2c3e81 | ||
|
|
83e8799610 | ||
|
|
80f8c0399b | ||
|
|
f6b5840e0e | ||
|
|
b5dec2e935 | ||
|
|
79bb68d784 | ||
|
|
976116a012 | ||
|
|
64c51a49a0 | ||
|
|
cc0b808962 | ||
|
|
9b567f9ba3 | ||
|
|
9a36b005a1 | ||
|
|
2390368d03 | ||
|
|
64106cba82 | ||
|
|
69cb20e1cd | ||
|
|
2a7bf7fb5b | ||
|
|
dc744f236e | ||
|
|
9724afd9ec | ||
|
|
34e7467d16 | ||
|
|
7eccb6fc7a | ||
|
|
0445e89747 | ||
|
|
953ab958d5 | ||
|
|
5e13152c73 | ||
|
|
8c98c7df29 | ||
|
|
cedc4f710e | ||
|
|
13d61bd866 | ||
|
|
c6c9839208 | ||
|
|
2ff439dc47 | ||
|
|
dad8cbecc1 | ||
|
|
8f8b200f24 | ||
|
|
8dec9d5fe9 | ||
|
|
e671c913ab | ||
|
|
9d46fae865 | ||
|
|
315caaba1c | ||
|
|
7af4ffe341 | ||
|
|
8bf730baae | ||
|
|
0b3826d2dd | ||
|
|
d055ba1c3b | ||
|
|
649e7e103d | ||
|
|
bcdfb212fc | ||
|
|
947bf10c2f | ||
|
|
2e48b583c0 | ||
|
|
55dc5dc19d | ||
|
|
04c80915e5 | ||
|
|
be36b4aac1 | ||
|
|
2ce16bcdb7 | ||
|
|
1683f191a9 | ||
|
|
70d93a0bfc | ||
|
|
6514712054 | ||
|
|
e0a1b478a1 | ||
|
|
be5d58c849 | ||
|
|
e4f9c02d11 | ||
|
|
b8d720d06f | ||
|
|
5c1713f274 | ||
|
|
913615f1c2 | ||
|
|
9e8b0d2807 | ||
|
|
0b5749d491 | ||
|
|
23a9fa40e7 | ||
|
|
38b0d427f8 | ||
|
|
e02977edc0 | ||
|
|
24d7232559 | ||
|
|
e4ea8d2abd | ||
|
|
ebd1a6406b | ||
|
|
d1ee9ebbd9 | ||
|
|
5079ee67c3 | ||
|
|
9592fab414 | ||
|
|
f36858d074 | ||
|
|
1b8bb7c445 | ||
|
|
f499ff81f2 | ||
|
|
e80c7b6b45 | ||
|
|
f3babcb46e | ||
|
|
95e82ca359 | ||
|
|
8888739867 | ||
|
|
db6e9b6962 | ||
|
|
a0832d3fb6 | ||
|
|
1c77887629 | ||
|
|
dcd0ca8daa | ||
|
|
304981fcf2 | ||
|
|
f1bb533321 | ||
|
|
2c49df4be3 | ||
|
|
90502f7553 | ||
|
|
18f5c7f691 | ||
|
|
649606f32e | ||
|
|
0f54cc147e | ||
|
|
7781f41ebf | ||
|
|
2d2cb22806 | ||
|
|
ac10c988b9 | ||
|
|
83de1686c0 | ||
|
|
145347f7ae | ||
|
|
b8b6dbe791 | ||
|
|
d21201e996 | ||
|
|
dc35fc450b | ||
|
|
c4140dd38b | ||
|
|
ba2ef23414 | ||
|
|
3781d1e06b | ||
|
|
082a78bd92 | ||
|
|
7bfd0823db | ||
|
|
013ffe1626 | ||
|
|
b2006f2466 | ||
|
|
7d8931696d | ||
|
|
e88812458e | ||
|
|
ada42f6e94 | ||
|
|
34c3b50b48 | ||
|
|
63c36d0dbf | ||
|
|
bd80bb6bb3 | ||
|
|
8f98866d71 | ||
|
|
26bf05dd7e | ||
|
|
b815718c26 | ||
|
|
d7994ca67d | ||
|
|
b95a1fb604 | ||
|
|
b04bb2ef8d | ||
|
|
066aeec1e6 | ||
|
|
d6e46d73b5 | ||
|
|
7b767df0b5 | ||
|
|
ed36447bdf | ||
|
|
0f90af3c7d | ||
|
|
f50a8e5252 | ||
|
|
1d8ca28152 | ||
|
|
6c4129d02a | ||
|
|
9b4574ad06 | ||
|
|
4543b32bef | ||
|
|
ff69f6ed7f | ||
|
|
92a2b83bc8 | ||
|
|
30b65028fe | ||
|
|
4b72b291ef | ||
|
|
59ebe30b72 | ||
|
|
814f6213fa | ||
|
|
dce3ee440b | ||
|
|
b87d14cd61 | ||
|
|
5c10c78595 | ||
|
|
a793cf4ac2 | ||
|
|
010732108c | ||
|
|
296d103f68 | ||
|
|
1f590c45be | ||
|
|
48b816fb36 | ||
|
|
d11b5b3e02 | ||
|
|
8f8787b2e0 | ||
|
|
7581802498 | ||
|
|
371523d756 | ||
|
|
1456be9feb | ||
|
|
62f57b134a | ||
|
|
84127d7a80 | ||
|
|
8fc3f1ccbd | ||
|
|
c946f10d0c | ||
|
|
e03ef0b739 | ||
|
|
55b92ab263 | ||
|
|
fbc625478b | ||
|
|
4da8aab44f | ||
|
|
d9fd967c48 | ||
|
|
ab86fc9a5e | ||
|
|
8fb095e2f4 | ||
|
|
2fe84b7510 | ||
|
|
46ef13dd0f | ||
|
|
49b56d9b52 | ||
|
|
cff654ae69 | ||
|
|
7abb4072b5 | ||
|
|
d91fd0027a | ||
|
|
8f17f7297d | ||
|
|
aa8c31e79b | ||
|
|
cfc768caa9 | ||
|
|
c48bd9b840 | ||
|
|
c09919055a | ||
|
|
d35f1ea802 | ||
|
|
cfbf3cd4b3 | ||
|
|
a46103fc8c | ||
|
|
d032956124 | ||
|
|
ff93b38d23 | ||
|
|
5b02ee5169 | ||
|
|
aa770689f5 | ||
|
|
de67fff731 | ||
|
|
7799783c9a | ||
|
|
c854565e30 | ||
|
|
52e9d37b93 | ||
|
|
e94cb34a25 | ||
|
|
f541e7105e | ||
|
|
4060e29c63 | ||
|
|
d913285523 | ||
|
|
d98d1193fc | ||
|
|
e23b406364 | ||
|
|
0b27fc39e6 | ||
|
|
704ca4eae2 | ||
|
|
1fc3cfee68 | ||
|
|
8fb446ad47 | ||
|
|
66ff661ff5 | ||
|
|
57e69080c9 | ||
|
|
d78f7a9303 | ||
|
|
47cb34d26b | ||
|
|
8354797406 | ||
|
|
87ae1c6a9b | ||
|
|
5fb7d43aff | ||
|
|
115c391191 | ||
|
|
c73fa4b0f6 | ||
|
|
f5894ac3c2 | ||
|
|
bcbeda5102 | ||
|
|
8891c305e3 | ||
|
|
c62f98db95 | ||
|
|
96bca43089 | ||
|
|
9ffd42d477 | ||
|
|
c57f051863 | ||
|
|
ab04874c11 | ||
|
|
481a47b638 | ||
|
|
df2ef04558 | ||
|
|
c3ad095553 | ||
|
|
3f2dbfbbd2 | ||
|
|
8eca70c338 | ||
|
|
ba7302a197 | ||
|
|
d15b0a0285 | ||
|
|
3796a5ef97 | ||
|
|
5a48376a77 | ||
|
|
61669a73d9 | ||
|
|
5a2385c66b | ||
|
|
d7721065dc | ||
|
|
025f2507f4 | ||
|
|
563fb3ff5c | ||
|
|
9646ec5edd | ||
|
|
cc990a1181 | ||
|
|
c4ddb7d351 | ||
|
|
ab0047a9b7 | ||
|
|
39ec10cbba | ||
|
|
65b6513207 | ||
|
|
beb4494534 | ||
|
|
983ff901f2 | ||
|
|
5d66473a4f | ||
|
|
ff1e04b957 | ||
|
|
53c4c6cbb8 | ||
|
|
47736603af | ||
|
|
b6e5a5e655 | ||
|
|
84018f5b61 | ||
|
|
592d3afe6d | ||
|
|
2bd2ec7a2e | ||
|
|
f25d2b3a86 | ||
|
|
886cea56f3 | ||
|
|
ed21efc003 | ||
|
|
c379cca2e5 | ||
|
|
efa04b4cd8 | ||
|
|
35a214603f | ||
|
|
3acc96cab1 | ||
|
|
14247fa75a | ||
|
|
6efec9d280 | ||
|
|
063253d5e7 | ||
|
|
f773604dec | ||
|
|
25d43354b3 | ||
|
|
b59ec5e78b | ||
|
|
f7ad935dfb | ||
|
|
1a210ae684 | ||
|
|
92c666692d | ||
|
|
761f0a78f4 | ||
|
|
0027a0af40 | ||
|
|
4f45cf1386 | ||
|
|
9dfa685fb1 | ||
|
|
40d2ef4f0a | ||
|
|
8e5a877997 | ||
|
|
d1b3f77feb | ||
|
|
a5b7234d6f | ||
|
|
398991f3c1 | ||
|
|
d01b93ae5f | ||
|
|
b31d9761fa | ||
|
|
1ba403db7b | ||
|
|
96cd135f82 | ||
|
|
c85cd4ac24 | ||
|
|
177546bab6 | ||
|
|
29e2c982d4 | ||
|
|
bc301f269a | ||
|
|
d09253e532 | ||
|
|
034079b441 | ||
|
|
22f0e2615f | ||
|
|
45bab578c4 | ||
|
|
e8de6f0ace | ||
|
|
13c2ce3f31 | ||
|
|
3bf9a3833a | ||
|
|
c035bf2d37 | ||
|
|
2b9ab05888 | ||
|
|
a8153dd8db | ||
|
|
ebe70a52d1 | ||
|
|
2282e72d03 | ||
|
|
5a590512bd | ||
|
|
6131181ea4 | ||
|
|
78946c11ea | ||
|
|
f59abe23c3 | ||
|
|
74412766fa | ||
|
|
39b0401c55 | ||
|
|
5f0e8d3d8e | ||
|
|
01ca13cccb | ||
|
|
6a9badd31b | ||
|
|
7db5d6a307 | ||
|
|
bb2049411b | ||
|
|
653ae777d5 | ||
|
|
ec803d63c8 | ||
|
|
412d80efe3 | ||
|
|
b1d662a5b1 | ||
|
|
12d9d59d85 | ||
|
|
b13e719ab3 | ||
|
|
451aea87aa | ||
|
|
d55cac80bf | ||
|
|
a1ecdc9bfa | ||
|
|
0e8c1cb0fd | ||
|
|
1c724280f5 | ||
|
|
9ff8246a9d | ||
|
|
2c45956030 | ||
|
|
1c267a55d5 | ||
|
|
f60bdc3dd4 | ||
|
|
030dfc2370 | ||
|
|
3295ea84a4 | ||
|
|
ef2041b919 | ||
|
|
4634085402 | ||
|
|
411140c3ea | ||
|
|
638cd1dd48 | ||
|
|
e3e6b23b7c | ||
|
|
ac5a3e7a65 | ||
|
|
106c316442 | ||
|
|
db229cf1bf | ||
|
|
94f66b812a | ||
|
|
a314106b7e | ||
|
|
8d72bc0ea4 | ||
|
|
1533c9315f | ||
|
|
70405045d7 | ||
|
|
3d623506a8 | ||
|
|
11df74c292 | ||
|
|
a935d69408 | ||
|
|
cffe0196e2 | ||
|
|
ac2a9deb75 | ||
|
|
282e0adfe2 | ||
|
|
ce60bcedb0 | ||
|
|
c9fd409650 | ||
|
|
8a908aa33f | ||
|
|
f9a5242e75 | ||
|
|
7dabcc00ed | ||
|
|
18f4e9db31 | ||
|
|
593ab6b014 | ||
|
|
656c33e942 | ||
|
|
4330338285 | ||
|
|
44c41d52b2 | ||
|
|
449a3f479f | ||
|
|
159a7c4947 | ||
|
|
30f442d774 | ||
|
|
e8685de7f7 | ||
|
|
4c08b591f1 | ||
|
|
16528888df | ||
|
|
738b5f5707 | ||
|
|
17343210c0 | ||
|
|
43aa2f5cd9 | ||
|
|
423cd20922 | ||
|
|
69d5ef36e2 | ||
|
|
0dd17cc175 | ||
|
|
16e56c4edb | ||
|
|
f46b876fd6 | ||
|
|
1181ab67ba | ||
|
|
014c26be25 | ||
|
|
99eb9429fd | ||
|
|
d3b10d0d4d | ||
|
|
d9597d5ad5 | ||
|
|
55272e5ea2 | ||
|
|
d17fc86fa4 | ||
|
|
0b391584d4 | ||
|
|
e3e02aa30b | ||
|
|
403f53a397 | ||
|
|
bfd79e1af2 | ||
|
|
5745a984aa | ||
|
|
d2f1f67a22 | ||
|
|
d98cb50d7a | ||
|
|
cc4864976a | ||
|
|
92fa8b7421 | ||
|
|
aad2e8012b | ||
|
|
b3eae80ece | ||
|
|
b58d5b6066 | ||
|
|
f1b6e6570c | ||
|
|
8e758507b1 | ||
|
|
2601d8b702 | ||
|
|
fa0545e4b3 | ||
|
|
690208fd4e | ||
|
|
3272575f70 | ||
|
|
fad3142a47 | ||
|
|
1f74dcff14 | ||
|
|
62c7183922 | ||
|
|
ef73b0a07f | ||
|
|
ec7d42d1fd | ||
|
|
256a17f2c9 | ||
|
|
165ffed9e6 | ||
|
|
b89d6d78ef | ||
|
|
6890561723 | ||
|
|
849ce04def | ||
|
|
a29baf19d0 | ||
|
|
10d6a1fa54 | ||
|
|
6ea181c286 | ||
|
|
2d890603c6 | ||
|
|
d1ca30a28f | ||
|
|
35fccf8af8 | ||
|
|
f5baa56e05 | ||
|
|
d2c1be5c2d | ||
|
|
fd6525a9de | ||
|
|
ba03a134da | ||
|
|
9184c64ecb | ||
|
|
653a9664e4 | ||
|
|
51d0cedb29 | ||
|
|
fa6d1bb23c | ||
|
|
0f3b154699 | ||
|
|
d6e2b096ca | ||
|
|
2104a1250e | ||
|
|
ca99f60964 | ||
|
|
147c08bd71 | ||
|
|
ad440f70fa | ||
|
|
bb22155482 | ||
|
|
5c1999b3d0 | ||
|
|
87f0fcfd52 | ||
|
|
f6d53bc337 | ||
|
|
720fad80c3 | ||
|
|
196055e50e | ||
|
|
73125574e6 | ||
|
|
27a35a0388 | ||
|
|
8c6085b933 | ||
|
|
bef14f551e | ||
|
|
e56c2eb6ca | ||
|
|
165365473f | ||
|
|
3bdd9a850f | ||
|
|
b84ea020f2 | ||
|
|
90efc5740f | ||
|
|
c78e6588ad | ||
|
|
a21a3827fd | ||
|
|
2effbd0baf | ||
|
|
7ed03c8b90 | ||
|
|
59ce90e924 | ||
|
|
da38e6a23d | ||
|
|
698e5ec6ea | ||
|
|
7f25e3ba97 | ||
|
|
1a3500cad3 | ||
|
|
31c30a7602 | ||
|
|
014f3b9873 | ||
|
|
49cbcf01c6 | ||
|
|
f8cc129f04 | ||
|
|
236c1208e6 | ||
|
|
4c70e75bfc | ||
|
|
e8c5f3a882 | ||
|
|
302df56ee1 | ||
|
|
ccfc4d68f3 | ||
|
|
071ea1dc97 | ||
|
|
670033c4da | ||
|
|
fa7e4cc817 | ||
|
|
67c8d80190 | ||
|
|
792ce53992 | ||
|
|
b0a25f59d9 | ||
|
|
d76234c112 | ||
|
|
6fdfd3b9e7 | ||
|
|
38350a1ae4 | ||
|
|
ce2bba751c | ||
|
|
f149736a20 | ||
|
|
40330be123 | ||
|
|
93af4fc6b0 | ||
|
|
b574d4e388 | ||
|
|
eb4b429e19 | ||
|
|
21929b1db2 | ||
|
|
a5197ee039 | ||
|
|
e974981725 | ||
|
|
9ae4dd3dfe | ||
|
|
d0e4dabe90 | ||
|
|
a3c569137e | ||
|
|
3edb360d79 | ||
|
|
f5285b48b1 | ||
|
|
c01b76e098 | ||
|
|
6adb47c447 | ||
|
|
b0b2d3a727 | ||
|
|
8410d7b08e | ||
|
|
e6408a0c37 | ||
|
|
e96c82b171 | ||
|
|
ee31813a0d | ||
|
|
ac62fd6204 | ||
|
|
25fbcc144c | ||
|
|
30cb7e62fd | ||
|
|
7c7ccc3a07 | ||
|
|
fb3f4fa0a8 | ||
|
|
2b62244806 | ||
|
|
f5dc197e8b | ||
|
|
e6060048bd | ||
|
|
f83ff068ae | ||
|
|
b21a6b76e0 | ||
|
|
70527022d9 | ||
|
|
8cddd595d4 | ||
|
|
96b79d5f06 | ||
|
|
1c7b07d614 | ||
|
|
0d59de5767 | ||
|
|
e3613c54e9 | ||
|
|
5956e6d9c1 | ||
|
|
ec895f271b | ||
|
|
751f30e316 | ||
|
|
cee8253cd3 | ||
|
|
ae4cb6e372 | ||
|
|
398f976f3e | ||
|
|
5f049beb04 | ||
|
|
a8d67a1c60 | ||
|
|
26aa9727a1 | ||
|
|
3cef696a65 | ||
|
|
397b1533f0 | ||
|
|
5680a34ec1 | ||
|
|
84a197299f | ||
|
|
4307882fa8 | ||
|
|
d2dfbff832 | ||
|
|
8cc58d0b89 | ||
|
|
971fc462ab | ||
|
|
8d2256d359 | ||
|
|
8f3b863edd | ||
|
|
4cc6c5ec35 | ||
|
|
cf53614721 | ||
|
|
efe84e58d7 | ||
|
|
cf59ad76fb | ||
|
|
2216cda2f1 | ||
|
|
595b15fcd9 | ||
|
|
a104c7f0f8 | ||
|
|
059392d257 | ||
|
|
5a1b3da394 | ||
|
|
92d7c2926c | ||
|
|
8f39697e3d | ||
|
|
ff328381af | ||
|
|
3bb3c06456 | ||
|
|
1cbcd41b17 | ||
|
|
5ebd9eb577 | ||
|
|
850d9ee095 | ||
|
|
5db1f91b01 | ||
|
|
ac6b9712ad | ||
|
|
df93f4ba99 | ||
|
|
7c20d46eeb | ||
|
|
fe432fcca8 | ||
|
|
5b1638ea59 | ||
|
|
87a1d4088b | ||
|
|
038c346500 | ||
|
|
0bcaa13056 | ||
|
|
c0e62372e6 | ||
|
|
84169cce10 | ||
|
|
c2c163ac4e | ||
|
|
ecb5d2ae1c | ||
|
|
3d619f1670 | ||
|
|
3265549911 | ||
|
|
d5c3a3e5e8 | ||
|
|
30dff09d7e | ||
|
|
85f7d19eb2 | ||
|
|
6adda5c29c | ||
|
|
4a03756b5b | ||
|
|
b1554ebf37 | ||
|
|
b6307b4fd6 | ||
|
|
6f22c7ad19 | ||
|
|
bc9add783c | ||
|
|
ee67221068 | ||
|
|
71e528139c | ||
|
|
c674fe1f04 | ||
|
|
d047e95bb5 | ||
|
|
791518d6c4 | ||
|
|
83afd55e0e | ||
|
|
7870a66790 | ||
|
|
c923e96f3e | ||
|
|
dd79834137 | ||
|
|
8995f0af55 | ||
|
|
e75a74565b | ||
|
|
1792849b98 | ||
|
|
c7fb1f6d17 | ||
|
|
a856263081 | ||
|
|
582d1320a3 | ||
|
|
3789da4305 | ||
|
|
1e58ae0e63 | ||
|
|
618329c7e0 | ||
|
|
a36f97adfb | ||
|
|
2cda53d3af | ||
|
|
74007ea465 | ||
|
|
c88a7dba6b | ||
|
|
66b7863d43 | ||
|
|
19b318a488 | ||
|
|
c606e3db43 | ||
|
|
f89ab74b29 | ||
|
|
4bbdec5044 | ||
|
|
56a727cf0d | ||
|
|
32f74e41ef | ||
|
|
e249bc5856 | ||
|
|
32b8a344a6 | ||
|
|
61c0c35e92 | ||
|
|
2eecaf4570 | ||
|
|
8f59247acb | ||
|
|
eb3ec26279 | ||
|
|
f07d37ce0d | ||
|
|
2e8602eb43 | ||
|
|
4277041b0e | ||
|
|
6801190180 | ||
|
|
067a9cf54d | ||
|
|
d31a8c203f | ||
|
|
99e8a393b6 | ||
|
|
42ba0a2642 | ||
|
|
cc0cd51658 | ||
|
|
9d3014e39c | ||
|
|
1ac3a9da4f | ||
|
|
7c80bbecd9 | ||
|
|
d55e6191c2 | ||
|
|
3875603285 | ||
|
|
a62261343c | ||
|
|
8b0a995f23 | ||
|
|
4734cb3428 | ||
|
|
34f814717b | ||
|
|
d4b56f99ff | ||
|
|
f51d51abf4 | ||
|
|
a13a0ee5a9 | ||
|
|
19f4ad0361 | ||
|
|
93dc96f150 | ||
|
|
64d9e9054c | ||
|
|
b1ed7227d7 | ||
|
|
48215c1eae | ||
|
|
7399a978f5 | ||
|
|
3737ad6524 | ||
|
|
b37695bc6f | ||
|
|
6e97d588e4 | ||
|
|
17319b15b0 | ||
|
|
0692afcd90 | ||
|
|
91ac3f7931 | ||
|
|
9d5990311f | ||
|
|
6f38cdec5a | ||
|
|
7a1f3a0cb1 | ||
|
|
99356f7880 | ||
|
|
d38d7b8ff6 | ||
|
|
834ac42d24 | ||
|
|
e80fac4900 | ||
|
|
a13c8cb71e | ||
|
|
3dc61962de | ||
|
|
5c3acf61b4 | ||
|
|
953d835ded | ||
|
|
1537ca4e71 | ||
|
|
2d94ace89f | ||
|
|
ea9c0b919f | ||
|
|
d178fa5bdb | ||
|
|
01f11d94b0 | ||
|
|
58f1a8e916 | ||
|
|
688fefc4dd | ||
|
|
ce96e34d25 | ||
|
|
a1e1d663c3 | ||
|
|
245b52d8e2 | ||
|
|
1de93be0f0 | ||
|
|
e723e87c74 | ||
|
|
c9535749f5 | ||
|
|
497a66ea38 | ||
|
|
62d9735a7e | ||
|
|
0f8fbf6a1e | ||
|
|
66c2d1cba1 | ||
|
|
69cde6092b | ||
|
|
3e9face818 | ||
|
|
4dfac02065 | ||
|
|
7551509f41 | ||
|
|
5f42866cea | ||
|
|
50d91670ec | ||
|
|
8c04421387 | ||
|
|
c39be3dbc9 | ||
|
|
8aa8c296e1 | ||
|
|
592c55c524 | ||
|
|
eafaf35790 | ||
|
|
585c66a4d0 | ||
|
|
1ecedd5566 | ||
|
|
3a0a5a7754 | ||
|
|
d329406eb8 | ||
|
|
e654999fdf | ||
|
|
efe98f7fad | ||
|
|
87bc957662 | ||
|
|
15e93d6304 | ||
|
|
5471735419 | ||
|
|
6b2955f135 | ||
|
|
1ab0a5182f | ||
|
|
dad65998cc | ||
|
|
abd30f3e41 | ||
|
|
7f42d9784e | ||
|
|
1056dac070 | ||
|
|
c05622484d | ||
|
|
59659a13f1 | ||
|
|
73c6cbb562 | ||
|
|
9f724221fa | ||
|
|
dfcd86ea09 | ||
|
|
555393d328 | ||
|
|
febacfcb79 | ||
|
|
1891bd494c | ||
|
|
ba5d53914e | ||
|
|
2ae38e20ab | ||
|
|
5f14b2e738 | ||
|
|
bc53951648 | ||
|
|
9a323e3387 | ||
|
|
72fe972cc0 | ||
|
|
88dfd90e3b | ||
|
|
1f9c1ce8e4 | ||
|
|
b4d75e3240 | ||
|
|
def0d7a519 | ||
|
|
a9cc4dabb7 | ||
|
|
e29e8ca0a3 | ||
|
|
5cda4135b1 | ||
|
|
221e153f4c | ||
|
|
3a24e4703d | ||
|
|
2b158c2b4e | ||
|
|
8b715ad9cd | ||
|
|
07cf527ddf | ||
|
|
63f1429a69 | ||
|
|
d881fc2fe0 | ||
|
|
d5090ee24b | ||
|
|
56c0a78c64 | ||
|
|
47037220e0 | ||
|
|
640fade438 | ||
|
|
98ede836d4 | ||
|
|
e75916fd92 | ||
|
|
e01ed8ad3c | ||
|
|
3beea79b38 | ||
|
|
1a29870958 | ||
|
|
7f3fae5a02 | ||
|
|
c2adf56b2f | ||
|
|
7a8f5a606c | ||
|
|
462c17a0c3 | ||
|
|
e59e3019e3 | ||
|
|
d65e2ab2d4 | ||
|
|
3f6120e122 | ||
|
|
e66e5e6f6e | ||
|
|
b0bc57466e | ||
|
|
154dc555c5 | ||
|
|
36559d0264 | ||
|
|
a722ce460c | ||
|
|
67b2f28064 | ||
|
|
8b988409e2 | ||
|
|
57c4658021 | ||
|
|
283bfde3d9 | ||
|
|
41935aa9aa | ||
|
|
9206d1f5f1 | ||
|
|
f5381ae3e3 | ||
|
|
95c4bf5854 | ||
|
|
2b4b23f726 | ||
|
|
64c17767ed | ||
|
|
32d75749a0 | ||
|
|
e776f9c7d8 | ||
|
|
3bdcf1077b | ||
|
|
da550a4a67 | ||
|
|
1655594514 | ||
|
|
c4f884f104 | ||
|
|
855f3d74fe | ||
|
|
7fc140af01 | ||
|
|
d401474981 | ||
|
|
0f6563e8e0 | ||
|
|
6cd0f83496 | ||
|
|
b428fc97e9 | ||
|
|
c14c51f551 | ||
|
|
8e18104f38 | ||
|
|
06fcc2bf46 | ||
|
|
1656b4c5b9 | ||
|
|
431f7ab37c | ||
|
|
f44109abae | ||
|
|
8cb134f56b | ||
|
|
032aa2d1d6 | ||
|
|
cbe20d9c96 | ||
|
|
e6b74b10eb | ||
|
|
8c4dbbfbec | ||
|
|
9bde15d4ac | ||
|
|
fd32dad7eb | ||
|
|
64df515c63 | ||
|
|
8908bd9889 | ||
|
|
5c3159cbca | ||
|
|
9afe72d508 | ||
|
|
c002d2c99f | ||
|
|
c768b6bd0c | ||
|
|
7903fe52b4 | ||
|
|
313b1b39a7 | ||
|
|
648f3abcbd | ||
|
|
2db98715cc | ||
|
|
5e3da57e21 | ||
|
|
dceef35aac | ||
|
|
2d23952181 | ||
|
|
518da7e81d | ||
|
|
8db1eb69dc | ||
|
|
d16ebba9e0 | ||
|
|
ee0420188c | ||
|
|
b9d14d31ae | ||
|
|
c505875fef | ||
|
|
6029f0ed36 | ||
|
|
734bed4821 | ||
|
|
26b3185933 | ||
|
|
5efa9ff0b2 | ||
|
|
ac6a013bf5 | ||
|
|
d9c4abe0df | ||
|
|
ae9e257e56 | ||
|
|
bb82a9bcf4 | ||
|
|
df61ea0a62 | ||
|
|
371926b202 | ||
|
|
fe77a7e01a | ||
|
|
e6b43e19c2 | ||
|
|
96b2145ba1 | ||
|
|
feb950be3c | ||
|
|
5b02bda277 | ||
|
|
ce4643d650 | ||
|
|
55c311cd39 | ||
|
|
8f8bfb9446 | ||
|
|
8f2a33dcaa | ||
|
|
4946daeea4 | ||
|
|
38ecc82e97 | ||
|
|
7ec8d02c1f | ||
|
|
a047ff2228 | ||
|
|
3dd181c912 | ||
|
|
3753ecd8e5 | ||
|
|
eaf05aa31a | ||
|
|
ad0f965f3a | ||
|
|
53e68c0567 | ||
|
|
9f609ac80f | ||
|
|
2b04d7a92d | ||
|
|
8f7305e347 | ||
|
|
9d3720557e | ||
|
|
aa79325d76 | ||
|
|
15b7b20500 | ||
|
|
6290630787 | ||
|
|
ad9e7b5eae | ||
|
|
fa31fbb343 | ||
|
|
ca7b6f139f | ||
|
|
a6e8cbc50d | ||
|
|
368640b59b | ||
|
|
22cb0b6afb | ||
|
|
08a7394c1b | ||
|
|
8a2fd5bf5e | ||
|
|
7add40ae93 | ||
|
|
d4da98bae5 | ||
|
|
92bbd83b33 | ||
|
|
b0c647e50c | ||
|
|
1ddd94b95c | ||
|
|
845c6be95f | ||
|
|
63d989cab4 | ||
|
|
92daf156f5 | ||
|
|
d0822ab1fe | ||
|
|
65cda38cc8 | ||
|
|
dcc1d545e9 | ||
|
|
e13967cb83 | ||
|
|
46d1bc274c | ||
|
|
81551104ce | ||
|
|
8b10fe4053 | ||
|
|
b5bd2df814 | ||
|
|
32ddf3246c | ||
|
|
8ccc996e63 | ||
|
|
bd7150d676 | ||
|
|
c35e70173b | ||
|
|
86f209a302 | ||
|
|
44943feb8b | ||
|
|
4331e9ae80 | ||
|
|
9ae97de780 | ||
|
|
d941b31c45 | ||
|
|
fed254f355 | ||
|
|
7f53877283 | ||
|
|
ca3a436fe5 | ||
|
|
d48ef90fb0 | ||
|
|
29bbe84f69 | ||
|
|
d079f0ca44 | ||
|
|
394f52a725 | ||
|
|
5828508218 | ||
|
|
2f244bca85 | ||
|
|
064d638588 | ||
|
|
7856495d59 | ||
|
|
c3bded6947 | ||
|
|
3a584e318a | ||
|
|
48d744b6bd | ||
|
|
6eba8130ba | ||
|
|
5ac7eddd03 | ||
|
|
b5dfe6320d | ||
|
|
19ee55a303 | ||
|
|
b715a008c5 | ||
|
|
1d4b834204 | ||
|
|
aa271423f9 | ||
|
|
0354026292 | ||
|
|
93752fb6cb | ||
|
|
7da8689bf2 | ||
|
|
afd22768fc | ||
|
|
e9ecdb3f56 | ||
|
|
e14ef2c671 | ||
|
|
d45c4740ad | ||
|
|
62bae55fd1 | ||
|
|
dcee505f6b | ||
|
|
ddf800de10 | ||
|
|
325db535c0 | ||
|
|
af4678ff18 | ||
|
|
cae77ae291 | ||
|
|
cab5a97117 | ||
|
|
0417b6266a | ||
|
|
fc7103f56e | ||
|
|
ffe9ec1c76 | ||
|
|
3fc738b53a | ||
|
|
7e1f554c4e | ||
|
|
5cfa8889f4 | ||
|
|
0cbe7a16e3 | ||
|
|
0cf3c097fb | ||
|
|
15061af796 | ||
|
|
2cfcad6a50 | ||
|
|
13a8ac3e50 | ||
|
|
7c5993d75b | ||
|
|
10c0325f18 | ||
|
|
367cb41121 | ||
|
|
c37884bdb7 | ||
|
|
37a551ecd3 | ||
|
|
dafc514353 | ||
|
|
aa6cb7d650 | ||
|
|
67e6688e69 | ||
|
|
5d9b71b038 | ||
|
|
2077cd4864 | ||
|
|
65276f45f1 | ||
|
|
95eb17bdb7 | ||
|
|
a88d66b48b | ||
|
|
a200c5397a | ||
|
|
87fb6fc3d1 | ||
|
|
79fcd45d5f | ||
|
|
e0ddaa74d0 | ||
|
|
d584dc5632 | ||
|
|
86704efcec | ||
|
|
6bb0f18d53 | ||
|
|
77e4984468 | ||
|
|
4e18c67ec5 | ||
|
|
6fbed4ad5c | ||
|
|
0fb42c6129 | ||
|
|
41ab94fe13 | ||
|
|
3a46f4589b | ||
|
|
14441ec144 | ||
|
|
f589dd2f26 | ||
|
|
629ba763d7 | ||
|
|
e896e1b3dd | ||
|
|
b92a127200 | ||
|
|
e02b8e227d | ||
|
|
367a7309bc | ||
|
|
6ecd2ed186 | ||
|
|
0ada26ccc2 | ||
|
|
a39faeec32 | ||
|
|
4e35b58d59 | ||
|
|
d03be75184 | ||
|
|
59b0109918 | ||
|
|
154e5aab8e | ||
|
|
5c38b9109e | ||
|
|
70b4b33823 | ||
|
|
6419c6b1ba | ||
|
|
1f9d9c619e | ||
|
|
2aa9f4c079 | ||
|
|
70495d9ce9 | ||
|
|
b3b7f8b980 | ||
|
|
b7e6d8646f | ||
|
|
466522fb12 | ||
|
|
549d68d3e8 | ||
|
|
42a54648a1 | ||
|
|
dc9b338cb9 | ||
|
|
b7d0455377 | ||
|
|
df0b11a960 | ||
|
|
111956e2f3 | ||
|
|
52c12731cb | ||
|
|
cf54a4919b | ||
|
|
ac26818005 | ||
|
|
467cf919be | ||
|
|
f48040a4d7 | ||
|
|
90ddcb30bf | ||
|
|
b713083574 | ||
|
|
fc7e7074ce | ||
|
|
e88e9bdf11 | ||
|
|
bc4ea885dc | ||
|
|
723ace2724 | ||
|
|
aeb454f31d | ||
|
|
12c44dceb6 | ||
|
|
9d1b8fbd3e | ||
|
|
124e0412b2 | ||
|
|
3a46260937 | ||
|
|
7151d5eac2 | ||
|
|
5e28d39f09 | ||
|
|
c7774d3d6c | ||
|
|
a85b84fd56 | ||
|
|
443b3c8b82 | ||
|
|
d69383d78b | ||
|
|
c355a2b61e | ||
|
|
93415ee36c | ||
|
|
0648ecf2d2 | ||
|
|
17022d50d4 | ||
|
|
c4573e46a9 | ||
|
|
fa515604dc | ||
|
|
3b12d70e45 | ||
|
|
efb86f453c | ||
|
|
569c18c9f1 | ||
|
|
91223a8431 | ||
|
|
d95e49b535 | ||
|
|
4cb89b3fc2 | ||
|
|
5e56c66201 | ||
|
|
e6393c105b | ||
|
|
bb16313024 | ||
|
|
a5ce2a5a62 | ||
|
|
3885cbd045 | ||
|
|
00940d66b1 | ||
|
|
cafba71671 | ||
|
|
cb454734b0 | ||
|
|
4f29f998c5 | ||
|
|
c241d48df3 | ||
|
|
2afc268a04 | ||
|
|
94017c1e53 | ||
|
|
cea6b7067a | ||
|
|
89b44f5126 | ||
|
|
3015ffd950 | ||
|
|
8c465d22e0 | ||
|
|
f1951d0d5f | ||
|
|
a84be2ba60 | ||
|
|
4243feaf37 | ||
|
|
e004f96b65 | ||
|
|
a98cbc3a9d | ||
|
|
5877918fe8 | ||
|
|
b45b585edf | ||
|
|
983b2ebe0e | ||
|
|
2a0e92e4e2 | ||
|
|
b351e60d52 | ||
|
|
69e7a581fd | ||
|
|
0a20be85ab | ||
|
|
3f5a54f9f1 | ||
|
|
e2c7941542 | ||
|
|
8433119ac9 | ||
|
|
43589096c3 | ||
|
|
05d14166e4 | ||
|
|
0d0f7724b6 | ||
|
|
d28152566d | ||
|
|
fb805de552 | ||
|
|
5ade906a7b | ||
|
|
8f02cbc234 | ||
|
|
59a2415a0d | ||
|
|
c1b3686190 | ||
|
|
662eeafbb5 | ||
|
|
5ff146bc69 | ||
|
|
9380a243ba | ||
|
|
587291ab86 | ||
|
|
2cd62621df | ||
|
|
3630fc63d7 | ||
|
|
de42d9f310 | ||
|
|
f5ed9f1c33 | ||
|
|
01ec472314 | ||
|
|
9ddee84954 | ||
|
|
dc0715dc2a | ||
|
|
b6b9fad5da | ||
|
|
553922bef6 | ||
|
|
4b08c0b56b | ||
|
|
ba081c7837 | ||
|
|
f4a2741ba0 | ||
|
|
e6b926c87f | ||
|
|
4be1195e5d | ||
|
|
84ef245b56 | ||
|
|
7b39bae673 | ||
|
|
7c505fd02a | ||
|
|
11f7f9a231 | ||
|
|
4f1eedcf7c | ||
|
|
99f85b800c | ||
|
|
2e4f81f63d | ||
|
|
abbaca3c71 | ||
|
|
a9b6f976a2 | ||
|
|
64b2a8d4a5 | ||
|
|
2b550b104f | ||
|
|
564e76956a | ||
|
|
dd734c3c8a | ||
|
|
35e9091863 | ||
|
|
b9e437c6cd | ||
|
|
de5f7f9b05 | ||
|
|
44a9db1c2f | ||
|
|
d7dc4bf496 | ||
|
|
1a15a062ef | ||
|
|
5b02501038 | ||
|
|
c3a98b265f | ||
|
|
b92bcd1789 | ||
|
|
949e504ad5 | ||
|
|
293a8a8199 | ||
|
|
2806c386d3 | ||
|
|
75f3a30d38 | ||
|
|
7cfe74b384 | ||
|
|
38d537bb8a | ||
|
|
b6f927c454 | ||
|
|
57c616abfe | ||
|
|
ad6ca65d4b | ||
|
|
38490195e3 | ||
|
|
6a43b8b159 | ||
|
|
a760acc399 | ||
|
|
cea5668a9f | ||
|
|
d73ab36dc3 | ||
|
|
5c01e0e852 | ||
|
|
5a13850043 | ||
|
|
96fbc968ef | ||
|
|
cf26a5da3d | ||
|
|
3e21758aac | ||
|
|
942799637e | ||
|
|
07dd33f6de | ||
|
|
a924af79c1 | ||
|
|
2422ca0847 | ||
|
|
5b900e7b9c | ||
|
|
8539a297fa | ||
|
|
b6b873f699 | ||
|
|
94ccabd5ce | ||
|
|
ea18fa95ad | ||
|
|
b5f2c8b583 | ||
|
|
90a228619e | ||
|
|
a6b7ba41ee | ||
|
|
bef8c846f8 | ||
|
|
ce2bf5ac53 | ||
|
|
2fec555756 | ||
|
|
2faaad6d3d | ||
|
|
3a4b970c62 | ||
|
|
05491309c2 | ||
|
|
e122217101 | ||
|
|
81eb7de665 | ||
|
|
c9fe2f649a | ||
|
|
6dd13e4939 | ||
|
|
6cc00a5a0f | ||
|
|
5661be3ebd | ||
|
|
59a2c5ce9c | ||
|
|
73a7adea63 | ||
|
|
3896384339 | ||
|
|
3028e70a0f | ||
|
|
64416aef2b | ||
|
|
e0340dadf4 | ||
|
|
83e0cdfa1e | ||
|
|
22ed3c0ca5 | ||
|
|
f95bc17e39 | ||
|
|
64a4451868 | ||
|
|
ead47b2aa2 | ||
|
|
3e9e6c3e73 | ||
|
|
b8e957ff9a | ||
|
|
2aa12631f8 | ||
|
|
7feaa505c2 | ||
|
|
b0e6e31d92 | ||
|
|
068e803bc8 | ||
|
|
a4749d376a | ||
|
|
71992f5b17 | ||
|
|
3897fc5666 | ||
|
|
315b303b4f | ||
|
|
d665c37bc3 | ||
|
|
c5df7d4249 | ||
|
|
c5988e412d | ||
|
|
f2744493b9 | ||
|
|
a6793588c6 | ||
|
|
958198b65a | ||
|
|
5605256c75 | ||
|
|
35c7124617 | ||
|
|
f124cd9c7e | ||
|
|
f9a756d1ff | ||
|
|
0aeecc7a99 | ||
|
|
3646e6ea13 | ||
|
|
d2a60c7287 | ||
|
|
e794604cae | ||
|
|
60fa6071b9 | ||
|
|
cdad6f74cf | ||
|
|
549de55b57 | ||
|
|
686432aa8a | ||
|
|
c2e219b446 | ||
|
|
15cefc664a | ||
|
|
38fc9f00a2 | ||
|
|
2673b9dd03 | ||
|
|
ff6c86b932 | ||
|
|
c247e49c2a | ||
|
|
0c0dddab12 | ||
|
|
1c39b76b83 | ||
|
|
f72dd7fdb6 | ||
|
|
5a5b5292a1 | ||
|
|
d6fce7c099 | ||
|
|
93e2cc367b | ||
|
|
de3ee932b6 | ||
|
|
b051a3981d | ||
|
|
ed3b4088d9 | ||
|
|
2aae667e15 | ||
|
|
a6604172d9 | ||
|
|
e85427f1da | ||
|
|
572a121492 | ||
|
|
f8f7fe4f33 | ||
|
|
b835716e36 | ||
|
|
1476395829 | ||
|
|
8156279025 | ||
|
|
1822f36aba | ||
|
|
7f1a854769 | ||
|
|
0c8e3515fe | ||
|
|
5b5f48014b | ||
|
|
d9e1dce393 | ||
|
|
79fd5dc7b1 | ||
|
|
7183bea412 | ||
|
|
6e2ad28676 | ||
|
|
444b0b30c3 | ||
|
|
cdef2dee5a | ||
|
|
a1036577a2 | ||
|
|
badcccab76 | ||
|
|
9e8facaa6f | ||
|
|
7c0c75ca42 | ||
|
|
e32d619677 | ||
|
|
6f2801cea8 | ||
|
|
76d402fcfa | ||
|
|
a55b0aeb5f | ||
|
|
75e5b1c7cd | ||
|
|
7af2f4a98a | ||
|
|
f50bcb981a | ||
|
|
08bcebfc1c | ||
|
|
ae31ecf706 | ||
|
|
4dac1ae9f8 | ||
|
|
db253cdaf8 | ||
|
|
4b05929dd5 | ||
|
|
7c174b9c05 | ||
|
|
82596b9c3f | ||
|
|
6414fe8cf8 | ||
|
|
8e2b18ea1d | ||
|
|
c57b55ede6 | ||
|
|
72a0341a0e | ||
|
|
98b9503461 | ||
|
|
417310b5c5 | ||
|
|
08d0db87d1 | ||
|
|
18bf1400a7 | ||
|
|
3b3dca4a26 | ||
|
|
82ee5bf1fd | ||
|
|
398666a8b4 | ||
|
|
7d1e60a019 | ||
|
|
d7736f798b | ||
|
|
c20be3dbea | ||
|
|
e52c5d38d3 | ||
|
|
6662cf6245 | ||
|
|
0f78f1b333 | ||
|
|
2efe58209f | ||
|
|
d420fad489 | ||
|
|
49868d8f7c | ||
|
|
dee6dc1e6c | ||
|
|
35054c1f59 | ||
|
|
f507ef5e56 | ||
|
|
57f763b0b6 | ||
|
|
7a3c326442 | ||
|
|
1842c9ed3b | ||
|
|
855f092682 | ||
|
|
cafe267bf0 | ||
|
|
81710ff3b0 | ||
|
|
1c90107571 | ||
|
|
ff0c021162 | ||
|
|
ca916deda9 | ||
|
|
f0f044b766 | ||
|
|
69758b80a5 | ||
|
|
98ed178d7b | ||
|
|
419fc15d77 | ||
|
|
72eb76191f | ||
|
|
7164260f6e | ||
|
|
f5e474f250 | ||
|
|
9a84fc5b47 | ||
|
|
248a689de2 | ||
|
|
4da33b81fd | ||
|
|
657a1aaed5 | ||
|
|
415b7bf4d1 | ||
|
|
d8c1cb2629 | ||
|
|
ea75a56d33 | ||
|
|
8e45c41f20 | ||
|
|
dacd13ee30 | ||
|
|
f49727e0b6 | ||
|
|
1fc67984a2 | ||
|
|
2cc6d2ef11 | ||
|
|
40cc4f32d0 | ||
|
|
9537dd793d | ||
|
|
96a7e4f7ac | ||
|
|
16d1245b64 | ||
|
|
06eac367f2 | ||
|
|
78a6ab89f9 | ||
|
|
f77bacb8a6 | ||
|
|
94387e8698 | ||
|
|
aebdc0c5d6 | ||
|
|
113c39c11c | ||
|
|
078656fb8b | ||
|
|
c4b49ce6cd | ||
|
|
97e98d2725 | ||
|
|
02857d1b7f | ||
|
|
04027b9c32 | ||
|
|
969d71b264 | ||
|
|
174789e2e1 | ||
|
|
eb535acb95 | ||
|
|
5540c8b06f | ||
|
|
8c17d825d9 | ||
|
|
0af6348913 | ||
|
|
0ac6c01d65 | ||
|
|
4c1dfbaddd | ||
|
|
258acfdf5a | ||
|
|
d875dab29b | ||
|
|
1f9b2cd48c | ||
|
|
6ee4a6a5b4 | ||
|
|
4989396abc | ||
|
|
398b7a5a25 | ||
|
|
3e267bc77a | ||
|
|
d84cc370c9 | ||
|
|
7f12288b2c | ||
|
|
20e89f21ff | ||
|
|
bd2cf19ec1 | ||
|
|
de47efdda5 | ||
|
|
95231faa87 | ||
|
|
567b846de1 | ||
|
|
83ce8a2197 | ||
|
|
f170cef506 | ||
|
|
c2d8ed271b | ||
|
|
e38224d758 | ||
|
|
83901e5fbb | ||
|
|
db05cc48e8 | ||
|
|
4632224e9b | ||
|
|
5684c450f4 | ||
|
|
4bcf8215b6 | ||
|
|
36a3b6f479 | ||
|
|
b31215c257 | ||
|
|
1f558590a8 | ||
|
|
ad5e2a3d0e | ||
|
|
b26255e60a | ||
|
|
852689b3df | ||
|
|
197bc54ac6 | ||
|
|
013a58e634 | ||
|
|
4dbe535e1e | ||
|
|
7ac378dcd3 | ||
|
|
965b098d66 | ||
|
|
6379c3210b | ||
|
|
7653d5fec9 | ||
|
|
7e1f7bd7fd | ||
|
|
5581e25a21 | ||
|
|
52e08a2784 | ||
|
|
f6047b8733 | ||
|
|
bea8e647d9 | ||
|
|
1cf8634152 | ||
|
|
141b63587b | ||
|
|
2b91903129 | ||
|
|
32de0ae4a4 | ||
|
|
985a0b9bce | ||
|
|
9860e2bc75 | ||
|
|
db8472a6e5 | ||
|
|
8a22da0acb | ||
|
|
cf1b53831f | ||
|
|
92f64188d5 | ||
|
|
6a0061dde3 | ||
|
|
84fbdba9f5 | ||
|
|
39cac396f5 | ||
|
|
75ed3ce60c | ||
|
|
8373204c94 | ||
|
|
6787af413e | ||
|
|
0199b4e212 | ||
|
|
121be772df | ||
|
|
f3b3e3eded | ||
|
|
02c08c942d | ||
|
|
b2370f5c5f | ||
|
|
6556e1b4a2 | ||
|
|
28acd466b3 | ||
|
|
699921d464 | ||
|
|
5c84fbba9a | ||
|
|
0b02422e7d | ||
|
|
677bff55c2 | ||
|
|
3d03bea582 | ||
|
|
278a77247d | ||
|
|
b83a8dcb5d | ||
|
|
9bce103dad | ||
|
|
dfcc4e1b3a | ||
|
|
66892aea60 | ||
|
|
5c708b43c2 | ||
|
|
e2026aedbc | ||
|
|
3184f8d275 | ||
|
|
8ec78688b8 | ||
|
|
1911fc2e65 | ||
|
|
e0446a73fa | ||
|
|
16b1bfa4d0 | ||
|
|
f015995ac4 | ||
|
|
0016836022 | ||
|
|
c543b7585a | ||
|
|
b90f1fc237 | ||
|
|
f892338098 | ||
|
|
defead108a | ||
|
|
1f8f9aaf81 | ||
|
|
3b32a3164b | ||
|
|
e5cc2ccaab | ||
|
|
2f9b753c5b | ||
|
|
cbcca9cf5b | ||
|
|
b1ac1859be | ||
|
|
cecb65cd40 | ||
|
|
74b076e31f | ||
|
|
e3057b5e46 | ||
|
|
e1e7387c73 | ||
|
|
73705bec23 | ||
|
|
cb9e045c7f | ||
|
|
92a8b5aa4d | ||
|
|
9b7f92188d | ||
|
|
77301e2930 | ||
|
|
babfc9ade3 | ||
|
|
883bbf102a | ||
|
|
e21f83267a | ||
|
|
27f0782465 | ||
|
|
d45b0dee10 | ||
|
|
2c2a29cd91 | ||
|
|
607a297c4a | ||
|
|
e177c5c94c | ||
|
|
7fb3456e83 | ||
|
|
d37bb2c7f9 | ||
|
|
20519e3b81 | ||
|
|
733613ad28 | ||
|
|
604070763d | ||
|
|
93f88800b8 | ||
|
|
9607888fc5 | ||
|
|
1e6936a8c3 | ||
|
|
56c2964e96 | ||
|
|
d5f223fc88 | ||
|
|
cdf2f6b5b4 | ||
|
|
fa3ce8de64 | ||
|
|
59d218d623 | ||
|
|
49fa1b6762 | ||
|
|
a2fe4a0b80 | ||
|
|
86e7a19a98 | ||
|
|
8c86c3dc1b | ||
|
|
2bef7631ae | ||
|
|
550d76a447 | ||
|
|
679b26cde4 | ||
|
|
79c625d737 | ||
|
|
a1d277e771 | ||
|
|
bde0f2f0ba | ||
|
|
53f830bb38 | ||
|
|
a5e3207715 | ||
|
|
b357a085c8 | ||
|
|
9722d808f9 | ||
|
|
0fdc1d0a1f | ||
|
|
f963d28ba8 | ||
|
|
09d1af9c46 | ||
|
|
5d8e894802 | ||
|
|
0ecfbfad53 | ||
|
|
ed35a143ec | ||
|
|
5089729b18 | ||
|
|
b41d2d64cb | ||
|
|
25e882eb78 | ||
|
|
4ef8f3da2b | ||
|
|
b00ce8789f | ||
|
|
b4f81a0c2a | ||
|
|
aa714f7d80 | ||
|
|
ca203435d1 | ||
|
|
ee8893a884 | ||
|
|
bf89238bdf | ||
|
|
360f7cf9c3 | ||
|
|
482ad0e5ee | ||
|
|
cd6ac4f8c2 | ||
|
|
79ac2be617 | ||
|
|
9b4b7cf5d4 | ||
|
|
9b970ae1a4 | ||
|
|
fec7912870 | ||
|
|
8bb855e657 | ||
|
|
9488864f47 | ||
|
|
beefc6a86e | ||
|
|
cc99abcd14 | ||
|
|
f8bcf52741 | ||
|
|
1a10366ab7 | ||
|
|
925b6694ac | ||
|
|
1ad16ade86 | ||
|
|
45e3f02832 | ||
|
|
ba1a681aab | ||
|
|
23bba969dd | ||
|
|
9c743acd2d | ||
|
|
62da7c7be4 | ||
|
|
07310c7714 | ||
|
|
ee93f7e018 | ||
|
|
21fae1f457 | ||
|
|
653a84d3a9 | ||
|
|
8132bbac2e | ||
|
|
197286c21e | ||
|
|
bf48729354 | ||
|
|
a504a75166 | ||
|
|
44ac22c0de | ||
|
|
df1c6b9b0b | ||
|
|
7ce45d2b11 | ||
|
|
bde0e0b86a | ||
|
|
c1232a7001 | ||
|
|
12c4dbf0e5 | ||
|
|
31a01ab227 | ||
|
|
5dc60b9f35 | ||
|
|
588f134de8 | ||
|
|
2ae867a7e0 | ||
|
|
c77b029ee2 | ||
|
|
d0648d1754 | ||
|
|
1e3486af94 | ||
|
|
8f2b2aba12 | ||
|
|
0b1232b65d | ||
|
|
969abe015c | ||
|
|
f39144cc51 | ||
|
|
725df15012 | ||
|
|
9e296cdb46 | ||
|
|
b07627611f | ||
|
|
6cad4bc986 | ||
|
|
504c08a0fc | ||
|
|
592f1cafdb | ||
|
|
71d8c2080c | ||
|
|
6095933847 | ||
|
|
92febf0b00 | ||
|
|
1c711aef3c | ||
|
|
0bec780a1b | ||
|
|
ed01a46a3f | ||
|
|
4f8fa9f9eb | ||
|
|
2f99ccdd4a | ||
|
|
2dd1013075 | ||
|
|
6552aeaa3b | ||
|
|
b92b93e233 | ||
|
|
10036b148c | ||
|
|
cccec8382f | ||
|
|
5e30721e01 | ||
|
|
d03690cffd | ||
|
|
dad732b7e6 | ||
|
|
d74b5c8764 | ||
|
|
0f19010e52 | ||
|
|
ac6ee28c5f | ||
|
|
c509c02546 | ||
|
|
1258c44bad | ||
|
|
fe65e7a0c4 | ||
|
|
76727d09bf | ||
|
|
2a49b3899a | ||
|
|
49b85d150c | ||
|
|
b54241a5b2 | ||
|
|
78a2086535 | ||
|
|
24cc5dbaa0 | ||
|
|
0093838a75 | ||
|
|
dde658a514 | ||
|
|
13996740e0 | ||
|
|
e4b017b304 | ||
|
|
a2a683d31e | ||
|
|
5040f09f0c | ||
|
|
19911d9f1f | ||
|
|
04b0f8b2a4 | ||
|
|
e453dceacd | ||
|
|
42a938b50b | ||
|
|
4cf3cff74d | ||
|
|
3ffd007cc0 | ||
|
|
28b098cfb7 | ||
|
|
fd59088528 | ||
|
|
05bd32f750 | ||
|
|
e80147d24e | ||
|
|
72e1a19ea5 | ||
|
|
b14d6c9216 | ||
|
|
c894d72b52 | ||
|
|
220dbd7e30 | ||
|
|
84d6fc2787 | ||
|
|
f6d0738c79 | ||
|
|
52615c6f52 | ||
|
|
34342599b9 | ||
|
|
42edb20b07 | ||
|
|
a14784cfd4 | ||
|
|
32440567ad | ||
|
|
25f1dc325d | ||
|
|
38feeee464 | ||
|
|
b2701ad911 | ||
|
|
d41962f9d1 | ||
|
|
ec5d01545a | ||
|
|
03ddadc1ed | ||
|
|
3e55b61ac0 | ||
|
|
5a7f022e40 | ||
|
|
f651e10684 | ||
|
|
b753f920e1 | ||
|
|
415a0cdf28 | ||
|
|
9708961654 | ||
|
|
47bcb117b4 | ||
|
|
3eb38e558e | ||
|
|
a321eb8737 | ||
|
|
62c65659cc | ||
|
|
249addebff | ||
|
|
860087d291 | ||
|
|
c63e8d32c9 | ||
|
|
91e4603917 | ||
|
|
276278db41 | ||
|
|
b58d4e306a | ||
|
|
21a57a0c58 | ||
|
|
06b1e43492 | ||
|
|
2c1ffde3ed | ||
|
|
918ebc62a2 | ||
|
|
465de438ce | ||
|
|
6ee848b279 | ||
|
|
db5f1622bd | ||
|
|
5e2f681761 | ||
|
|
ad506d78ba | ||
|
|
48b89609e2 | ||
|
|
0fd0a8b7cc | ||
|
|
2e922019d7 | ||
|
|
303d1fef6b | ||
|
|
619ed234a9 | ||
|
|
fd8fc679be | ||
|
|
5a3c852b32 | ||
|
|
4c7de77bfb | ||
|
|
b08c1eeaa9 | ||
|
|
7e91121a33 | ||
|
|
cb78e10a76 | ||
|
|
9d031c1600 | ||
|
|
7efe6f1d53 | ||
|
|
bf33c82b19 | ||
|
|
2330454838 | ||
|
|
0d0aa49eb9 | ||
|
|
c279f405cf | ||
|
|
725eee726d | ||
|
|
4c2a09369d | ||
|
|
e6e1aab098 | ||
|
|
511f71c369 | ||
|
|
3dfccea522 | ||
|
|
ced0faf916 | ||
|
|
d284ecdab4 | ||
|
|
be77bf94aa | ||
|
|
2c87c00906 | ||
|
|
0ff2e212d5 | ||
|
|
92e4b5cc16 | ||
|
|
4e3228628a | ||
|
|
dde03eca7c | ||
|
|
107595fcb2 | ||
|
|
32fb634a4d | ||
|
|
51fbcc736e | ||
|
|
360a22c537 | ||
|
|
63cb5ab883 | ||
|
|
151a937c10 | ||
|
|
4c88c9b029 | ||
|
|
24664cc859 | ||
|
|
a187456ac3 | ||
|
|
9e4752b114 | ||
|
|
de64b33bb8 | ||
|
|
e66b64650d | ||
|
|
5139bc326a | ||
|
|
826858c170 | ||
|
|
f2400ee089 | ||
|
|
6e3587dd43 | ||
|
|
7a61db9a70 | ||
|
|
da798e7a5a | ||
|
|
f385e46927 | ||
|
|
c31262b97e | ||
|
|
2e9acc1fa8 | ||
|
|
0f9da7f519 | ||
|
|
971e1cdbec | ||
|
|
9fad2d68af | ||
|
|
51180adeb4 | ||
|
|
8ded683796 | ||
|
|
31c4ab8ac0 | ||
|
|
4f9d31e832 | ||
|
|
22e13e8c40 | ||
|
|
bec52b81fd | ||
|
|
7fc168532c | ||
|
|
69b55bcbd3 | ||
|
|
c6e839271a | ||
|
|
f3a1e09042 | ||
|
|
b157ec1b28 | ||
|
|
695be89656 | ||
|
|
3f3deb8e2a | ||
|
|
06b9d68eb7 | ||
|
|
bcc9379ebc | ||
|
|
9855e2edee | ||
|
|
e60e574902 | ||
|
|
c22ab4afdf | ||
|
|
b123d95b71 | ||
|
|
1760af50c8 | ||
|
|
73e33d7ba9 | ||
|
|
201c26f7c8 | ||
|
|
1fd31d83bf | ||
|
|
7d5c827dec | ||
|
|
ce89ff3c85 | ||
|
|
e60797cd0f | ||
|
|
49c5c5bbde | ||
|
|
78f243651e | ||
|
|
776a4d657d | ||
|
|
8f0b962507 | ||
|
|
8dc8431c0e | ||
|
|
5aa15ef731 | ||
|
|
1519843f6f | ||
|
|
37a4eefc46 | ||
|
|
1efcb2f80b | ||
|
|
0acb4f5aed | ||
|
|
4f38a953ac | ||
|
|
f05767afe8 | ||
|
|
ddbf23df68 | ||
|
|
6c4ab3b7f4 | ||
|
|
4d902c01a6 | ||
|
|
d1a5ba2b8e | ||
|
|
982cac3472 | ||
|
|
431f22283d | ||
|
|
7e61b1ecad | ||
|
|
a2d685815f | ||
|
|
014c2c5249 | ||
|
|
add63d2dde | ||
|
|
81bed3d3d5 | ||
|
|
f22a30ca87 | ||
|
|
946e74a918 | ||
|
|
3cd3cf9830 | ||
|
|
bc634c5f8f | ||
|
|
7357e40d3f | ||
|
|
92bde25a49 | ||
|
|
e714cb9e8b | ||
|
|
fed81c8e22 | ||
|
|
3a65d5ce23 | ||
|
|
6d482cd934 | ||
|
|
02511b7785 | ||
|
|
b3fdc4bb96 | ||
|
|
c90dd0e818 | ||
|
|
0e2d93c630 | ||
|
|
de328c9dfd | ||
|
|
f4a2f67db3 | ||
|
|
601d6f37af | ||
|
|
a004ef65af | ||
|
|
8997c27819 | ||
|
|
2aeceb7ea8 | ||
|
|
627e99859d | ||
|
|
6ebca7fa7c | ||
|
|
3d55ad783e | ||
|
|
05f66f9bea | ||
|
|
434ba82705 | ||
|
|
cbe6d19c79 | ||
|
|
b47e7f068c | ||
|
|
20a59a2c58 | ||
|
|
57845a2739 | ||
|
|
9a8ab29330 | ||
|
|
406cc71f96 | ||
|
|
132d0631d2 | ||
|
|
3095ade94c | ||
|
|
221df3d26d | ||
|
|
40db3a5d7d | ||
|
|
ee1a1fd614 | ||
|
|
8e8be502fd | ||
|
|
ae4413d0aa | ||
|
|
51b791f9c0 | ||
|
|
767c3c942b | ||
|
|
3fcace6660 | ||
|
|
4c600f5748 | ||
|
|
d84342733d | ||
|
|
d6f0f9ec0e | ||
|
|
fbc922fe97 | ||
|
|
4be84e035f | ||
|
|
254474d12d | ||
|
|
5615987ea2 | ||
|
|
3a93246f08 | ||
|
|
633784fae2 | ||
|
|
af127468a6 | ||
|
|
f892c1284b | ||
|
|
d762b5a017 | ||
|
|
28d7835327 | ||
|
|
03438f9192 | ||
|
|
09c7955149 | ||
|
|
9a2a88a703 | ||
|
|
820ae7d6e3 | ||
|
|
9c69f22f79 | ||
|
|
85ad6b12ba | ||
|
|
79706b4a1a | ||
|
|
72180d4248 | ||
|
|
8446c9563d | ||
|
|
4df1d2093f | ||
|
|
9d98d26cc7 | ||
|
|
0c762e610f | ||
|
|
62a019cc5d | ||
|
|
36c78e9686 | ||
|
|
dcb9e34d59 | ||
|
|
cb13cfdda7 | ||
|
|
0082f56b58 | ||
|
|
b490a72c1d | ||
|
|
3c0b479669 | ||
|
|
c9ad09226b | ||
|
|
4e771ecfb7 | ||
|
|
be86cd4028 | ||
|
|
3ddbe92f37 | ||
|
|
ca67ea9b4c | ||
|
|
9f78af29bf | ||
|
|
6821a05f76 | ||
|
|
e328c5d505 | ||
|
|
f814d26a4a | ||
|
|
3fc06e6f4f | ||
|
|
d876c267d6 | ||
|
|
1268a463ac | ||
|
|
e64d75a297 | ||
|
|
1960262435 | ||
|
|
c227062a37 | ||
|
|
e9376af13c | ||
|
|
8edebb9f75 | ||
|
|
8abe31341d | ||
|
|
7900edc96c | ||
|
|
c1eca93609 | ||
|
|
cd953bc7b9 | ||
|
|
692421ee13 | ||
|
|
1e89054897 | ||
|
|
ae1112ae11 | ||
|
|
205b505242 | ||
|
|
f77cd9bd52 | ||
|
|
11948c1cce | ||
|
|
d7e6f97d9c | ||
|
|
e324856301 | ||
|
|
8fb873b085 | ||
|
|
c17eb5fce5 | ||
|
|
91e9bdfc31 | ||
|
|
c83edc1689 | ||
|
|
dcbd4f3356 | ||
|
|
3929043eec | ||
|
|
23712ce590 | ||
|
|
adb2582856 | ||
|
|
3e292d7604 | ||
|
|
b565d1ab76 | ||
|
|
2debabe664 | ||
|
|
e1fc11218f | ||
|
|
ed59d6acf5 | ||
|
|
800984489d | ||
|
|
997ea3a2f5 | ||
|
|
b9b60a1346 | ||
|
|
e8edbd5394 | ||
|
|
f3e25ae3e6 | ||
|
|
93c952b344 | ||
|
|
d818a15aea | ||
|
|
6a664d976f | ||
|
|
5b7a71fb08 | ||
|
|
b29d83968b | ||
|
|
3e14c8e80d | ||
|
|
62bbe39bb4 | ||
|
|
4305ec34d0 | ||
|
|
a9518c2e55 | ||
|
|
c4fc67301c | ||
|
|
c92db272e0 | ||
|
|
46274acb3e | ||
|
|
8a676c573a | ||
|
|
39cbc59c12 | ||
|
|
96aa6ae3ef | ||
|
|
94d07833c5 | ||
|
|
1d3acbe40b | ||
|
|
389590e45d | ||
|
|
ea3cb026c7 | ||
|
|
1efe5bff9f | ||
|
|
d2ca74ecdf | ||
|
|
df4fa549ef | ||
|
|
cc7a706f52 | ||
|
|
d4256dad30 | ||
|
|
d9320b7c05 | ||
|
|
27c9a4a6a9 | ||
|
|
18d4dc7321 | ||
|
|
6f241ef001 | ||
|
|
296be2fbd5 | ||
|
|
c1957272ea | ||
|
|
e6afd33621 | ||
|
|
b767773742 | ||
|
|
52ead7ad1b | ||
|
|
b8e083f8fc | ||
|
|
6e3f8bdefd | ||
|
|
8e55f2bf58 | ||
|
|
cd9208b541 | ||
|
|
67e53906f0 | ||
|
|
cde7f2ab1c | ||
|
|
1cd9c57f87 | ||
|
|
c625ad32c5 | ||
|
|
15eca63ff0 | ||
|
|
d149df2a6e | ||
|
|
30fdcf4efb | ||
|
|
ea54abdfde | ||
|
|
2757dc7205 | ||
|
|
e35ad892eb | ||
|
|
140e2a026e | ||
|
|
c89ab4e47c | ||
|
|
ab05e34805 | ||
|
|
4a201c1890 | ||
|
|
cb3e863957 | ||
|
|
8e20e54b53 | ||
|
|
3cf4b4ed8b | ||
|
|
10241a37c2 | ||
|
|
0eb3a5cab3 | ||
|
|
4945767bd8 | ||
|
|
217760148c | ||
|
|
210e219778 | ||
|
|
50896ee23b | ||
|
|
41432b4165 | ||
|
|
d41b8e7441 | ||
|
|
aed17bde9b | ||
|
|
5b430fc376 | ||
|
|
e1064275a0 | ||
|
|
6f8d252dc6 | ||
|
|
b89e296390 | ||
|
|
99b5e3565d | ||
|
|
6ec33db50e | ||
|
|
aa4922840b | ||
|
|
28239c4a51 | ||
|
|
8ee8f2c085 | ||
|
|
a3ba2276e2 | ||
|
|
aefc90dc19 | ||
|
|
511c0dd17c | ||
|
|
e1b211ed8e | ||
|
|
08f409993a | ||
|
|
2e90cda34c | ||
|
|
b97d674108 | ||
|
|
f8cbe053cc | ||
|
|
0e241a0fc5 | ||
|
|
31916384c1 | ||
|
|
e6f17834a0 | ||
|
|
e1f2bc0a19 | ||
|
|
12d3ca2d50 | ||
|
|
aa08125e43 | ||
|
|
9ce94a8398 | ||
|
|
34a3535abe | ||
|
|
ac79803f1b | ||
|
|
006ec1abb8 | ||
|
|
b2a47e6216 | ||
|
|
85638c23ae | ||
|
|
44c1c93e81 | ||
|
|
06c9ff49a0 | ||
|
|
bbe72f52ba | ||
|
|
5793b85c5b | ||
|
|
eccc3717bc | ||
|
|
a89b2ca450 | ||
|
|
41e5d2524b | ||
|
|
de55be515d | ||
|
|
6a0c6047e6 | ||
|
|
0db8898577 | ||
|
|
a38695ff8a | ||
|
|
5ab45a1185 | ||
|
|
805d892dbb | ||
|
|
d5348cec70 | ||
|
|
167ef06209 | ||
|
|
d64a7cb739 | ||
|
|
b2584bb01b | ||
|
|
8b8cb12763 | ||
|
|
127e28a6f4 | ||
|
|
73c46f2a85 | ||
|
|
36e1fcc24a | ||
|
|
ed0e637207 | ||
|
|
6b8a55f55b | ||
|
|
509049d95a | ||
|
|
83280de352 | ||
|
|
a4e4c8baaa | ||
|
|
00d27bc313 | ||
|
|
78ce12bc60 | ||
|
|
7e8d7ef0c0 | ||
|
|
d1c01f476d | ||
|
|
bb3c38a3b1 | ||
|
|
8ca6e8c478 | ||
|
|
96660ebd2a | ||
|
|
9e69d01db7 | ||
|
|
1c015e31f1 | ||
|
|
bf12b127ac | ||
|
|
dd733092a1 | ||
|
|
30fd5fcf14 | ||
|
|
483940a98d | ||
|
|
615bc17cec | ||
|
|
94cf350e5c | ||
|
|
fa594e732f | ||
|
|
4c0c9eb7fb | ||
|
|
e9cd95fc6a | ||
|
|
b68675d9fd | ||
|
|
d4abfffa2f | ||
|
|
2d6d664f77 | ||
|
|
c1f08cf2ea | ||
|
|
f4d762c19b | ||
|
|
1ed7d34200 | ||
|
|
4f5d805725 | ||
|
|
bde8dbba05 | ||
|
|
f6b5404a04 | ||
|
|
ce9f2157e8 | ||
|
|
64cd9c0dd2 | ||
|
|
ab4cc74aca | ||
|
|
8cdb5fe346 | ||
|
|
aae7987df0 | ||
|
|
1817105c94 | ||
|
|
88ca98c5a6 | ||
|
|
8717cd077c | ||
|
|
9658af4aa9 | ||
|
|
d40a79576b | ||
|
|
481bd4ac68 | ||
|
|
6625a2afd3 | ||
|
|
cc23495591 | ||
|
|
acd42f9cc6 | ||
|
|
a2e439a155 | ||
|
|
d0fac80eb4 | ||
|
|
3f90611edf | ||
|
|
d8a9630548 | ||
|
|
fbb5d4a4a6 | ||
|
|
e5753c54a6 | ||
|
|
9ab9ea4c2e | ||
|
|
2301478b3f | ||
|
|
df9b09eeae | ||
|
|
7e7b2797d7 | ||
|
|
287f1ae042 | ||
|
|
4bc665c0d2 | ||
|
|
5390d0668b | ||
|
|
f55724bf58 | ||
|
|
4300b3a9e0 | ||
|
|
c085b263a7 | ||
|
|
3877014f83 | ||
|
|
83b1613002 | ||
|
|
329f7a2e00 | ||
|
|
0e0785db7b | ||
|
|
9638a4a4e6 | ||
|
|
91be43169c | ||
|
|
01af7e36cd | ||
|
|
d30ca2345e | ||
|
|
26be6ae7c5 | ||
|
|
31c0fc5742 | ||
|
|
1a7f8d5319 | ||
|
|
14e4a052bb | ||
|
|
ae3d8860be | ||
|
|
2eede422a4 | ||
|
|
24debbf349 | ||
|
|
81e252d564 | ||
|
|
1ca9389110 | ||
|
|
10fb76377c | ||
|
|
38029efe50 | ||
|
|
4a6242b3a0 | ||
|
|
b540cc8ac4 | ||
|
|
5fb0402216 | ||
|
|
bc202ecc98 | ||
|
|
9d3f0d45d5 | ||
|
|
f51c391e84 | ||
|
|
909fbaab95 | ||
|
|
67655d15cc | ||
|
|
83b4a3da30 | ||
|
|
768a195c10 | ||
|
|
16e8cfdf31 | ||
|
|
c0c55a7af8 | ||
|
|
e625dc63b4 | ||
|
|
dedac39d99 | ||
|
|
fe6d7d16c8 | ||
|
|
de8e248f29 | ||
|
|
7217ef5ec5 | ||
|
|
6a33173384 | ||
|
|
b520b26bd0 | ||
|
|
1761f63acd | ||
|
|
e58b09c1ea | ||
|
|
7c7e2c4f3d | ||
|
|
20abcaa011 | ||
|
|
297e6543de | ||
|
|
ec54f9a549 | ||
|
|
c064ca3ca9 | ||
|
|
56bd31fe22 | ||
|
|
ac8e042333 | ||
|
|
718b189f19 | ||
|
|
1fa9543e47 | ||
|
|
563209d080 | ||
|
|
ca71c700c7 | ||
|
|
585e2627bf | ||
|
|
579bbe2b86 | ||
|
|
5138644dc8 | ||
|
|
2310d36604 | ||
|
|
7d9e848edb | ||
|
|
a3770a8947 | ||
|
|
06d4a82706 | ||
|
|
c0095dc385 | ||
|
|
07060a8584 | ||
|
|
784e54f217 | ||
|
|
104156d084 | ||
|
|
48180b7ee8 | ||
|
|
ef34a63f7a | ||
|
|
45483809c5 | ||
|
|
9d89c1d692 | ||
|
|
cb4fde9a0b | ||
|
|
8f17a49a24 | ||
|
|
e18e923ac6 | ||
|
|
ed3b939477 | ||
|
|
977d21c929 | ||
|
|
89f0cdffc7 | ||
|
|
9685dca4de | ||
|
|
010218b5ce | ||
|
|
52252453d9 | ||
|
|
057108882f | ||
|
|
90b3cfcf9f | ||
|
|
4231d7b50a | ||
|
|
b85632cc99 | ||
|
|
1b81570338 | ||
|
|
0e03b951d4 | ||
|
|
6d05600eaf | ||
|
|
807422c377 | ||
|
|
768cef57c7 | ||
|
|
bcf1d32cdd | ||
|
|
def67eca3b | ||
|
|
388a8b6346 | ||
|
|
7ab937cf7b | ||
|
|
4bb460528f | ||
|
|
1ab636a4f1 | ||
|
|
a6e82475a3 | ||
|
|
9de8b16aeb | ||
|
|
0baf7744bc | ||
|
|
580c2b9e84 | ||
|
|
84673f26f3 | ||
|
|
ab1efb0749 | ||
|
|
4b0532b072 | ||
|
|
d458500113 | ||
|
|
d9fe2e0974 | ||
|
|
3fddb77564 | ||
|
|
3dd7a82dcc | ||
|
|
3dac6fd1c3 | ||
|
|
7fe01f0764 | ||
|
|
d7da96b387 | ||
|
|
3f95584dac | ||
|
|
de5578c8f7 | ||
|
|
1d410fdb7d | ||
|
|
54545d0bfc | ||
|
|
01131b2296 | ||
|
|
9b2239d4fa | ||
|
|
1b55201fbd | ||
|
|
be43c2156f | ||
|
|
c393db9c9f | ||
|
|
4a749ce00d | ||
|
|
13e6c5eefc | ||
|
|
343b904607 | ||
|
|
553a6e8ff6 | ||
|
|
9423b8da57 | ||
|
|
a7470345ff | ||
|
|
2aca12a49c | ||
|
|
810ee422a1 | ||
|
|
1c10ee106e | ||
|
|
e251c59da1 | ||
|
|
df35844bb2 | ||
|
|
d8006087a2 | ||
|
|
1fa91cbb6f | ||
|
|
3aacfdca20 | ||
|
|
b886422416 | ||
|
|
a29ea0374c | ||
|
|
e6a09e7cf7 | ||
|
|
83282ebcb8 | ||
|
|
d3169b10f8 | ||
|
|
197c22c7fe | ||
|
|
cfe923b8c4 | ||
|
|
742048f24e | ||
|
|
36111aa001 | ||
|
|
8a0f80181e | ||
|
|
fd4fec5340 | ||
|
|
808523b814 | ||
|
|
5640b2157f | ||
|
|
f3d79d906e | ||
|
|
5198f70ebf | ||
|
|
de12208d4a | ||
|
|
e20247d055 | ||
|
|
0862326a79 | ||
|
|
16531653ab | ||
|
|
2f3a2d495a | ||
|
|
baa9837702 | ||
|
|
cfa7d9820b | ||
|
|
3554d9fda2 | ||
|
|
cb2eebef40 | ||
|
|
f4d0cc4dd1 | ||
|
|
d31347c0e0 | ||
|
|
911a43337b | ||
|
|
f62f15cea7 | ||
|
|
dcd27a5f7a | ||
|
|
bf4c4561ce | ||
|
|
cc6c18b5ad | ||
|
|
6b536ced92 | ||
|
|
60ca0cbae3 | ||
|
|
b16abfba9c | ||
|
|
0a34143388 | ||
|
|
1e79f202f4 | ||
|
|
90f7b5259b | ||
|
|
2d143abda6 | ||
|
|
128671f5e9 | ||
|
|
6945eb548f | ||
|
|
ca3cd36887 | ||
|
|
31da08d186 | ||
|
|
1c90b09e2d | ||
|
|
18056139fd | ||
|
|
0898632ba4 | ||
|
|
f79a493083 | ||
|
|
2b159e24a7 | ||
|
|
d8032836bf | ||
|
|
b881f3c1c8 | ||
|
|
6f42bcfa4f | ||
|
|
ade6c46cca | ||
|
|
c6d0bf8d98 | ||
|
|
c41035058a | ||
|
|
e66f7a206e | ||
|
|
cec3d986a7 | ||
|
|
c6e65b4e24 | ||
|
|
ccb7e5270c | ||
|
|
ff29b6e84f | ||
|
|
6ed9e09451 | ||
|
|
75ce6d42d0 | ||
|
|
3bb0b93c79 | ||
|
|
87834b74ef | ||
|
|
6ef434f26d | ||
|
|
15b4152dce | ||
|
|
4aa19d700d | ||
|
|
3edf667958 | ||
|
|
c9b3b6c1b8 | ||
|
|
6e3bc5e65d | ||
|
|
886e35477e | ||
|
|
2f7fbea567 | ||
|
|
b7ecbd3b51 | ||
|
|
92b636ab75 | ||
|
|
28c57f75e8 | ||
|
|
cb1305c87f | ||
|
|
392bfcca2d | ||
|
|
2f95b8f6b2 | ||
|
|
96330b6f03 | ||
|
|
b509ae78b7 | ||
|
|
3a8a16bf48 | ||
|
|
8d2cab7b12 | ||
|
|
9034d6194a | ||
|
|
f8e400deb9 | ||
|
|
13290efac1 | ||
|
|
1df4da210f | ||
|
|
d0c426a7f9 | ||
|
|
17e5bb8d53 | ||
|
|
019cd51333 | ||
|
|
d62458b07b | ||
|
|
2e01153363 | ||
|
|
50ef826114 | ||
|
|
ddb28a9b90 | ||
|
|
0656ddd50a | ||
|
|
afdbf0adbf | ||
|
|
a5f5098beb | ||
|
|
e5c98e61c8 | ||
|
|
2793c8dd03 | ||
|
|
e4e226b2c7 | ||
|
|
46f98ded10 | ||
|
|
86b2391543 | ||
|
|
00ea4f8701 | ||
|
|
f7c9a12510 | ||
|
|
b6a7e049e6 | ||
|
|
45b3863353 | ||
|
|
c2764fda45 | ||
|
|
d358a9d9fd | ||
|
|
1a08ba0b57 | ||
|
|
974efc55ac | ||
|
|
dc46277d0c | ||
|
|
052048ad4c | ||
|
|
c361d8d16b | ||
|
|
045fd20d8c | ||
|
|
fdfd684e7a | ||
|
|
0a2592893d | ||
|
|
4c6c310e0a | ||
|
|
a5aa305773 | ||
|
|
196cf1cd18 | ||
|
|
0cf654aa88 | ||
|
|
2cf20f4b6c | ||
|
|
6b0ba94288 | ||
|
|
870ad008bf | ||
|
|
767aaa80a0 | ||
|
|
5eadaa08aa | ||
|
|
5cdc3e694f | ||
|
|
e96382fdd9 | ||
|
|
a486319cc2 | ||
|
|
1432866798 | ||
|
|
4a375b6563 | ||
|
|
743658032a | ||
|
|
e2f8f5095f | ||
|
|
a22ca5b57f | ||
|
|
b43c6c00bb | ||
|
|
c56e4557f9 | ||
|
|
6b640ea55e | ||
|
|
70f8a771a9 | ||
|
|
4b4aec5bbd | ||
|
|
00198d5e49 | ||
|
|
8a19d25396 | ||
|
|
8533f6edf1 | ||
|
|
bc9693d6f6 | ||
|
|
43a03d85a8 | ||
|
|
f0d63bed58 | ||
|
|
0a3978ab8c | ||
|
|
1c09b8baef | ||
|
|
547b610454 | ||
|
|
9d39bed852 | ||
|
|
70ff7cf74c | ||
|
|
8908fb07a0 | ||
|
|
f2c4ac061c | ||
|
|
b2871d8fc5 | ||
|
|
f4c6e5a6fa | ||
|
|
67d838b5fc | ||
|
|
f15a354c29 | ||
|
|
281e03055d | ||
|
|
216e9c0125 | ||
|
|
2c14f8b43b | ||
|
|
89a77feea7 | ||
|
|
5ca880c8fd | ||
|
|
17671493bf | ||
|
|
0d687eb348 | ||
|
|
1e01f94540 | ||
|
|
335ef67971 | ||
|
|
429d0c8df8 | ||
|
|
72b41f4322 | ||
|
|
fb5938280e | ||
|
|
2d72c58ae7 | ||
|
|
ad99e8edce | ||
|
|
d463f5a032 | ||
|
|
1415f74fe5 | ||
|
|
8de84f03a0 | ||
|
|
fe85ce5885 | ||
|
|
9dc7142e4a | ||
|
|
34a8d0b99b | ||
|
|
176e2726e9 | ||
|
|
2e4a1680b9 | ||
|
|
1eddae9da6 | ||
|
|
f217dbac51 | ||
|
|
eb74414b16 | ||
|
|
ee542f0fec | ||
|
|
0c0ec29821 | ||
|
|
955ce1dd2d | ||
|
|
f32f37cfbb | ||
|
|
8684788f1f | ||
|
|
9e033d1673 | ||
|
|
69c00d272b | ||
|
|
19617e9dae | ||
|
|
f8cc54d4f2 | ||
|
|
8764aa9829 | ||
|
|
fb68f6eb60 | ||
|
|
d09c42366a | ||
|
|
0298fa602a | ||
|
|
30cbcbb3c4 | ||
|
|
1127d323d3 | ||
|
|
01e812aebf | ||
|
|
e690bae7d1 | ||
|
|
58c2c84120 | ||
|
|
a96947c7e7 | ||
|
|
45b40d903c | ||
|
|
b19033aa4f | ||
|
|
adac0f3e51 | ||
|
|
3441482e8c | ||
|
|
781845905c | ||
|
|
b3c9b58350 | ||
|
|
337a2cf319 | ||
|
|
06fa04a448 | ||
|
|
93e86b141d | ||
|
|
fc56027929 | ||
|
|
d2287328ad | ||
|
|
b91834b813 | ||
|
|
8faf991bcb | ||
|
|
84ac30b8d2 | ||
|
|
0f17aebc52 | ||
|
|
2bff13d9e1 | ||
|
|
7683db70cd | ||
|
|
94ba2ad24a | ||
|
|
e42a22d1f2 | ||
|
|
11b6946e00 | ||
|
|
ba8a675eaa | ||
|
|
10f8941258 | ||
|
|
0816fdf318 | ||
|
|
bcf43640fa | ||
|
|
1de68051e3 | ||
|
|
0c9015bb77 | ||
|
|
a8c200f25a | ||
|
|
59fbb2acb1 | ||
|
|
3b53527e9e | ||
|
|
3c53c2c56c | ||
|
|
13a51b6bd3 | ||
|
|
c8d81518cc | ||
|
|
390d49d599 | ||
|
|
3604e6fa7d | ||
|
|
206532f195 | ||
|
|
c9f38fef45 | ||
|
|
b55c05095a | ||
|
|
8f073c5b6f | ||
|
|
f45ca180e9 | ||
|
|
1eb549b137 | ||
|
|
3a9bfc84cd | ||
|
|
c9a8a2af07 | ||
|
|
f5069aef6e | ||
|
|
eb1af1e27e | ||
|
|
d84ac0df9c | ||
|
|
04275cd702 | ||
|
|
746bc7d7bd | ||
|
|
15c5e9833a | ||
|
|
b589a1a13e | ||
|
|
5102770ad5 | ||
|
|
47f396cfce | ||
|
|
759d0a825b | ||
|
|
a8869c46b8 | ||
|
|
4b31f40026 | ||
|
|
4f8dee8fcf | ||
|
|
cf5ab0ddef | ||
|
|
91e9d7431a | ||
|
|
6e13440f1f | ||
|
|
3efeb4a0a6 | ||
|
|
764a372e9f | ||
|
|
340087076e | ||
|
|
ec5716c436 | ||
|
|
3f3a34f788 | ||
|
|
e7879384b1 | ||
|
|
853ee4bef1 | ||
|
|
9be90dd035 | ||
|
|
4c7acca85a | ||
|
|
d235bf9822 | ||
|
|
688d37fe76 | ||
|
|
6c5f606682 | ||
|
|
ce5092036a | ||
|
|
b745626a9f | ||
|
|
c9d73bf1a4 | ||
|
|
6e76b7a7dd | ||
|
|
fd41f0fe0d | ||
|
|
d2e81d14d9 | ||
|
|
7d674b44d3 | ||
|
|
7d3617c27f | ||
|
|
cf6fca8e76 | ||
|
|
1560a823c3 | ||
|
|
aba41d41ac | ||
|
|
245cffc4f7 | ||
|
|
3aada68eb9 | ||
|
|
d15611fd44 | ||
|
|
82d4b866c0 | ||
|
|
4645dd0011 | ||
|
|
bec81ddbfe | ||
|
|
6e4279e30f | ||
|
|
e1131dcf3d | ||
|
|
762de84f34 | ||
|
|
e480cdbf9b | ||
|
|
95cdc89795 | ||
|
|
e7f5491239 | ||
|
|
ba78637361 | ||
|
|
b3119749d9 | ||
|
|
cb56b98222 | ||
|
|
2256183422 | ||
|
|
0bfa8219ca | ||
|
|
4c21a68139 | ||
|
|
38cf74d83b | ||
|
|
1867e56739 | ||
|
|
826a69c531 | ||
|
|
7056be0870 | ||
|
|
708dba6cb1 | ||
|
|
164a34a340 | ||
|
|
3593a918b7 | ||
|
|
7d2ac2f55d | ||
|
|
cc4b343cf4 | ||
|
|
597931f79b | ||
|
|
299864a9cf | ||
|
|
014757a0f7 | ||
|
|
032b5b8776 | ||
|
|
44107f9821 | ||
|
|
b49e45827f | ||
|
|
3cd405e9ea | ||
|
|
b17a54a2d2 | ||
|
|
2d6d4d2db0 | ||
|
|
646b7a3118 | ||
|
|
e4c7842f34 | ||
|
|
7490cb81b8 | ||
|
|
9e105a362f | ||
|
|
9c8cbdd0e6 | ||
|
|
635a8a24f2 | ||
|
|
6354d4b911 | ||
|
|
452e8ed8c5 | ||
|
|
8a93e3c64c | ||
|
|
76fc9b78fe | ||
|
|
cf685b404d | ||
|
|
747d97ecfc | ||
|
|
be5fd86aa7 | ||
|
|
963f57868d | ||
|
|
97f0516630 | ||
|
|
c896b445bd | ||
|
|
f06c4f4049 | ||
|
|
937ce34c36 | ||
|
|
cddfd1b319 | ||
|
|
c42892ee35 | ||
|
|
bb3003dc3b | ||
|
|
2858dce664 | ||
|
|
1517ae3fc9 | ||
|
|
cf9c41f437 | ||
|
|
87497d2d09 | ||
|
|
67ab979a9b | ||
|
|
05f23f89ae | ||
|
|
cdc244ec06 | ||
|
|
71308316b1 | ||
|
|
2d1dfece25 | ||
|
|
65577a67dc | ||
|
|
45d5da98ca | ||
|
|
455e067e73 | ||
|
|
6359826fd9 | ||
|
|
8325083402 | ||
|
|
0f1a1d5f56 | ||
|
|
52d6f4343c | ||
|
|
405d55f3f6 | ||
|
|
06010b1366 | ||
|
|
21aa31f963 | ||
|
|
3f709cc39e | ||
|
|
f376e1ab01 | ||
|
|
fb3ba16a92 | ||
|
|
21285f02b8 | ||
|
|
05adf6f907 | ||
|
|
06fa171f7a | ||
|
|
4eae5be995 | ||
|
|
6d02617422 | ||
|
|
c2f07d14f3 | ||
|
|
52fe91f8bc | ||
|
|
98cb0f978e | ||
|
|
977a83cce8 | ||
|
|
4d92f9bf18 | ||
|
|
c459d60fc6 | ||
|
|
ad2e8a3c96 | ||
|
|
7dd9b3fa0c | ||
|
|
340a151302 | ||
|
|
9f70af009f | ||
|
|
bf1a65b8e8 | ||
|
|
037ab02a71 | ||
|
|
0039ec2958 | ||
|
|
08571d51fa | ||
|
|
6ac33b0568 | ||
|
|
373da78b7b | ||
|
|
c3d22335e2 | ||
|
|
4216eec494 | ||
|
|
e88e912c3c | ||
|
|
d06fb83fee | ||
|
|
e0b9a81c9b | ||
|
|
192e4b8877 | ||
|
|
02d44a6cca | ||
|
|
39ba1e0582 | ||
|
|
ae121895e9 | ||
|
|
11ecf20f89 | ||
|
|
3646a7d12d | ||
|
|
db5f45da83 | ||
|
|
52a4bfa25f | ||
|
|
099b62b645 | ||
|
|
e37332a5d2 | ||
|
|
f36cc56c81 | ||
|
|
b20750b936 | ||
|
|
407f58da54 | ||
|
|
fe5bb1d885 | ||
|
|
92f45567d7 | ||
|
|
a4c0e0a59c | ||
|
|
d536377329 | ||
|
|
923f4ed045 | ||
|
|
9191cae144 | ||
|
|
e8c142353c | ||
|
|
ba1e22955e | ||
|
|
c41847c0d7 | ||
|
|
e1d7c25c98 | ||
|
|
3d8e845233 | ||
|
|
0fa126a6b8 | ||
|
|
1961816ba7 | ||
|
|
4410b679a0 | ||
|
|
e6214b3c97 | ||
|
|
7e7637a1b3 | ||
|
|
86b201623d | ||
|
|
785843198a | ||
|
|
bc0f5a9136 | ||
|
|
461e650e05 | ||
|
|
c2132e3772 | ||
|
|
174c7a776e | ||
|
|
730864609f | ||
|
|
784137fdac | ||
|
|
c6aff8424c | ||
|
|
a7a34ac6b2 | ||
|
|
57492023f9 | ||
|
|
aff1e160b4 | ||
|
|
b8d12bd0cd | ||
|
|
5ab33e831d | ||
|
|
dc3b01dc15 | ||
|
|
e96bd5a0e7 | ||
|
|
57c33fe693 | ||
|
|
fc2d7b41d8 | ||
|
|
fd139d4903 | ||
|
|
813d33fc4d | ||
|
|
26addf809e | ||
|
|
a9e090c454 | ||
|
|
59355cf79f | ||
|
|
c200c53268 | ||
|
|
a572ff9fca | ||
|
|
1ab4f99a37 | ||
|
|
99006465e6 | ||
|
|
4a7e9c16d0 | ||
|
|
d416a77866 | ||
|
|
07fe141f8a | ||
|
|
c2de80f532 | ||
|
|
e742bdfacf | ||
|
|
24950a098f | ||
|
|
bed65745cc | ||
|
|
04a4833c6e | ||
|
|
4aa0a733fc | ||
|
|
082191412e | ||
|
|
e3a7d0807e | ||
|
|
0ee3d1160a | ||
|
|
b600bce23f | ||
|
|
952b5fab89 | ||
|
|
6c705e1e25 | ||
|
|
349e8b2da7 | ||
|
|
39ce74c1e0 | ||
|
|
77cf392300 | ||
|
|
b6225ccc38 | ||
|
|
a38eaad281 | ||
|
|
1b6d8a2b8d | ||
|
|
cbc1c935bf | ||
|
|
391bf4113a | ||
|
|
718bff7469 | ||
|
|
e67f60182d | ||
|
|
6bb0d736be | ||
|
|
5bc74fc296 | ||
|
|
fea237a3ea | ||
|
|
6f3cdeda70 | ||
|
|
8476baacc7 | ||
|
|
681f57f703 | ||
|
|
03051a95cf | ||
|
|
80f31f75ad | ||
|
|
e0da4c81da | ||
|
|
57a5b90be7 | ||
|
|
98928dba9d | ||
|
|
c83577cb81 | ||
|
|
39edf1a8ed | ||
|
|
8d10c9aa41 | ||
|
|
0bcb76fa81 | ||
|
|
aceb9e4de7 | ||
|
|
a249ced37c | ||
|
|
375078a9a4 | ||
|
|
273a7d82a2 | ||
|
|
26f5e52ad8 | ||
|
|
2a32f8f681 | ||
|
|
7dad0aa1da | ||
|
|
c742b73133 | ||
|
|
fece31a9aa | ||
|
|
b22a4501cc | ||
|
|
c596039453 | ||
|
|
7eea6ebe57 | ||
|
|
b6a42ecf48 | ||
|
|
95f3d4fffa | ||
|
|
95becde93d | ||
|
|
0538d082dc | ||
|
|
c3b6b8d821 | ||
|
|
c41fbbb93e | ||
|
|
0728d96339 | ||
|
|
abc335143b | ||
|
|
dc9908eac1 | ||
|
|
6274b617f4 | ||
|
|
c5d45c6b44 | ||
|
|
ef1a195036 | ||
|
|
5ac0837be3 | ||
|
|
fbc6f78cb5 | ||
|
|
d6f9fddc94 | ||
|
|
199011feb8 | ||
|
|
98f1d5cd9b | ||
|
|
b9c83ca06d | ||
|
|
f0b7a00ae6 | ||
|
|
a8a9a93317 | ||
|
|
32e9a7fa06 | ||
|
|
88a47e7788 | ||
|
|
4b4a414259 | ||
|
|
68281dce66 | ||
|
|
221cc8ab10 | ||
|
|
c6e47a868b | ||
|
|
0c5c261196 | ||
|
|
c7372aabfd | ||
|
|
7d1dbbb27a | ||
|
|
c00583dd98 | ||
|
|
49ca3bfd00 | ||
|
|
3adc3ed5d2 | ||
|
|
bdca59b3d7 | ||
|
|
d5ab4093a9 | ||
|
|
e6df19efbc | ||
|
|
b7948c5344 | ||
|
|
a13557d71d | ||
|
|
e2338fcedf | ||
|
|
43bfeff2be | ||
|
|
1a489652ff | ||
|
|
1ac92c561b | ||
|
|
cb952b0d3a | ||
|
|
5919dd998b | ||
|
|
320f78b31b | ||
|
|
533bc4c2fe | ||
|
|
eb8aa195c2 | ||
|
|
4197580b04 | ||
|
|
0e92f7bfff | ||
|
|
927277a6cd | ||
|
|
d5696010d9 | ||
|
|
9db37c2799 | ||
|
|
7e7b41cd8c | ||
|
|
fc3a369d3d | ||
|
|
5df766466a | ||
|
|
6814130570 | ||
|
|
cb6160f1e4 | ||
|
|
b00214bdbd | ||
|
|
4643810b75 | ||
|
|
45246bccd7 | ||
|
|
78b44a1319 | ||
|
|
0e6cd0f72a | ||
|
|
0aeba7c5af | ||
|
|
525c00ea18 | ||
|
|
c056bd4d4c | ||
|
|
93682fb42b | ||
|
|
aa9ec603a9 | ||
|
|
6f83bf3af2 | ||
|
|
d5245f0730 | ||
|
|
1b4cc556be | ||
|
|
2efcbd060a | ||
|
|
68ee35d03b | ||
|
|
1b6a43ae15 | ||
|
|
8de26af246 | ||
|
|
c3fd732243 | ||
|
|
3ce0b8bc97 | ||
|
|
2846eea956 | ||
|
|
ca3bedc9a1 | ||
|
|
2d4d7b80c1 | ||
|
|
df85543337 | ||
|
|
e15baeb4a2 | ||
|
|
f16804c0f8 | ||
|
|
934a41e414 | ||
|
|
8621fe2e3c | ||
|
|
bbf2c29a4a | ||
|
|
0a148166e1 | ||
|
|
79b4716b95 | ||
|
|
57437f04c9 | ||
|
|
8bbcd267cd | ||
|
|
e885cb6c45 | ||
|
|
8182141e93 | ||
|
|
d7d2efd58e | ||
|
|
02033a675a | ||
|
|
ca0f7bb74c | ||
|
|
d676ecfaa8 | ||
|
|
a0f556b2a9 | ||
|
|
6071319acd | ||
|
|
e9ddfa6cf9 | ||
|
|
8ee94d75ca | ||
|
|
ec40956721 | ||
|
|
8504d01688 | ||
|
|
c8a932b6b3 | ||
|
|
b1ed51e72c | ||
|
|
b386af4121 | ||
|
|
0daa3a8f57 | ||
|
|
ae42c4df16 | ||
|
|
252ff9d3c5 | ||
|
|
38c9ad6986 | ||
|
|
ad84b222a5 | ||
|
|
c3e4a08b00 | ||
|
|
f589bdc78d | ||
|
|
1a8efdbf2c | ||
|
|
b78e0144de | ||
|
|
3c27b50ff6 | ||
|
|
e8e5c8dff1 | ||
|
|
f66dd51084 | ||
|
|
54096d56d3 | ||
|
|
832119f6b1 | ||
|
|
5abd4dcc66 | ||
|
|
a4936a6ff3 | ||
|
|
ebe4804b00 | ||
|
|
098db9adf6 | ||
|
|
38b3c82ece | ||
|
|
99a7453f28 | ||
|
|
8ade52c8d9 | ||
|
|
a3ca1febbc | ||
|
|
767430d065 | ||
|
|
f9e27ef67c | ||
|
|
4d25d505e0 | ||
|
|
74fb470647 | ||
|
|
6404aac986 | ||
|
|
4fcb8d5540 | ||
|
|
4251ad7d45 | ||
|
|
d87317f937 | ||
|
|
b202b75bf7 | ||
|
|
5761ede9e1 | ||
|
|
cf15cb1e13 | ||
|
|
e5c6136950 | ||
|
|
37f90e6f1c | ||
|
|
6416fe1934 | ||
|
|
3b50428f82 | ||
|
|
d4b22ee472 | ||
|
|
35c8197881 | ||
|
|
a860acaf0d | ||
|
|
dccd240b66 | ||
|
|
35522ae77d | ||
|
|
e40c1ff09e | ||
|
|
d71ddd7ad0 | ||
|
|
ba8300508d | ||
|
|
734505ee73 | ||
|
|
dd65c173a9 | ||
|
|
ebae675961 | ||
|
|
539eadf533 | ||
|
|
3beebd42a8 | ||
|
|
66e00bb79a | ||
|
|
83985aa44c | ||
|
|
bb9684f7d3 | ||
|
|
ddfe79b3ac | ||
|
|
c852ad1d45 | ||
|
|
29f535da94 | ||
|
|
d5b6744a41 | ||
|
|
cbc3cfc33b | ||
|
|
547bd46bb3 | ||
|
|
8b8a303365 | ||
|
|
7b386c4f41 | ||
|
|
5b8fa5ec8d | ||
|
|
2c81ff90da | ||
|
|
66e118abdf | ||
|
|
38791e50ea | ||
|
|
a8c6a97579 | ||
|
|
5bb90828f8 | ||
|
|
e3e5085214 | ||
|
|
9be12da34e | ||
|
|
8e7b40efec | ||
|
|
d7d71d9ff1 | ||
|
|
2d68e3d4f3 | ||
|
|
53236faaa0 | ||
|
|
daca1b3615 | ||
|
|
9a8032a673 | ||
|
|
b11972d1b7 | ||
|
|
041ea2fbb1 | ||
|
|
5167611da5 | ||
|
|
4526378b33 | ||
|
|
bc2a9cf1c0 | ||
|
|
c4a5eeabcc | ||
|
|
00836cd38b | ||
|
|
c0009c7e62 | ||
|
|
6023f415a4 | ||
|
|
f55daf65e3 | ||
|
|
fe3c23d29c | ||
|
|
f0765ba743 | ||
|
|
672c623757 | ||
|
|
e33799701b | ||
|
|
e5e64a4b6d | ||
|
|
63f1c1f7b5 | ||
|
|
005de550c1 | ||
|
|
20fd3bdc20 | ||
|
|
e29f53a82d | ||
|
|
f272470871 | ||
|
|
9c082a573c | ||
|
|
7de0a0a44a | ||
|
|
e848c78dba | ||
|
|
3f60723425 | ||
|
|
8b97914438 | ||
|
|
a8967bab39 | ||
|
|
1248307b96 | ||
|
|
de1491a310 | ||
|
|
b5a08c3ba4 | ||
|
|
49bf86a8d5 | ||
|
|
5e4cfbaf3f | ||
|
|
11aed2ab61 | ||
|
|
e6f19a4abf | ||
|
|
b3b6dc2e94 | ||
|
|
ece09a93cd | ||
|
|
9a56ebea81 | ||
|
|
287e15fddc | ||
|
|
724cb0787d | ||
|
|
d8b806966a | ||
|
|
f24a6f0e3c | ||
|
|
34c516709b | ||
|
|
6d03eac9a1 | ||
|
|
c456ef9118 | ||
|
|
4351080aea | ||
|
|
8aee2858ea | ||
|
|
da5a930e89 | ||
|
|
5131cc8e43 | ||
|
|
60f06f97fa | ||
|
|
c0216e0800 | ||
|
|
2be68342bb | ||
|
|
c43a29f058 | ||
|
|
ab14b9c8bb | ||
|
|
fa3e496aae | ||
|
|
543cd5af80 | ||
|
|
e3cdfe27d1 | ||
|
|
d946e18fa2 | ||
|
|
b33b696336 | ||
|
|
e928b4c9e0 | ||
|
|
2b27e84956 | ||
|
|
9627272b57 | ||
|
|
705354a3d6 | ||
|
|
7d52b0cc96 | ||
|
|
8662e963ac | ||
|
|
08594f0b96 | ||
|
|
7db73cbd44 | ||
|
|
cae8485092 | ||
|
|
64e020b1ad | ||
|
|
2dd2208f48 | ||
|
|
ddc28c43c8 | ||
|
|
7c889e3523 | ||
|
|
af7beb2c34 | ||
|
|
7b50febba3 | ||
|
|
00543bca17 | ||
|
|
178710dabc | ||
|
|
99d9d14d3b | ||
|
|
a07d6aa1e7 | ||
|
|
59a4abff7c | ||
|
|
df0f310ddd | ||
|
|
57a06aa122 | ||
|
|
f110dce520 | ||
|
|
3085799c3c | ||
|
|
3d9b9af55e | ||
|
|
ad21909b5c | ||
|
|
d98d00556d | ||
|
|
5c7a4323e3 | ||
|
|
183701a00a | ||
|
|
549987296c | ||
|
|
9918e49bb1 | ||
|
|
d57ef1e928 | ||
|
|
203af0fc76 | ||
|
|
a446c0a9c9 | ||
|
|
b2aba7918d | ||
|
|
fc2c877a57 | ||
|
|
f2a93887c9 | ||
|
|
b1eb48d201 | ||
|
|
d372d786ef | ||
|
|
dc8df9c62f | ||
|
|
5b3ea08b39 | ||
|
|
72a754676a | ||
|
|
cb1da686ec | ||
|
|
8a78e4e9f4 | ||
|
|
b9b59ac2e0 | ||
|
|
549b982c5f | ||
|
|
558f527f20 | ||
|
|
d897d64aa5 | ||
|
|
59463958d3 | ||
|
|
d4a606884c | ||
|
|
ff3a2f6b67 | ||
|
|
288ac62448 | ||
|
|
f5d3df65b0 | ||
|
|
fc6ac662cd | ||
|
|
cd0d9052e8 | ||
|
|
86da8cbd17 | ||
|
|
7a38143f5e | ||
|
|
818802cf5e | ||
|
|
a668ed5e24 | ||
|
|
c9edc217fd | ||
|
|
89dc9e7e7f | ||
|
|
96b6832dff | ||
|
|
881e414043 | ||
|
|
b5a8312167 | ||
|
|
ac3a282876 | ||
|
|
a3117fa61d | ||
|
|
bfa0db3ba3 | ||
|
|
79fdba969b | ||
|
|
79461d52c2 | ||
|
|
8c7bac7dbb | ||
|
|
bb3b982dea | ||
|
|
f3038e4fef | ||
|
|
cfeb637685 | ||
|
|
f37fd5c5e3 | ||
|
|
4368602684 | ||
|
|
a67ced29a3 | ||
|
|
ca8293ebdb | ||
|
|
4a95dd8ba3 | ||
|
|
1616aa87bd | ||
|
|
9d9400f4d9 | ||
|
|
a6f8eb28f2 | ||
|
|
251834143c | ||
|
|
ad8b6c806d | ||
|
|
26a6264039 | ||
|
|
2dfcee6b25 | ||
|
|
b283977281 | ||
|
|
2538a79ef0 | ||
|
|
267f2afab6 | ||
|
|
559eebbb70 | ||
|
|
326ee9a9c2 | ||
|
|
dc4c33c0d5 | ||
|
|
3fbebfc283 | ||
|
|
7273e1218a | ||
|
|
69e96f24c2 | ||
|
|
92ddf2ca41 | ||
|
|
3662afeaa7 | ||
|
|
860210628e | ||
|
|
a1988f91c1 | ||
|
|
6f6393493b | ||
|
|
878213887f | ||
|
|
805b83da9c | ||
|
|
fe4319ad07 | ||
|
|
1bda9d5a26 | ||
|
|
9ce239dedb | ||
|
|
bc86c9b57d | ||
|
|
d9b9e02412 | ||
|
|
2f7b5dd041 | ||
|
|
5ffb7bba83 | ||
|
|
436bffcb0e | ||
|
|
99ce747720 | ||
|
|
f3fbbed7ee | ||
|
|
b7c024d275 | ||
|
|
cf76c943b8 | ||
|
|
2a0e641de7 | ||
|
|
630456f700 | ||
|
|
618ba376b2 | ||
|
|
c8a445275b | ||
|
|
68b3c449a6 | ||
|
|
aee7d171c5 | ||
|
|
2089406eaf | ||
|
|
298e041b80 | ||
|
|
c79bf1ca3a | ||
|
|
207546b53c | ||
|
|
a54898b062 | ||
|
|
124803c89d | ||
|
|
825128b630 | ||
|
|
dcd20f42b9 | ||
|
|
b6f14a752c | ||
|
|
40f58d7054 | ||
|
|
485afcfa6e | ||
|
|
e82bc859f5 | ||
|
|
5615e02cdb | ||
|
|
4c5a046bc0 | ||
|
|
6b6ab5e752 | ||
|
|
6d3f3985a2 | ||
|
|
64e57c5419 | ||
|
|
7e11c319e7 | ||
|
|
12265def19 | ||
|
|
45f60ae646 | ||
|
|
72988cc6fb | ||
|
|
4d3df4cda6 | ||
|
|
a0b7768a86 | ||
|
|
7aae1b262e | ||
|
|
5ace62a5fd | ||
|
|
48e01d3ea3 | ||
|
|
d93c705737 | ||
|
|
b1a97eca39 | ||
|
|
d91088879c | ||
|
|
21e5f33487 | ||
|
|
48f7c37d3b | ||
|
|
815d911143 | ||
|
|
d90baed5b5 | ||
|
|
e767cee4c0 | ||
|
|
eafce4442c | ||
|
|
3652394dab | ||
|
|
a942882c73 | ||
|
|
b8f829dbc3 | ||
|
|
8d33644749 | ||
|
|
268df23739 | ||
|
|
6c731f50a9 | ||
|
|
dc2f3cd166 | ||
|
|
877ad53ead | ||
|
|
bc7dce6026 | ||
|
|
c24e216f26 | ||
|
|
2d05ecc81f | ||
|
|
437c1a154c | ||
|
|
82d30c6e74 | ||
|
|
998eecb94d | ||
|
|
02e22e5781 | ||
|
|
ad11ca0a87 | ||
|
|
7b0a643de3 | ||
|
|
fa53bce27a | ||
|
|
1d3f1fd7d0 | ||
|
|
5d9a94466a | ||
|
|
b5175ae8b0 | ||
|
|
38948053cc | ||
|
|
4a5a496802 | ||
|
|
30b6c8aa03 | ||
|
|
95e468c90a | ||
|
|
d74dd48d24 | ||
|
|
5ef72b81ae | ||
|
|
691cf1ce72 | ||
|
|
5b70064fa4 | ||
|
|
80e01a4d3d | ||
|
|
b30f3d6b8f | ||
|
|
4672628ee2 | ||
|
|
a112c6d9ee | ||
|
|
2b1e343186 | ||
|
|
36ce0c8271 | ||
|
|
b521318e82 | ||
|
|
9f64a384d6 | ||
|
|
4ecff94aec | ||
|
|
c7e73924c8 | ||
|
|
87958d9db8 | ||
|
|
56fa719931 | ||
|
|
6ee6cd3977 | ||
|
|
7821f41723 | ||
|
|
ddf6154600 | ||
|
|
929cc2727d | ||
|
|
4379145231 | ||
|
|
42d86fab8e | ||
|
|
cb41a4c386 | ||
|
|
672abbcaad | ||
|
|
17bc9c35a7 | ||
|
|
50587735b5 | ||
|
|
21edfdb62e | ||
|
|
bda67afd4f | ||
|
|
c4ca06d5e5 | ||
|
|
f4904e06c8 | ||
|
|
1273a6fb74 | ||
|
|
3c626fd01e | ||
|
|
00953850b3 | ||
|
|
563370f10b | ||
|
|
62a33fe7fc | ||
|
|
ea18fda0a3 | ||
|
|
1ef163f827 | ||
|
|
3f6cb3cd73 | ||
|
|
284767409a | ||
|
|
5e3d29df4c | ||
|
|
c380049b21 | ||
|
|
b49209a0d9 | ||
|
|
9d39b616f9 | ||
|
|
32e0074f26 | ||
|
|
8d746cd206 | ||
|
|
bc341d193f | ||
|
|
3ad2b2bfcc | ||
|
|
acfad7ec5b | ||
|
|
5be6511529 | ||
|
|
f20b4d570e | ||
|
|
06a9478555 | ||
|
|
6e3ca5391a | ||
|
|
2422a4200c | ||
|
|
56788c8b8f | ||
|
|
220ac2fa2d | ||
|
|
3143d0d8aa | ||
|
|
0bb1669efa | ||
|
|
288be8dd71 | ||
|
|
d3bf71a22d | ||
|
|
12abca39a2 | ||
|
|
898c8854aa | ||
|
|
492e33aeda | ||
|
|
ce9c832e00 | ||
|
|
5e0821417e | ||
|
|
ce451e4dd4 | ||
|
|
714d8c7092 | ||
|
|
6162904c59 | ||
|
|
4d65b4c7a5 | ||
|
|
4243843951 | ||
|
|
203965043e | ||
|
|
bf87500e35 | ||
|
|
a038587224 | ||
|
|
96d908094b | ||
|
|
61dc148d34 | ||
|
|
f753369d1a | ||
|
|
72c2fa3863 | ||
|
|
ba0bda6aa6 | ||
|
|
890397bae7 | ||
|
|
d9b2863382 | ||
|
|
ccc8d7e5cd | ||
|
|
50f6044a2f | ||
|
|
31281c7faa | ||
|
|
e9b545a187 | ||
|
|
be1ecdb0c8 | ||
|
|
115e08d0c8 | ||
|
|
e2a892eda3 | ||
|
|
5d536dd975 | ||
|
|
af258dcf41 | ||
|
|
bbb46a29a9 | ||
|
|
3f7c1b0750 | ||
|
|
2b211c2ba0 | ||
|
|
c20314f83c | ||
|
|
57bc1f2032 | ||
|
|
d370f7e721 | ||
|
|
00c8ebbfe8 | ||
|
|
17951d7fe0 | ||
|
|
3e5288836d | ||
|
|
6c94c3aa7b | ||
|
|
6a24794457 | ||
|
|
443e7df1b6 | ||
|
|
82106c1c8b | ||
|
|
32867d3666 | ||
|
|
384b4226f2 | ||
|
|
cecd4aa36a | ||
|
|
0dffd66651 | ||
|
|
c34afae250 | ||
|
|
128453fad1 | ||
|
|
ac3b86fb85 | ||
|
|
e303982ad8 | ||
|
|
df763c4dbd | ||
|
|
85fd46e1c6 | ||
|
|
51b37a49d5 | ||
|
|
4838813a38 | ||
|
|
9867bd257f | ||
|
|
259985d328 | ||
|
|
2c4a9897ea | ||
|
|
2dbc404544 | ||
|
|
3d622a2c5a | ||
|
|
8b342c2ddb | ||
|
|
ca1f441f5a | ||
|
|
0fefead7d5 | ||
|
|
cb9bc6ad12 | ||
|
|
b6d01133c4 | ||
|
|
9ddaee9830 | ||
|
|
a5b54c50d1 | ||
|
|
5c84ffe5dc | ||
|
|
f178c8cce2 | ||
|
|
36bcafea98 | ||
|
|
95cd051a4f | ||
|
|
125c5523e6 | ||
|
|
374ed12811 | ||
|
|
b489e54da4 | ||
|
|
e928c78749 | ||
|
|
34dbed7733 | ||
|
|
6df3066b49 | ||
|
|
10c4b93b60 | ||
|
|
3fabd2975e | ||
|
|
217a7a34f8 | ||
|
|
5855ff0d27 | ||
|
|
3c4a9a05a0 | ||
|
|
9481d04a19 | ||
|
|
90c7bf4413 | ||
|
|
0b09f788c5 | ||
|
|
3045611452 | ||
|
|
0b3d028c2f | ||
|
|
a64be42f39 | ||
|
|
8405301500 | ||
|
|
07ed6a6416 | ||
|
|
970c9e70e4 | ||
|
|
f76f29f533 | ||
|
|
c3ecf2d84e | ||
|
|
a7dfb9cb97 | ||
|
|
225d46b228 | ||
|
|
f399ef8f69 | ||
|
|
c61db8c957 | ||
|
|
30afc095b9 | ||
|
|
755e7bc232 | ||
|
|
80e38fc430 | ||
|
|
581423a87c | ||
|
|
3634ca624d | ||
|
|
be33ac3c4f | ||
|
|
1cf79d8fbc | ||
|
|
acba67f67d | ||
|
|
1573738584 | ||
|
|
5376171538 | ||
|
|
90c41aceab | ||
|
|
6e10dc2893 | ||
|
|
87ce03e13e | ||
|
|
4db7577448 | ||
|
|
afdee44dd1 | ||
|
|
d929205bec | ||
|
|
0758d4f567 | ||
|
|
db0f228f4d | ||
|
|
a30f60c2ba | ||
|
|
1d13943caf | ||
|
|
e91e4042ba | ||
|
|
18720904f9 | ||
|
|
8d2aa1fc09 | ||
|
|
0e5155c85a | ||
|
|
3144a54c5b | ||
|
|
49362ce5ab | ||
|
|
13e629e17d | ||
|
|
8eb2f66b14 | ||
|
|
4fb0279f9a | ||
|
|
5d1006f05b | ||
|
|
eee76222bd | ||
|
|
4121bbc772 | ||
|
|
7926dd9aeb | ||
|
|
20ffcfb91e | ||
|
|
961bfcc481 | ||
|
|
eee50eef46 | ||
|
|
1329f3d2c7 | ||
|
|
0e812b911e | ||
|
|
28bd5f33c6 | ||
|
|
673b72f327 | ||
|
|
3fea8eb820 | ||
|
|
6e2e067d66 | ||
|
|
e09fe4acf0 | ||
|
|
0385662197 | ||
|
|
4ba222f19c | ||
|
|
6820a05efc | ||
|
|
0982e12a80 | ||
|
|
0536a2be33 | ||
|
|
24c5aae77f | ||
|
|
a972a52be4 | ||
|
|
f473c29430 | ||
|
|
7cd9768880 | ||
|
|
0a45a6fea9 | ||
|
|
9805ab8761 | ||
|
|
b4bb98b230 | ||
|
|
e11e141b5e | ||
|
|
83e199a0de | ||
|
|
4e87211d39 | ||
|
|
88208285a4 | ||
|
|
ae062586d7 | ||
|
|
fa72389c07 | ||
|
|
ea94cb8650 | ||
|
|
39d6ccd11c | ||
|
|
a62b225fe0 | ||
|
|
a72d1a13b6 | ||
|
|
60df499584 | ||
|
|
10204a4526 | ||
|
|
a5d63bc383 | ||
|
|
fcd276dccb | ||
|
|
fc66fba577 | ||
|
|
f1697313c0 | ||
|
|
6d8244ba5c | ||
|
|
102d5fdd7f | ||
|
|
2a86b06e0c | ||
|
|
7b4d6ba57e | ||
|
|
7be02731ee | ||
|
|
3cfa4f9cb7 | ||
|
|
10302f4bc9 | ||
|
|
b576ee300b | ||
|
|
77afcc2293 | ||
|
|
574e711f33 | ||
|
|
4cab77a57d | ||
|
|
6cbc9493c9 | ||
|
|
1d5f72f9ab | ||
|
|
b8e034e33c | ||
|
|
4f8c6e64fb | ||
|
|
39aadaa220 | ||
|
|
5c373f0d25 | ||
|
|
088c3984d8 | ||
|
|
3a61a7992a | ||
|
|
d694791d0f | ||
|
|
5e9ea4196c | ||
|
|
e7f000147b | ||
|
|
15e27e7e1d | ||
|
|
855d75f1bb | ||
|
|
e8f3a30a72 | ||
|
|
948e44d867 | ||
|
|
c0e671d506 | ||
|
|
2d895b52a4 | ||
|
|
4436a72b9f | ||
|
|
f1ce98eb07 | ||
|
|
418aa44960 | ||
|
|
b91850262d | ||
|
|
ed2dc101bb | ||
|
|
d89968cfa5 | ||
|
|
5f7c1ea4f4 | ||
|
|
e307524458 | ||
|
|
53cb4189d8 | ||
|
|
3efe3d63ce | ||
|
|
e44a05f18d | ||
|
|
d9574591fd | ||
|
|
55c27516b2 | ||
|
|
659ff866e1 | ||
|
|
f01de3a69d | ||
|
|
0c75cf6055 | ||
|
|
95613a1881 | ||
|
|
7bcbe5d791 | ||
|
|
bcc2ca7ce9 | ||
|
|
365ca9180f | ||
|
|
cfe1e7745f | ||
|
|
d0d9de8583 | ||
|
|
a304d75645 | ||
|
|
9f4f27d08f | ||
|
|
73530f59de | ||
|
|
6807dcbd5d | ||
|
|
e275ce6063 | ||
|
|
6352408d87 | ||
|
|
6870e03ffe | ||
|
|
d4641b45ac | ||
|
|
fad796f834 | ||
|
|
9e874b241a | ||
|
|
3f83361a7a | ||
|
|
a75b7b9be6 | ||
|
|
e4898bbbb3 | ||
|
|
132d5ec8cc | ||
|
|
59741ed04a | ||
|
|
fad6a406a1 | ||
|
|
4ee0731472 | ||
|
|
4fe530d257 | ||
|
|
d23eb291f7 | ||
|
|
3bbe54bb71 | ||
|
|
7aca726c33 | ||
|
|
3f1064b22d | ||
|
|
6fdbc9cdfa | ||
|
|
12b03518ee | ||
|
|
fcd3a86589 | ||
|
|
2ee671a1ae | ||
|
|
47a0642c4d | ||
|
|
db1cd3efbc | ||
|
|
f6803a2c52 | ||
|
|
f8d810a787 | ||
|
|
c8d865e26b | ||
|
|
e1c7705182 | ||
|
|
6aed2ec311 | ||
|
|
4c3f51cae3 | ||
|
|
f3088d1c49 | ||
|
|
be25226172 | ||
|
|
33d7e40e7c | ||
|
|
9eefd8839c | ||
|
|
d748e34d7e | ||
|
|
cefa8326e3 | ||
|
|
60f4937aae | ||
|
|
841e90dc46 | ||
|
|
81467a86cc | ||
|
|
498634fd13 | ||
|
|
d751805254 | ||
|
|
7c2e2a01c2 | ||
|
|
0b70c5225d | ||
|
|
b07d1b027c | ||
|
|
58801f8fb6 | ||
|
|
c589978e84 | ||
|
|
36f3c293f0 | ||
|
|
54417115f3 | ||
|
|
4006e4045c | ||
|
|
bdf57b5203 | ||
|
|
1d27ffbffb | ||
|
|
c36b5c77fc | ||
|
|
ac5cd90cc6 | ||
|
|
e0eb8c83e2 | ||
|
|
b8f513fffe | ||
|
|
7d4dd9c699 | ||
|
|
a254b996e0 | ||
|
|
6b9f96697b | ||
|
|
dc5eeb8476 | ||
|
|
7d40105023 | ||
|
|
3d73dc2fb7 | ||
|
|
94f217f4d7 | ||
|
|
00319c1fe2 | ||
|
|
67ac5a9c6a | ||
|
|
79b3b0fffc | ||
|
|
ab6a29191d | ||
|
|
636350c395 | ||
|
|
c076717133 | ||
|
|
943a438a6c | ||
|
|
a104693f97 | ||
|
|
8283c89614 | ||
|
|
c9790d7bb8 | ||
|
|
80ec16b9bd | ||
|
|
479945455b | ||
|
|
4512854c2a | ||
|
|
70950b8267 | ||
|
|
eec96b8549 | ||
|
|
30961babde | ||
|
|
a00c530f36 | ||
|
|
0af1e06c57 | ||
|
|
c0d52ef905 | ||
|
|
59d9840d7b | ||
|
|
9a2ffc1d7c | ||
|
|
c8fcfcd28c | ||
|
|
ac81d38acc | ||
|
|
9bc4b74888 | ||
|
|
2ec71c9942 | ||
|
|
343da4878d | ||
|
|
45f32ba62c | ||
|
|
f157e6a9f5 | ||
|
|
33485024af | ||
|
|
90efb967fe | ||
|
|
5fa62151f6 | ||
|
|
3a55985b20 | ||
|
|
4a0411b7fc | ||
|
|
7094675d5e | ||
|
|
cf7ae90097 | ||
|
|
53b19dad87 | ||
|
|
b10caecbba | ||
|
|
60d64ad2a6 | ||
|
|
fd71200284 | ||
|
|
de13ad1cd5 | ||
|
|
97bd617566 | ||
|
|
2583b38a17 | ||
|
|
e1f71cae37 | ||
|
|
d78ecdc203 | ||
|
|
0dd540a048 | ||
|
|
d8536c20b0 | ||
|
|
1a5bc2ddfe | ||
|
|
61c1232690 | ||
|
|
2554165963 | ||
|
|
fc4778159c | ||
|
|
d2105a7169 | ||
|
|
19ec14e4c2 | ||
|
|
3dbef1400c | ||
|
|
4ca0453cff | ||
|
|
fc07979966 | ||
|
|
7dda2df54b | ||
|
|
0d95636b0f | ||
|
|
9ad424c537 | ||
|
|
8c57dde0a6 | ||
|
|
31bbf3cfd5 | ||
|
|
9d404b6679 | ||
|
|
dc274aed48 | ||
|
|
51eda2ef74 | ||
|
|
f30f6378ac | ||
|
|
3b09276395 | ||
|
|
dbdd6c701b | ||
|
|
eb094eaebb | ||
|
|
9177f4b47d | ||
|
|
d4446b2605 | ||
|
|
356db288ad | ||
|
|
8a6690b6df | ||
|
|
1281059076 | ||
|
|
4622c86ae1 | ||
|
|
5c6b741dc4 | ||
|
|
25cedff47a | ||
|
|
5971802eb9 | ||
|
|
b40ff9ef66 | ||
|
|
3b2e54a156 | ||
|
|
b3f3cd2ffd | ||
|
|
288b46947d | ||
|
|
98add4b958 | ||
|
|
99b1c5a456 | ||
|
|
305fc52e73 | ||
|
|
425b209414 | ||
|
|
58b016a9c0 | ||
|
|
6c17107f39 | ||
|
|
8b153121ac | ||
|
|
4fc1169fa3 | ||
|
|
27dde4e70d | ||
|
|
10cbe25f17 | ||
|
|
14edd948ac | ||
|
|
386b54cf6a | ||
|
|
c068366ae2 | ||
|
|
bc85b3599e | ||
|
|
4d299f5b17 | ||
|
|
224c3eb99c | ||
|
|
4e537ac4d8 | ||
|
|
fe124310de | ||
|
|
19f25e45bb | ||
|
|
1fa4be9ebb | ||
|
|
f4e74065ec | ||
|
|
f07cd08789 | ||
|
|
28bddb713b | ||
|
|
0b86e0ae41 | ||
|
|
da058197c7 | ||
|
|
cf0d7067eb | ||
|
|
baa50069cf | ||
|
|
aab0bf369d | ||
|
|
07c13d84be | ||
|
|
47982d092b | ||
|
|
ef63f11bbb | ||
|
|
46e0656fe9 | ||
|
|
bdc2decd06 | ||
|
|
69204e3998 | ||
|
|
4419c20f33 | ||
|
|
f9ffa9c387 | ||
|
|
b402bd6c0e | ||
|
|
4f7c96326d | ||
|
|
ad36bd23c8 | ||
|
|
86fe78ba95 | ||
|
|
9678f1d1f2 | ||
|
|
d0d6ddd3c1 | ||
|
|
6dcd2e4b03 | ||
|
|
b9c58adae6 | ||
|
|
b7893c2820 | ||
|
|
fd1de0ef85 | ||
|
|
9c1fba3d79 | ||
|
|
1185bd5d86 | ||
|
|
70616de215 | ||
|
|
acf564756e | ||
|
|
616b9af5ed | ||
|
|
38b20987fb | ||
|
|
5f6d3078b7 | ||
|
|
2e0a8ee657 | ||
|
|
659a1dbe53 | ||
|
|
753124ec27 | ||
|
|
73dab9ebf4 | ||
|
|
716d6aca9f | ||
|
|
ec761802eb | ||
|
|
1a782a6938 | ||
|
|
63d693b388 | ||
|
|
5b1563b851 | ||
|
|
d794c4c81f | ||
|
|
70f0d8d558 | ||
|
|
2c50adb6f2 | ||
|
|
71c4d60bbf | ||
|
|
798faff7b2 | ||
|
|
94ed77353e | ||
|
|
a7159ecf1d | ||
|
|
b65f562c61 | ||
|
|
9918b4ee42 | ||
|
|
069781bcdd | ||
|
|
3596a5588d | ||
|
|
69890972bc | ||
|
|
313dd0cc6a | ||
|
|
dc30e4f8e0 | ||
|
|
a7b3ef34d8 | ||
|
|
f0b728a71b | ||
|
|
dfce6564a1 | ||
|
|
3b924ff1e6 | ||
|
|
15bc01576a | ||
|
|
19f4f6e1cc | ||
|
|
ea4e25ea28 | ||
|
|
fd6ea77f7b | ||
|
|
1b382e4391 | ||
|
|
091aba7aad | ||
|
|
49c151c1b4 | ||
|
|
3ffc4fad6d | ||
|
|
73dc6b768f | ||
|
|
413d8e6662 | ||
|
|
5d2ce27ea8 | ||
|
|
1d3a1a1345 | ||
|
|
9adf764af8 | ||
|
|
8ef6827bd9 | ||
|
|
79d011bd5c | ||
|
|
430ce9c136 | ||
|
|
fe7afe3dec | ||
|
|
8922cc72fc | ||
|
|
200181623e | ||
|
|
ab24afa31d | ||
|
|
b38fa395ce | ||
|
|
62475f9bcf | ||
|
|
674d6389b7 | ||
|
|
7ae98ca9fe | ||
|
|
13ed55ac10 | ||
|
|
fce020f4dd | ||
|
|
8c2376457b | ||
|
|
1dde832e31 | ||
|
|
8c86ae2461 | ||
|
|
695abb481d | ||
|
|
7f769e00b9 | ||
|
|
b2e4544b52 | ||
|
|
7d1ee33e1f | ||
|
|
2ade16a87a | ||
|
|
67fd2b4ac0 | ||
|
|
26294a5742 | ||
|
|
db8371d3af | ||
|
|
f308496ef9 | ||
|
|
a0507bd14d | ||
|
|
92d95db40b | ||
|
|
2309d30909 | ||
|
|
0f023113ec | ||
|
|
b3e5f09c83 | ||
|
|
2f5a4f63b6 | ||
|
|
85515079d6 | ||
|
|
a9123d2966 | ||
|
|
efdd8daa01 | ||
|
|
8f2d69b7f7 | ||
|
|
18ee6ecf80 | ||
|
|
5a3669cbe7 | ||
|
|
a1c78b3a44 | ||
|
|
4e0ea5f941 | ||
|
|
c425313ae6 | ||
|
|
4736921d05 | ||
|
|
45aedd8111 | ||
|
|
445f06f4b3 | ||
|
|
b8fbc837dc | ||
|
|
72bcc16a46 | ||
|
|
729640d6ec | ||
|
|
fcdb9e39c6 | ||
|
|
953adadd62 | ||
|
|
a9fa1fb66b | ||
|
|
8c7547ab03 | ||
|
|
e94fed0137 | ||
|
|
353a8ff768 | ||
|
|
3442081d20 | ||
|
|
67f14d6a62 | ||
|
|
9e1980f843 | ||
|
|
495e0ce89b | ||
|
|
76fa97e0a0 | ||
|
|
cc49948a59 | ||
|
|
5adcbb775d | ||
|
|
02ed3e4e8b | ||
|
|
f9ff9af094 | ||
|
|
529b8c2183 | ||
|
|
fa3ae62254 | ||
|
|
71ccbb9336 | ||
|
|
9f22a6d26d | ||
|
|
4db3bd7423 | ||
|
|
4393b0c80d | ||
|
|
c217828c18 | ||
|
|
a502f69b34 | ||
|
|
6f3e0f5162 | ||
|
|
0e44cae1e3 | ||
|
|
99b0defcf7 | ||
|
|
c6be74ac5b | ||
|
|
84af5a277e | ||
|
|
266e3ab270 | ||
|
|
1da5a0a4ca | ||
|
|
2c17d450dd | ||
|
|
41c4cbe3a6 | ||
|
|
c7dfaac61a | ||
|
|
36018fe570 | ||
|
|
e8b284a89c | ||
|
|
a8ea9a8dbe | ||
|
|
78f26a3689 | ||
|
|
671db12336 | ||
|
|
a5dc3bcc75 | ||
|
|
54819eb367 | ||
|
|
71ec4ad403 | ||
|
|
8644fb66c0 | ||
|
|
71b5d4fe5a | ||
|
|
abedc0be80 | ||
|
|
63072205d6 | ||
|
|
0ac7d9829a | ||
|
|
7989ca7504 | ||
|
|
56118a7142 | ||
|
|
93d8f66afc | ||
|
|
ea0e80b12b | ||
|
|
cfdb5456aa | ||
|
|
5baeadbe92 | ||
|
|
8a57a32233 | ||
|
|
af954a0578 | ||
|
|
b6bbd6899e | ||
|
|
f7edc853da | ||
|
|
820d0cde86 | ||
|
|
2249bbb0f5 | ||
|
|
4a37a6f497 | ||
|
|
0ce742fa8a | ||
|
|
86725b1ef1 | ||
|
|
7a3ec4194e | ||
|
|
53120faeba | ||
|
|
c9ca331d30 | ||
|
|
cce3749563 | ||
|
|
f389b1ae93 | ||
|
|
a275ce8738 | ||
|
|
03dfa19c0e | ||
|
|
b5087002d2 | ||
|
|
4df5cdd312 | ||
|
|
73867d87d7 | ||
|
|
76009ca6eb | ||
|
|
935d26f956 | ||
|
|
8d931e290a | ||
|
|
1cd846fbf1 | ||
|
|
c284d5d2f4 | ||
|
|
713a794e9a | ||
|
|
e1cc09a837 | ||
|
|
3ebb35ac6a | ||
|
|
3f377d4efc | ||
|
|
881d265579 | ||
|
|
70339423d0 | ||
|
|
a5f3359d32 | ||
|
|
13f00edefd | ||
|
|
97b5526cc1 | ||
|
|
3901422a54 | ||
|
|
2db2136117 | ||
|
|
fc40ed52f3 | ||
|
|
b2081dcbc9 | ||
|
|
fd42549733 | ||
|
|
07d002da48 | ||
|
|
dc51bc39ab | ||
|
|
411932c96b | ||
|
|
1eb3f449e2 | ||
|
|
188e7910dd | ||
|
|
5893564f46 | ||
|
|
bdf77b2782 | ||
|
|
ece5cc7dd5 | ||
|
|
db18b0f8e2 | ||
|
|
94cd2c0599 | ||
|
|
87225e64fa | ||
|
|
fffb97ea8d | ||
|
|
57b381311c | ||
|
|
121db63778 | ||
|
|
dcf52085ae | ||
|
|
2d339ba00a | ||
|
|
422e19724a | ||
|
|
f25f4f7dc8 | ||
|
|
c8fca3d63f | ||
|
|
fd1ee23adc | ||
|
|
a540165280 |
12
.config/dotnet-tools.json
Normal file
12
.config/dotnet-tools.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"version": 1,
|
||||
"isRoot": true,
|
||||
"tools": {
|
||||
"dotnet-consolidate": {
|
||||
"version": "2.0.0",
|
||||
"commands": [
|
||||
"dotnet-consolidate"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
18
.gitattributes
vendored
18
.gitattributes
vendored
@@ -1 +1,19 @@
|
||||
###############################################################################
|
||||
# Set default behavior to automatically normalize line endings.
|
||||
###############################################################################
|
||||
* text=auto
|
||||
|
||||
*.cs text eol=crlf
|
||||
|
||||
###############################################################################
|
||||
# diff behavior for common document formats
|
||||
#
|
||||
# Convert binary document formats to text before diffing them. This feature
|
||||
# is only available from the command line. Turn it on by uncommenting the
|
||||
# entries below.
|
||||
###############################################################################
|
||||
*.rc diff
|
||||
|
||||
*.gcode linguist-detectable=false
|
||||
|
||||
*.vsconfig linguist-language=json
|
||||
|
||||
37
.github/ISSUE_TEMPLATE/bug_report.md
vendored
37
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -1,37 +0,0 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Report errors or unexpected behavior
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
**Important: When reporting BSODs or security issues, DO NOT attach memory dumps, logs, or traces to Github issues**.
|
||||
Instead, send dumps/traces to secure@microsoft.com, referencing this GitHub issue.
|
||||
-->
|
||||
|
||||
# Environment
|
||||
|
||||
```
|
||||
Windows build number: [run "ver" at a command prompt]
|
||||
PowerToys version:
|
||||
PowerToy module for which you are reporting the bug (if applicable):
|
||||
```
|
||||
|
||||
# Steps to reproduce
|
||||
|
||||
<!-- A description of how to trigger this bug. -->
|
||||
|
||||
# Expected behavior
|
||||
|
||||
<!-- A description of what you're expecting, possibly containing screenshots or reference material. -->
|
||||
|
||||
# Actual behavior
|
||||
|
||||
<!-- What's actually happening? -->
|
||||
|
||||
# Screenshots
|
||||
|
||||
<!-- If applicable, add screenshots to help explain your problem. -->
|
||||
109
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
109
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
@@ -0,0 +1,109 @@
|
||||
name: "🕷️ Bug report"
|
||||
description: Report errors or unexpected behavior
|
||||
labels:
|
||||
- Issue-Bug
|
||||
- Needs-Triage
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: Please make sure to [search for existing issues](https://github.com/microsoft/PowerToys/issues) before filing a new one!
|
||||
- type: input
|
||||
attributes:
|
||||
label: Microsoft PowerToys version
|
||||
placeholder: 0.68.0
|
||||
description: Hover over system tray icon or look at Settings
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: Installation method
|
||||
description: How / Where was PowerToys installed from?
|
||||
multiple: true
|
||||
options:
|
||||
- GitHub
|
||||
- PowerToys auto-update
|
||||
- Microsoft Store
|
||||
- WinGet
|
||||
- Chocolatey
|
||||
- Scoop
|
||||
- Dev build in Visual Studio
|
||||
- Other (please specify in "Steps to Reproduce")
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: Running as admin
|
||||
description: Are you running PowerToys as Admin?
|
||||
options:
|
||||
- "Yes"
|
||||
- "No"
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: Area(s) with issue?
|
||||
description: What things had an issue? Check all that apply.
|
||||
multiple: true
|
||||
options:
|
||||
- General
|
||||
- Always on Top
|
||||
- Awake
|
||||
- ColorPicker
|
||||
- FancyZones
|
||||
- FancyZones Editor
|
||||
- File Locksmith
|
||||
- "File Explorer: Preview Pane"
|
||||
- "File Explorer: Thumbnail preview"
|
||||
- Hosts File Editor
|
||||
- Image Resizer
|
||||
- Installer
|
||||
- Keyboard Manager
|
||||
- Mouse Utilities
|
||||
- Paste as Plain Text
|
||||
- PowerRename
|
||||
- PowerToys Run
|
||||
- Quick Accent
|
||||
- Registry Preview
|
||||
- Screen ruler
|
||||
- Settings
|
||||
- Shortcut Guide
|
||||
- System tray interaction
|
||||
- TextExtractor
|
||||
- Video Conference Mute
|
||||
- Welcome / PowerToys Tour window
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Steps to reproduce
|
||||
description: We highly suggest including screenshots and a bug report log (System tray > Report bug).
|
||||
placeholder: Having detailed steps helps us reproduce the bug.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: ✔️ Expected Behavior
|
||||
placeholder: What were you expecting?
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: ❌ Actual Behavior
|
||||
placeholder: What happened instead?
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Other Software
|
||||
description: If you're reporting a bug about our interaction with other software, what software? What versions?
|
||||
placeholder: |
|
||||
vim 8.2 (inside WSL)
|
||||
OpenSSH_for_Windows_8.1p1
|
||||
My Cool Application v0.3 (include a code snippet if it would help!)
|
||||
validations:
|
||||
required: false
|
||||
12
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
12
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: "\U0001F6A8 Microsoft Security Response Center (MSRC)"
|
||||
url: https://msrc.microsoft.com/create-report
|
||||
about: Report security bugs
|
||||
- name: "\U0001F4DA PowerToys user documentation"
|
||||
url: https://aka.ms/powertoys-docs
|
||||
about: Documentation for users of PowerToys utilities
|
||||
- name: "\U0001F4DA PowerToys dev documentation"
|
||||
url: https://github.com/microsoft/PowerToys/tree/main/doc/devdocs
|
||||
about: Documentation for people interested in developing and contributing for PowerToys
|
||||
|
||||
10
.github/ISSUE_TEMPLATE/documentation-issue.md
vendored
10
.github/ISSUE_TEMPLATE/documentation-issue.md
vendored
@@ -1,10 +0,0 @@
|
||||
---
|
||||
name: Documentation Issue
|
||||
about: Report issues in our documentation
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!-- Briefly describe which document needs to be corrected and why. -->
|
||||
12
.github/ISSUE_TEMPLATE/documentation-issue.yml
vendored
Normal file
12
.github/ISSUE_TEMPLATE/documentation-issue.yml
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
name: "📚 Documentation Issue"
|
||||
description: Report issues in our documentation
|
||||
labels:
|
||||
- Issue-Docs
|
||||
- Needs-Triage
|
||||
body:
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Provide a description of requested docs changes
|
||||
placeholder: Briefly describe which document needs to be corrected and why.
|
||||
validations:
|
||||
required: true
|
||||
21
.github/ISSUE_TEMPLATE/feature_request.md
vendored
21
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@@ -1,21 +0,0 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
# Summary of the new feature/enhancement
|
||||
|
||||
<!--
|
||||
A clear and concise description of what the problem is that the new feature would solve.
|
||||
Describe why and how a user would use this new functionality (if applicable).
|
||||
-->
|
||||
|
||||
# Proposed technical implementation details (optional)
|
||||
|
||||
<!--
|
||||
A clear and concise description of what you want to happen.
|
||||
-->
|
||||
26
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
26
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
name: "⭐ Feature or enhancement request"
|
||||
description: Propose something new.
|
||||
labels:
|
||||
- Needs-Triage
|
||||
body:
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Description of the new feature / enhancement
|
||||
placeholder: What is the expected behavior of the proposed feature?
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Scenario when this would be used?
|
||||
placeholder: What is the scenario this would be used? Why is this important to your workflow as a power user?
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Supporting information
|
||||
placeholder: "Having additional evidence, data, tweets, blog posts, research, ... anything is extremely helpful. This information provides context to the scenario that may otherwise be lost."
|
||||
validations:
|
||||
required: false
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: Please limit one request per issue.
|
||||
74
.github/ISSUE_TEMPLATE/translation_issue.yml
vendored
Normal file
74
.github/ISSUE_TEMPLATE/translation_issue.yml
vendored
Normal file
@@ -0,0 +1,74 @@
|
||||
name: "🌐 Localization/Translation issue"
|
||||
description: Report incorrect translations.
|
||||
labels:
|
||||
- Issue-Bug
|
||||
- Area-Localization
|
||||
- Issue-Translation
|
||||
- Needs-Triage
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: Please make sure to [search for existing issues](https://github.com/microsoft/PowerToys/issues) before filing a new one!
|
||||
- type: input
|
||||
attributes:
|
||||
label: Microsoft PowerToys version
|
||||
placeholder: 0.68.0
|
||||
description: Hover over system tray icon or look at Settings
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: Utility with translation issue
|
||||
options:
|
||||
- General
|
||||
- Always on Top
|
||||
- Awake
|
||||
- ColorPicker
|
||||
- FancyZones
|
||||
- FancyZones Editor
|
||||
- File Locksmith
|
||||
- "File Explorer: Preview Pane"
|
||||
- "File Explorer: Thumbnail preview"
|
||||
- Hosts File Editor
|
||||
- Image Resizer
|
||||
- Installer
|
||||
- Keyboard Manager
|
||||
- Mouse Utilities
|
||||
- Paste as Plain Text
|
||||
- PowerRename
|
||||
- PowerToys Run
|
||||
- Quick Accent
|
||||
- Registry Preview
|
||||
- Screen ruler
|
||||
- Settings
|
||||
- Shortcut Guide
|
||||
- System tray interaction
|
||||
- TextExtractor
|
||||
- Video Conference Mute
|
||||
- Welcome / PowerToys Tour window
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
attributes:
|
||||
label: 🌐 Language affected
|
||||
placeholder: "German"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: ❌ Actual phrase(s)
|
||||
placeholder: What is there? Please include a screenshot as that is extremely helpful.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: ✔️ Expected phrase(s)
|
||||
placeholder: What was expected?
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: ℹ Why is the current translation wrong
|
||||
placeholder: Why do you feel this is incorrect?
|
||||
validations:
|
||||
required: true
|
||||
16
.github/actions/spell-check/README.md
vendored
Normal file
16
.github/actions/spell-check/README.md
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
# check-spelling/check-spelling configuration
|
||||
|
||||
File | Purpose | Format | Info
|
||||
-|-|-|-
|
||||
[allow.txt](allow.txt) | Add words to the dictionary | one word per line (only letters and `'`s allowed) | [allow](https://github.com/check-spelling/check-spelling/wiki/Configuration#allow)
|
||||
[reject.txt](reject.txt) | Remove words from the dictionary (after allow) | grep pattern matching whole dictionary words | [reject](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-reject)
|
||||
[excludes.txt](excludes.txt) | Files to ignore entirely | perl regular expression | [excludes](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-excludes)
|
||||
[only.txt](only.txt) | Only check matching files (applied after excludes) | perl regular expression | [only](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-only)
|
||||
[patterns.txt](patterns.txt) | Patterns to ignore from checked lines | perl regular expression (order matters, first match wins) | [patterns](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-patterns)
|
||||
[candidate.patterns](candidate.patterns) | Patterns that might be worth adding to [patterns.txt](patterns.txt) | perl regular expression with optional comment block introductions (all matches will be suggested) | [candidates](https://github.com/check-spelling/check-spelling/wiki/Feature:-Suggest-patterns)
|
||||
[line_forbidden.patterns](line_forbidden.patterns) | Patterns to flag in checked lines | perl regular expression (order matters, first match wins) | [patterns](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-patterns)
|
||||
[expect.txt](expect.txt) | Expected words that aren't in the dictionary | one word per line (sorted, alphabetically) | [expect](https://github.com/check-spelling/check-spelling/wiki/Configuration#expect)
|
||||
[advice.md](advice.md) | Supplement for GitHub comment when unrecognized words are found | GitHub Markdown | [advice](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-advice)
|
||||
|
||||
Note: you can replace any of these files with a directory by the same name (minus the suffix)
|
||||
and then include multiple files inside that directory (with that suffix) to merge multiple files together.
|
||||
25
.github/actions/spell-check/advice.md
vendored
Normal file
25
.github/actions/spell-check/advice.md
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
<!-- See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples%3A-advice --> <!-- markdownlint-disable MD033 MD041 -->
|
||||
<details><summary>If the flagged items are :exploding_head: false positives</summary>
|
||||
|
||||
If items relate to a ...
|
||||
* binary file (or some other file you wouldn't want to check at all).
|
||||
|
||||
Please add a file path to the `excludes.txt` file matching the containing file.
|
||||
|
||||
File paths are Perl 5 Regular Expressions - you can [test](
|
||||
https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your files.
|
||||
|
||||
`^` refers to the file's path from the root of the repository, so `^README\.md$` would exclude [README.md](
|
||||
../tree/HEAD/README.md) (on whichever branch you're using).
|
||||
|
||||
* well-formed pattern.
|
||||
|
||||
If you can write a [pattern](https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns) that would match it,
|
||||
try adding it to the `patterns.txt` file.
|
||||
|
||||
Patterns are Perl 5 Regular Expressions - you can [test](
|
||||
https://www.regexplanet.com/advanced/perl/) yours before committing to verify it will match your lines.
|
||||
|
||||
Note that patterns can't match multiline strings.
|
||||
|
||||
</details>
|
||||
9
.github/actions/spell-check/allow/allow.txt
vendored
Normal file
9
.github/actions/spell-check/allow/allow.txt
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
bkmeneguello
|
||||
FWest
|
||||
github
|
||||
https
|
||||
obairka
|
||||
ssh
|
||||
ubuntu
|
||||
unuing
|
||||
wil
|
||||
18
.github/actions/spell-check/allow/names.txt
vendored
Normal file
18
.github/actions/spell-check/allow/names.txt
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
ABradley
|
||||
azchohfi
|
||||
bdoserror
|
||||
crutkas
|
||||
dependabot
|
||||
Deuchert
|
||||
edwinzap
|
||||
hallatore
|
||||
jefflord
|
||||
mshtang
|
||||
naveensrinivasan
|
||||
nVidia
|
||||
robmen
|
||||
skycommand
|
||||
snickler
|
||||
sinclairinat
|
||||
Vidia
|
||||
yifan
|
||||
523
.github/actions/spell-check/candidate.patterns
vendored
Normal file
523
.github/actions/spell-check/candidate.patterns
vendored
Normal file
@@ -0,0 +1,523 @@
|
||||
# marker to ignore all code on line
|
||||
^.*/\* #no-spell-check-line \*/.*$
|
||||
# marker for ignoring a comment to the end of the line
|
||||
// #no-spell-check.*$
|
||||
|
||||
# patch hunk comments
|
||||
^\@\@ -\d+(?:,\d+|) \+\d+(?:,\d+|) \@\@ .*
|
||||
# git index header
|
||||
index [0-9a-z]{7,40}\.\.[0-9a-z]{7,40}
|
||||
|
||||
# cid urls
|
||||
(['"])cid:.*?\g{-1}
|
||||
|
||||
# data url in parens
|
||||
\(data:[^)]*?(?:[A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,})[^)]*\)
|
||||
# data url in quotes
|
||||
([`'"])data:.*?(?:[A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,}).*\g{-1}
|
||||
# data url
|
||||
data:[-a-zA-Z=;:/0-9+]*,\S*
|
||||
|
||||
# mailto urls
|
||||
mailto:[-a-zA-Z=;:/?%&0-9+@.]{3,}
|
||||
|
||||
# magnet urls
|
||||
magnet:[?=:\w]+
|
||||
|
||||
# magnet urls
|
||||
"magnet:[^"]+"
|
||||
|
||||
# obs:
|
||||
"obs:[^"]*"
|
||||
|
||||
# The `\b` here means a break, it's the fancy way to handle urls, but it makes things harder to read
|
||||
# In this examples content, I'm using a number of different ways to match things to show various approaches
|
||||
# asciinema
|
||||
\basciinema\.org/a/[0-9a-zA-Z]+
|
||||
|
||||
# apple
|
||||
\bdeveloper\.apple\.com/[-\w?=/]+
|
||||
# Apple music
|
||||
\bembed\.music\.apple\.com/fr/playlist/usr-share/[-\w.]+
|
||||
|
||||
# appveyor api
|
||||
\bci\.appveyor\.com/api/projects/status/[0-9a-z]+
|
||||
# appveyor project
|
||||
\bci\.appveyor\.com/project/(?:[^/\s"]*/){2}builds?/\d+/job/[0-9a-z]+
|
||||
|
||||
# Amazon
|
||||
|
||||
# Amazon
|
||||
\bamazon\.com/[-\w]+/(?:dp/[0-9A-Z]+|)
|
||||
# AWS S3
|
||||
\b\w*\.s3[^.]*\.amazonaws\.com/[-\w/&#%_?:=]*
|
||||
# AWS execute-api
|
||||
\b[0-9a-z]{10}\.execute-api\.[-0-9a-z]+\.amazonaws\.com\b
|
||||
# AWS ELB
|
||||
\b\w+\.[-0-9a-z]+\.elb\.amazonaws\.com\b
|
||||
# AWS SNS
|
||||
\bsns\.[-0-9a-z]+.amazonaws\.com/[-\w/&#%_?:=]*
|
||||
# AWS VPC
|
||||
vpc-\w+
|
||||
|
||||
# While you could try to match `http://` and `https://` by using `s?` in `https?://`, sometimes there
|
||||
# YouTube url
|
||||
\b(?:(?:www\.|)youtube\.com|youtu.be)/(?:channel/|embed/|user/|playlist\?list=|watch\?v=|v/|)[-a-zA-Z0-9?&=_%]*
|
||||
# YouTube music
|
||||
\bmusic\.youtube\.com/youtubei/v1/browse(?:[?&]\w+=[-a-zA-Z0-9?&=_]*)
|
||||
# YouTube tag
|
||||
<\s*youtube\s+id=['"][-a-zA-Z0-9?_]*['"]
|
||||
# YouTube image
|
||||
\bimg\.youtube\.com/vi/[-a-zA-Z0-9?&=_]*
|
||||
# Google Accounts
|
||||
\baccounts.google.com/[-_/?=.:;+%&0-9a-zA-Z]*
|
||||
# Google Analytics
|
||||
\bgoogle-analytics\.com/collect.[-0-9a-zA-Z?%=&_.~]*
|
||||
# Google APIs
|
||||
\bgoogleapis\.(?:com|dev)/[a-z]+/(?:v\d+/|)[a-z]+/[-@:./?=\w+|&]+
|
||||
# Google Storage
|
||||
\b[-a-zA-Z0-9.]*\bstorage\d*\.googleapis\.com(?:/\S*|)
|
||||
# Google Calendar
|
||||
\bcalendar\.google\.com/calendar(?:/u/\d+|)/embed\?src=[@./?=\w&%]+
|
||||
\w+\@group\.calendar\.google\.com\b
|
||||
# Google DataStudio
|
||||
\bdatastudio\.google\.com/(?:(?:c/|)u/\d+/|)(?:embed/|)(?:open|reporting|datasources|s)/[-0-9a-zA-Z]+(?:/page/[-0-9a-zA-Z]+|)
|
||||
# The leading `/` here is as opposed to the `\b` above
|
||||
# ... a short way to match `https://` or `http://` since most urls have one of those prefixes
|
||||
# Google Docs
|
||||
/docs\.google\.com/[a-z]+/(?:ccc\?key=\w+|(?:u/\d+|d/(?:e/|)[0-9a-zA-Z_-]+/)?(?:edit\?[-\w=#.]*|/\?[\w=&]*|))
|
||||
# Google Drive
|
||||
\bdrive\.google\.com/(?:file/d/|open)[-0-9a-zA-Z_?=]*
|
||||
# Google Groups
|
||||
\bgroups\.google\.com/(?:(?:forum/#!|d/)(?:msg|topics?|searchin)|a)/[^/\s"]+/[-a-zA-Z0-9$]+(?:/[-a-zA-Z0-9]+)*
|
||||
# Google Maps
|
||||
\bmaps\.google\.com/maps\?[\w&;=]*
|
||||
# Google themes
|
||||
themes\.googleusercontent\.com/static/fonts/[^/\s"]+/v\d+/[^.]+.
|
||||
# Google CDN
|
||||
\bclients2\.google(?:usercontent|)\.com[-0-9a-zA-Z/.]*
|
||||
# Goo.gl
|
||||
/goo\.gl/[a-zA-Z0-9]+
|
||||
# Google Chrome Store
|
||||
\bchrome\.google\.com/webstore/detail/[-\w]*(?:/\w*|)
|
||||
# Google Books
|
||||
\bgoogle\.(?:\w{2,4})/books(?:/\w+)*\?[-\w\d=&#.]*
|
||||
# Google Fonts
|
||||
\bfonts\.(?:googleapis|gstatic)\.com/[-/?=:;+&0-9a-zA-Z]*
|
||||
# Google Forms
|
||||
\bforms\.gle/\w+
|
||||
# Google Scholar
|
||||
\bscholar\.google\.com/citations\?user=[A-Za-z0-9_]+
|
||||
# Google Colab Research Drive
|
||||
\bcolab\.research\.google\.com/drive/[-0-9a-zA-Z_?=]*
|
||||
|
||||
# GitHub SHAs (api)
|
||||
\bapi.github\.com/repos(?:/[^/\s"]+){3}/[0-9a-f]+\b
|
||||
# GitHub SHAs (markdown)
|
||||
(?:\[`?[0-9a-f]+`?\]\(https:/|)/(?:www\.|)github\.com(?:/[^/\s"]+){2,}(?:/[^/\s")]+)(?:[0-9a-f]+(?:[-0-9a-zA-Z/#.]*|)\b|)
|
||||
# GitHub SHAs
|
||||
\bgithub\.com(?:/[^/\s"]+){2}[@#][0-9a-f]+\b
|
||||
# GitHub wiki
|
||||
\bgithub\.com/(?:[^/]+/){2}wiki/(?:(?:[^/]+/|)_history|[^/]+(?:/_compare|)/[0-9a-f.]{40,})\b
|
||||
# githubusercontent
|
||||
/[-a-z0-9]+\.githubusercontent\.com/[-a-zA-Z0-9?&=_\/.]*
|
||||
# githubassets
|
||||
\bgithubassets.com/[0-9a-f]+(?:[-/\w.]+)
|
||||
# gist github
|
||||
\bgist\.github\.com/[^/\s"]+/[0-9a-f]+
|
||||
# git.io
|
||||
\bgit\.io/[0-9a-zA-Z]+
|
||||
# GitHub JSON
|
||||
"node_id": "[-a-zA-Z=;:/0-9+]*"
|
||||
# Contributor
|
||||
\[[^\]]+\]\(https://github\.com/[^/\s"]+\)
|
||||
# GHSA
|
||||
GHSA(?:-[0-9a-z]{4}){3}
|
||||
|
||||
# GitLab commit
|
||||
\bgitlab\.[^/\s"]*/\S+/\S+/commit/[0-9a-f]{7,16}#[0-9a-f]{40}\b
|
||||
# GitLab merge requests
|
||||
\bgitlab\.[^/\s"]*/\S+/\S+/-/merge_requests/\d+/diffs#[0-9a-f]{40}\b
|
||||
# GitLab uploads
|
||||
\bgitlab\.[^/\s"]*/uploads/[-a-zA-Z=;:/0-9+]*
|
||||
# GitLab commits
|
||||
\bgitlab\.[^/\s"]*/(?:[^/\s"]+/){2}commits?/[0-9a-f]+\b
|
||||
|
||||
# binanace
|
||||
accounts.binance.com/[a-z/]*oauth/authorize\?[-0-9a-zA-Z&%]*
|
||||
|
||||
# bitbucket diff
|
||||
\bapi\.bitbucket\.org/\d+\.\d+/repositories/(?:[^/\s"]+/){2}diff(?:stat|)(?:/[^/\s"]+){2}:[0-9a-f]+
|
||||
# bitbucket repositories commits
|
||||
\bapi\.bitbucket\.org/\d+\.\d+/repositories/(?:[^/\s"]+/){2}commits?/[0-9a-f]+
|
||||
# bitbucket commits
|
||||
\bbitbucket\.org/(?:[^/\s"]+/){2}commits?/[0-9a-f]+
|
||||
|
||||
# bit.ly
|
||||
\bbit\.ly/\w+
|
||||
|
||||
# bitrise
|
||||
\bapp\.bitrise\.io/app/[0-9a-f]*/[\w.?=&]*
|
||||
|
||||
# bootstrapcdn.com
|
||||
\bbootstrapcdn\.com/[-./\w]+
|
||||
|
||||
# cdn.cloudflare.com
|
||||
\bcdnjs\.cloudflare\.com/[./\w]+
|
||||
|
||||
# circleci
|
||||
\bcircleci\.com/gh(?:/[^/\s"]+){1,5}.[a-z]+\?[-0-9a-zA-Z=&]+
|
||||
|
||||
# gitter
|
||||
\bgitter\.im(?:/[^/\s"]+){2}\?at=[0-9a-f]+
|
||||
|
||||
# gravatar
|
||||
\bgravatar\.com/avatar/[0-9a-f]+
|
||||
|
||||
# ibm
|
||||
[a-z.]*ibm\.com/[-_#=:%!?~.\\/\d\w]*
|
||||
|
||||
# imgur
|
||||
\bimgur\.com/[^.]+
|
||||
|
||||
# Internet Archive
|
||||
\barchive\.org/web/\d+/(?:[-\w.?,'/\\+&%$#_:]*)
|
||||
|
||||
# discord
|
||||
/discord(?:app\.com|\.gg)/(?:invite/)?[a-zA-Z0-9]{7,}
|
||||
|
||||
# Disqus
|
||||
\bdisqus\.com/[-\w/%.()!?&=_]*
|
||||
|
||||
# medium link
|
||||
\blink\.medium\.com/[a-zA-Z0-9]+
|
||||
# medium
|
||||
\bmedium\.com/\@?[^/\s"]+/[-\w]+
|
||||
|
||||
# microsoft
|
||||
\b(?:https?://|)(?:(?:download\.visualstudio|docs|msdn2?|research)\.microsoft|blogs\.msdn)\.com/[-_a-zA-Z0-9()=./%]*
|
||||
# powerbi
|
||||
\bapp\.powerbi\.com/reportEmbed/[^"' ]*
|
||||
# vs devops
|
||||
\bvisualstudio.com(?::443|)/[-\w/?=%&.]*
|
||||
# microsoft store
|
||||
\bmicrosoft\.com/store/apps/\w+
|
||||
|
||||
# mvnrepository.com
|
||||
\bmvnrepository\.com/[-0-9a-z./]+
|
||||
|
||||
# now.sh
|
||||
/[0-9a-z-.]+\.now\.sh\b
|
||||
|
||||
# oracle
|
||||
\bdocs\.oracle\.com/[-0-9a-zA-Z./_?#&=]*
|
||||
|
||||
# chromatic.com
|
||||
/\S+.chromatic.com\S*[")]
|
||||
|
||||
# codacy
|
||||
\bapi\.codacy\.com/project/badge/Grade/[0-9a-f]+
|
||||
|
||||
# compai
|
||||
\bcompai\.pub/v1/png/[0-9a-f]+
|
||||
|
||||
# mailgun api
|
||||
\.api\.mailgun\.net/v3/domains/[0-9a-z]+\.mailgun.org/messages/[0-9a-zA-Z=@]*
|
||||
# mailgun
|
||||
\b[0-9a-z]+.mailgun.org
|
||||
|
||||
# /message-id/
|
||||
/message-id/[-\w@./%]+
|
||||
|
||||
# Reddit
|
||||
\breddit\.com/r/[/\w_]*
|
||||
|
||||
# requestb.in
|
||||
\brequestb\.in/[0-9a-z]+
|
||||
|
||||
# sched
|
||||
\b[a-z0-9]+\.sched\.com\b
|
||||
|
||||
# Slack url
|
||||
slack://[a-zA-Z0-9?&=]+
|
||||
# Slack
|
||||
\bslack\.com/[-0-9a-zA-Z/_~?&=.]*
|
||||
# Slack edge
|
||||
\bslack-edge\.com/[-a-zA-Z0-9?&=%./]+
|
||||
# Slack images
|
||||
\bslack-imgs\.com/[-a-zA-Z0-9?&=%.]+
|
||||
|
||||
# shields.io
|
||||
\bshields\.io/[-\w/%?=&.:+;,]*
|
||||
|
||||
# stackexchange -- https://stackexchange.com/feeds/sites
|
||||
\b(?:askubuntu|serverfault|stack(?:exchange|overflow)|superuser).com/(?:questions/\w+/[-\w]+|a/)
|
||||
|
||||
# Sentry
|
||||
[0-9a-f]{32}\@o\d+\.ingest\.sentry\.io\b
|
||||
|
||||
# Twitter markdown
|
||||
\[\@[^[/\]:]*?\]\(https://twitter.com/[^/\s"')]*(?:/status/\d+(?:\?[-_0-9a-zA-Z&=]*|)|)\)
|
||||
# Twitter hashtag
|
||||
\btwitter\.com/hashtag/[\w?_=&]*
|
||||
# Twitter status
|
||||
\btwitter\.com/[^/\s"')]*(?:/status/\d+(?:\?[-_0-9a-zA-Z&=]*|)|)
|
||||
# Twitter profile images
|
||||
\btwimg\.com/profile_images/[_\w./]*
|
||||
# Twitter media
|
||||
\btwimg\.com/media/[-_\w./?=]*
|
||||
# Twitter link shortened
|
||||
\bt\.co/\w+
|
||||
|
||||
# facebook
|
||||
\bfburl\.com/[0-9a-z_]+
|
||||
# facebook CDN
|
||||
\bfbcdn\.net/[\w/.,]*
|
||||
# facebook watch
|
||||
\bfb\.watch/[0-9A-Za-z]+
|
||||
|
||||
# dropbox
|
||||
\bdropbox\.com/sh?/[^/\s"]+/[-0-9A-Za-z_.%?=&;]+
|
||||
|
||||
# ipfs protocol
|
||||
ipfs://[0-9a-z]*
|
||||
# ipfs url
|
||||
/ipfs/[0-9a-z]*
|
||||
|
||||
# w3
|
||||
\bw3\.org/[-0-9a-zA-Z/#.]+
|
||||
|
||||
# loom
|
||||
\bloom\.com/embed/[0-9a-f]+
|
||||
|
||||
# regex101
|
||||
\bregex101\.com/r/[^/\s"]+/\d+
|
||||
|
||||
# figma
|
||||
\bfigma\.com/file(?:/[0-9a-zA-Z]+/)+
|
||||
|
||||
# freecodecamp.org
|
||||
\bfreecodecamp\.org/[-\w/.]+
|
||||
|
||||
# image.tmdb.org
|
||||
\bimage\.tmdb\.org/[/\w.]+
|
||||
|
||||
# mermaid
|
||||
\bmermaid\.ink/img/[-\w]+|\bmermaid-js\.github\.io/mermaid-live-editor/#/edit/[-\w]+
|
||||
|
||||
# Wikipedia
|
||||
\ben\.wikipedia\.org/wiki/[-\w%.#]+
|
||||
|
||||
# gitweb
|
||||
[^"\s]+/gitweb/\S+;h=[0-9a-f]+
|
||||
|
||||
# HyperKitty lists
|
||||
/archives/list/[^@/]+\@[^/\s"]*/message/[^/\s"]*/
|
||||
|
||||
# lists
|
||||
/thread\.html/[^"\s]+
|
||||
|
||||
# list-management
|
||||
\blist-manage\.com/subscribe(?:[?&](?:u|id)=[0-9a-f]+)+
|
||||
|
||||
# kubectl.kubernetes.io/last-applied-configuration
|
||||
"kubectl.kubernetes.io/last-applied-configuration": ".*"
|
||||
|
||||
# pgp
|
||||
\bgnupg\.net/pks/lookup[?&=0-9a-zA-Z]*
|
||||
|
||||
# Spotify
|
||||
\bopen\.spotify\.com/embed/playlist/\w+
|
||||
|
||||
# Mastodon
|
||||
\bmastodon\.[-a-z.]*/(?:media/|\@)[?&=0-9a-zA-Z_]*
|
||||
|
||||
# scastie
|
||||
\bscastie\.scala-lang\.org/[^/]+/\w+
|
||||
|
||||
# images.unsplash.com
|
||||
\bimages\.unsplash\.com/(?:(?:flagged|reserve)/|)[-\w./%?=%&.;]+
|
||||
|
||||
# pastebin
|
||||
\bpastebin\.com/[\w/]+
|
||||
|
||||
# heroku
|
||||
\b\w+\.heroku\.com/source/archive/\w+
|
||||
|
||||
# quip
|
||||
\b\w+\.quip\.com/\w+(?:(?:#|/issues/)\w+)?
|
||||
|
||||
# badgen.net
|
||||
\bbadgen\.net/badge/[^")\]'\s]+
|
||||
|
||||
# statuspage.io
|
||||
\w+\.statuspage\.io\b
|
||||
|
||||
# media.giphy.com
|
||||
\bmedia\.giphy\.com/media/[^/]+/[\w.?&=]+
|
||||
|
||||
# tinyurl
|
||||
\btinyurl\.com/\w+
|
||||
|
||||
# getopts
|
||||
\bgetopts\s+(?:"[^"]+"|'[^']+')
|
||||
|
||||
# ANSI color codes
|
||||
(?:\\(?:u00|x)1b|\x1b)\[\d+(?:;\d+|)m
|
||||
|
||||
# URL escaped characters
|
||||
\%[0-9A-F][A-F]
|
||||
# IPv6
|
||||
\b(?:[0-9a-fA-F]{0,4}:){3,7}[0-9a-fA-F]{0,4}\b
|
||||
# c99 hex digits (not the full format, just one I've seen)
|
||||
0x[0-9a-fA-F](?:\.[0-9a-fA-F]*|)[pP]
|
||||
# Punycode
|
||||
\bxn--[-0-9a-z]+
|
||||
# sha
|
||||
sha\d+:[0-9]*[a-f]{3,}[0-9a-f]*
|
||||
# sha-... -- uses a fancy capture
|
||||
(['"]|")[0-9a-f]{40,}\g{-1}
|
||||
# hex runs
|
||||
\b[0-9a-fA-F]{16,}\b
|
||||
# hex in url queries
|
||||
=[0-9a-fA-F]*?(?:[A-F]{3,}|[a-f]{3,})[0-9a-fA-F]*?&
|
||||
# ssh
|
||||
(?:ssh-\S+|-nistp256) [-a-zA-Z=;:/0-9+]{12,}
|
||||
|
||||
# PGP
|
||||
\b(?:[0-9A-F]{4} ){9}[0-9A-F]{4}\b
|
||||
# GPG keys
|
||||
\b(?:[0-9A-F]{4} ){5}(?: [0-9A-F]{4}){5}\b
|
||||
# Well known gpg keys
|
||||
.well-known/openpgpkey/[\w./]+
|
||||
|
||||
# uuid:
|
||||
\b[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}\b
|
||||
# hex digits including css/html color classes:
|
||||
(?:[\\0][xX]|\\u|[uU]\+|#x?|\%23)[0-9_a-fA-FgGrR]*?[a-fA-FgGrR]{2,}[0-9_a-fA-FgGrR]*(?:[uUlL]{0,3}|u\d+)\b
|
||||
# integrity
|
||||
integrity="sha\d+-[-a-zA-Z=;:/0-9+]{40,}"
|
||||
|
||||
# https://www.gnu.org/software/groff/manual/groff.html
|
||||
# man troff content
|
||||
\\f[BCIPR]
|
||||
# '
|
||||
\\\(aq
|
||||
|
||||
# .desktop mime types
|
||||
^MimeTypes?=.*$
|
||||
# .desktop localized entries
|
||||
^[A-Z][a-z]+\[[a-z]+\]=.*$
|
||||
# Localized .desktop content
|
||||
Name\[[^\]]+\]=.*
|
||||
|
||||
# IServiceProvider
|
||||
\bI(?=(?:[A-Z][a-z]{2,})+\b)
|
||||
|
||||
# crypt
|
||||
"\$2[ayb]\$.{56}"
|
||||
|
||||
# scrypt / argon
|
||||
\$(?:scrypt|argon\d+[di]*)\$\S+
|
||||
|
||||
# Input to GitHub JSON
|
||||
content: "[-a-zA-Z=;:/0-9+]*="
|
||||
|
||||
# Python stringprefix / binaryprefix
|
||||
# Note that there's a high false positive rate, remove the `?=` and search for the regex to see if the matches seem like reasonable strings
|
||||
(?<!')\b(?:B|BR|Br|F|FR|Fr|R|RB|RF|Rb|Rf|U|UR|Ur|b|bR|br|f|fR|fr|r|rB|rF|rb|rf|u|uR|ur)'(?:[A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,})
|
||||
|
||||
# Regular expressions for (P|p)assword
|
||||
\([A-Z]\|[a-z]\)[a-z]+
|
||||
|
||||
# JavaScript regular expressions
|
||||
# javascript test regex
|
||||
/.*/[gim]*\.test\(
|
||||
# javascript match regex
|
||||
\.match\(/[^/\s"]*/[gim]*\s*
|
||||
# javascript match regex
|
||||
\.match\(/\\[b].*?/[gim]*\s*\)(?:;|$)
|
||||
# javascript regex
|
||||
^\s*/\\[b].*/[gim]*\s*(?:\)(?:;|$)|,$)
|
||||
# javascript replace regex
|
||||
\.replace\(/[^/\s"]*/[gim]*\s*,
|
||||
|
||||
# Go regular expressions
|
||||
regexp?\.MustCompile\(`[^`]*`\)
|
||||
|
||||
# sed regular expressions
|
||||
sed 's/(?:[^/]*?[a-zA-Z]{3,}[^/]*?/){2}
|
||||
|
||||
# go install
|
||||
go install(?:\s+[a-z]+\.[-@\w/.]+)+
|
||||
|
||||
# kubernetes pod status lists
|
||||
# https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase
|
||||
\w+(?:-\w+)+\s+\d+/\d+\s+(?:Running|Pending|Succeeded|Failed|Unknown)\s+
|
||||
|
||||
# kubectl - pods in CrashLoopBackOff
|
||||
\w+-[0-9a-f]+-\w+\s+\d+/\d+\s+CrashLoopBackOff\s+
|
||||
|
||||
# kubernetes object suffix
|
||||
-[0-9a-f]{10}-\w{5}\s
|
||||
|
||||
# posthog secrets
|
||||
posthog\.init\((['"])phc_[^"',]+\g{-1},
|
||||
|
||||
# xcode
|
||||
|
||||
# xcodeproject scenes
|
||||
(?:Controller|ID|id)="\w{3}-\w{2}-\w{3}"
|
||||
|
||||
# xcode api botches
|
||||
customObjectInstantitationMethod
|
||||
|
||||
# font awesome classes
|
||||
\.fa-[-a-z0-9]+
|
||||
|
||||
# Update Lorem based on your content (requires `ge` and `w` from https://github.com/jsoref/spelling; and `review` from https://github.com/check-spelling/check-spelling/wiki/Looking-for-items-locally )
|
||||
# grep '^[^#].*lorem' .github/actions/spelling/patterns.txt|perl -pne 's/.*i..\?://;s/\).*//' |tr '|' "\n"|sort -f |xargs -n1 ge|perl -pne 's/^[^:]*://'|sort -u|w|sed -e 's/ .*//'|w|review -
|
||||
# Warning, while `(?i)` is very neat and fancy, if you have some binary files that aren't proper unicode, you might run into:
|
||||
## Operation "substitution (s///)" returns its argument for non-Unicode code point 0x1C19AE (the code point will vary).
|
||||
## You could manually change `(?i)X...` to use `[Xx]...`
|
||||
## or you could add the files to your `excludes` file (a version after 0.0.19 should identify the file path)
|
||||
# Lorem
|
||||
(?:\w|\s|[,.])*\b(?i)(?:amet|consectetur|cursus|dolor|eros|ipsum|lacus|libero|ligula|lorem|magna|neque|nulla|suscipit|tempus)\b(?:\w|\s|[,.])*
|
||||
|
||||
# Non-English
|
||||
[a-zA-Z]*[ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3}[a-zA-ZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]*
|
||||
|
||||
# French
|
||||
# This corpus only had capital letters, but you probably want lowercase ones as well.
|
||||
\b[LN]'+[a-z]{2,}\b
|
||||
|
||||
# latex
|
||||
\\(?:n(?:ew|ormal|osub)|r(?:enew)|t(?:able(?:of|)|he|itle))(?=[a-z]+)
|
||||
|
||||
# the negative lookahead here is to allow catching 'templatesz' as a misspelling
|
||||
# but to otherwise recognize a Windows path with \templates\foo.template or similar:
|
||||
\\(?:necessary|r(?:eport|esolve[dr]?|esult)|t(?:arget|emplates?))(?![a-z])
|
||||
# ignore long runs of a single character:
|
||||
\b([A-Za-z])\g{-1}{3,}\b
|
||||
# Note that the next example is no longer necessary if you are using
|
||||
# to match a string starting with a `#`, use a character-class:
|
||||
[#]backwards
|
||||
# version suffix <word>v#
|
||||
(?:(?<=[A-Z]{2})V|(?<=[a-z]{2}|[A-Z]{2})v)\d+(?:\b|(?=[a-zA-Z_]))
|
||||
# Compiler flags (Scala)
|
||||
(?:^|[\t ,>"'`=(])-J-[DPWXY](?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,})
|
||||
# Compiler flags
|
||||
#(?:^|[\t ,"'`=(])-[DPWXYLlf](?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,})
|
||||
|
||||
# Compiler flags (linker)
|
||||
,-B
|
||||
# curl arguments
|
||||
\b(?:\\n|)curl(?:\s+-[a-zA-Z]{1,2}\b)*(?:\s+-[a-zA-Z]{3,})(?:\s+-[a-zA-Z]+)*
|
||||
# set arguments
|
||||
\bset(?:\s+-[abefimouxE]{1,2})*\s+-[abefimouxE]{3,}(?:\s+-[abefimouxE]+)*
|
||||
# tar arguments
|
||||
\b(?:\\n|)g?tar(?:\.exe|)(?:(?:\s+--[-a-zA-Z]+|\s+-[a-zA-Z]+|\s[ABGJMOPRSUWZacdfh-pr-xz]+\b)(?:=[^ ]*|))+
|
||||
# tput arguments -- https://man7.org/linux/man-pages/man5/terminfo.5.html -- technically they can be more than 5 chars long...
|
||||
\btput\s+(?:(?:-[SV]|-T\s*\w+)\s+)*\w{3,5}\b
|
||||
# macOS temp folders
|
||||
/var/folders/\w\w/[+\w]+/(?:T|-Caches-)/
|
||||
107
.github/actions/spell-check/excludes.txt
vendored
Normal file
107
.github/actions/spell-check/excludes.txt
vendored
Normal file
@@ -0,0 +1,107 @@
|
||||
# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-excludes
|
||||
(?:^|/)(?i)COPYRIGHT
|
||||
(?:^|/)(?i)LICEN[CS]E
|
||||
(?:^|/)3rdparty/
|
||||
(?:^|/)go\.sum$
|
||||
(?:^|/)MonacoPreviewHandler/customLanguages/
|
||||
(?:^|/)MonacoPreviewHandler/generateLanguagesJson.html
|
||||
(?:^|/)MonacoPreviewHandler/index.html
|
||||
(?:^|/)MonacoPreviewHandler/monaco_languages.json
|
||||
(?:^|/)MonacoPreviewHandler/monacoSpecialLanguages.js
|
||||
(?:^|/)monacoSRC/
|
||||
(?:^|/)package(?:-lock|)\.json$
|
||||
(?:^|/)timezones\.json$
|
||||
(?:^|/)vendor/
|
||||
(?:^|/)WindowsSettings\.json$
|
||||
/package(?:-lock|)\.json$
|
||||
/pinyindb/
|
||||
/settings-html/
|
||||
[/.][a-z]{2}(?:-[a-zA-Z]{2}|)\.
|
||||
\.a$
|
||||
\.ai$
|
||||
\.avi$
|
||||
\.bmp$
|
||||
\.bz2$
|
||||
\.class$
|
||||
\.crt$
|
||||
\.dat$
|
||||
\.dll$
|
||||
\.docx?$
|
||||
\.drawio$
|
||||
\.DS_Store$
|
||||
\.eot$
|
||||
\.exe$
|
||||
\.filters$
|
||||
\.gcode$
|
||||
\.gif$
|
||||
\.gitattributes$
|
||||
\.gitignore$
|
||||
\.graffle$
|
||||
\.gz$
|
||||
\.icns$
|
||||
\.ico$
|
||||
\.jar$
|
||||
\.jks$
|
||||
\.jpe?g$
|
||||
\.key$
|
||||
\.lcl$
|
||||
\.lib$
|
||||
\.lock$
|
||||
\.map$
|
||||
\.min\..
|
||||
\.mod$
|
||||
\.mp[34]$
|
||||
\.o$
|
||||
\.ocf$
|
||||
\.otf$
|
||||
\.pdf$
|
||||
\.pem$
|
||||
\.PNG$
|
||||
\.png$
|
||||
\.psd$
|
||||
\.pyc$
|
||||
\.s$
|
||||
\.stl$
|
||||
\.svg$
|
||||
\.svgz?$
|
||||
\.tar$
|
||||
\.tiff?$
|
||||
\.ttf$
|
||||
\.wav$
|
||||
\.webm$
|
||||
\.webp$
|
||||
\.woff2?$
|
||||
\.xlsx?$
|
||||
\.zip$
|
||||
^\.github/actions/spell-check/
|
||||
^\.gitmodules$
|
||||
^\Q.github/workflows/spelling2.yml\E$
|
||||
^\Q.pipelines/ESRPSigning_core.json\E$
|
||||
^\Qinstaller/PowerToysSetup/Settings.wxs\E$
|
||||
^\Qsrc/common/ManagedCommon/ColorFormatHelper.cs\E$
|
||||
^\Qsrc/modules/colorPicker/ColorPickerUI/Shaders/GridShader.cso\E$
|
||||
^\Qsrc/modules/MouseUtils/MouseJumpUI/MainForm.resx\E$
|
||||
^\Qsrc/settings-ui/Settings.UI.UnitTests/BackwardsCompatibility/TestFiles/CorruptJson/Microsoft/PowerToys/settings.json\E$
|
||||
^\Qsrc/settings-ui/Settings.UI.UnitTests/BackwardsCompatibility/TestFiles/v0.18.2/Microsoft/PowerToys/PowerRename/power-rename-ui-flags\E$
|
||||
^\Qsrc/settings-ui/Settings.UI.UnitTests/BackwardsCompatibility/TestFiles/v0.19.2/Microsoft/PowerToys/PowerRename/power-rename-ui-flags\E$
|
||||
^\Qsrc/settings-ui/Settings.UI.UnitTests/BackwardsCompatibility/TestFiles/v0.20.1/Microsoft/PowerToys/PowerRename/power-rename-ui-flags\E$
|
||||
^\Qsrc/settings-ui/Settings.UI.UnitTests/BackwardsCompatibility/TestFiles/V0.21.1/Microsoft/PowerToys/FancyZones/settings.json\E$
|
||||
^\Qsrc/settings-ui/Settings.UI.UnitTests/BackwardsCompatibility/TestFiles/V0.21.1/Microsoft/PowerToys/PowerRename/power-rename-ui-flags\E$
|
||||
^\Qsrc/settings-ui/Settings.UI.UnitTests/BackwardsCompatibility/TestFiles/v0.22.0/Microsoft/PowerToys/FancyZones/settings.json\E$
|
||||
^\Qsrc/settings-ui/Settings.UI.UnitTests/BackwardsCompatibility/TestFiles/v0.22.0/Microsoft/PowerToys/PowerRename/power-rename-ui-flags\E$
|
||||
^\Qtools/project_template/ModuleTemplate/resource.h\E$
|
||||
^doc/devdocs/akaLinks\.md$
|
||||
^installer/PowerToysSetup/WebView2/MicrosoftEdgeWebview2Setup.exe$
|
||||
^src/common/logger/logger\.vcxproj\.filters$
|
||||
^src/common/notifications/BackgroundActivatorDLL/BackgroundActivator\.vcxproj\.filters$
|
||||
^src/common/notifications/BackgroundActivatorDLL/cpp\.hint$
|
||||
^src/modules/colorPicker/ColorPickerUI/Resources/colorPicker\.cur$
|
||||
^src/modules/fancyzones/lib/FancyZonesWinHookEventIDs\.h$
|
||||
^src/modules/imageresizer/dll/ContextMenuHandler\.rgs$
|
||||
^src/modules/imageresizer/dll/ImageResizerExt\.rgs$
|
||||
^src/modules/powerrename/testapp/PowerRenameTest\.vcxproj\.filters$
|
||||
^src/modules/previewpane/PreviewPaneUnitTests/HelperFiles/MarkdownWithHTMLImageTag\.txt$
|
||||
^src/modules/previewpane/UnitTests-MarkdownPreviewHandler/HelperFiles/MarkdownWithHTMLImageTag.txt$
|
||||
^tools/CleanUp_tool/CleanUp_tool\.vcxproj\.filters$
|
||||
^tools/Verification scripts/Check preview handler registration\.ps1$
|
||||
ignore$
|
||||
2280
.github/actions/spell-check/expect.txt
vendored
Normal file
2280
.github/actions/spell-check/expect.txt
vendored
Normal file
File diff suppressed because it is too large
Load Diff
62
.github/actions/spell-check/line_forbidden.patterns
vendored
Normal file
62
.github/actions/spell-check/line_forbidden.patterns
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
# reject `m_data` as there's a certain OS which has evil defines that break things if it's used elsewhere
|
||||
# \bm_data\b
|
||||
|
||||
# If you have a framework that uses `it()` for testing and `fit()` for debugging a specific test,
|
||||
# you might not want to check in code where you were debugging w/ `fit()`, in which case, you might want
|
||||
# to use this:
|
||||
#\bfit\(
|
||||
|
||||
# s.b. GitHub
|
||||
\bGithub\b
|
||||
|
||||
# s.b. GitLab
|
||||
\bGitlab\b
|
||||
|
||||
# s.b. JavaScript
|
||||
\bJavascript\b
|
||||
|
||||
# s.b. Microsoft
|
||||
\bMicroSoft\b
|
||||
|
||||
# s.b. another
|
||||
\ban[- ]other\b
|
||||
|
||||
# s.b. greater than
|
||||
\bgreater then\b
|
||||
|
||||
# s.b. into
|
||||
\sin to\s
|
||||
|
||||
# s.b. opt-in
|
||||
\sopt in\s
|
||||
|
||||
# s.b. less than
|
||||
\bless then\b
|
||||
|
||||
# s.b. otherwise
|
||||
\bother[- ]wise\b
|
||||
|
||||
# s.b. nonexistent
|
||||
\bnon existing\b
|
||||
\b[Nn]o[nt][- ]existent\b
|
||||
|
||||
# s.b. preexisting
|
||||
[Pp]re[- ]existing
|
||||
|
||||
# s.b. preempt
|
||||
[Pp]re[- ]empt\b
|
||||
|
||||
# s.b. preemptively
|
||||
[Pp]re[- ]emptively
|
||||
|
||||
# s.b. reentrancy
|
||||
[Rr]e[- ]entrancy
|
||||
|
||||
# s.b. reentrant
|
||||
[Rr]e[- ]entrant
|
||||
|
||||
# s.b. workaround(s)
|
||||
#\bwork[- ]arounds?\b
|
||||
|
||||
# Reject duplicate words
|
||||
\s([A-Z]{3,}|[A-Z][a-z]{2,}|[a-z]{3,})\s\g{-1}\s
|
||||
182
.github/actions/spell-check/patterns.txt
vendored
Normal file
182
.github/actions/spell-check/patterns.txt
vendored
Normal file
@@ -0,0 +1,182 @@
|
||||
# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns
|
||||
|
||||
# Automatically suggested patterns
|
||||
# hit-count: 2206 file-count: 617
|
||||
# IServiceProvider
|
||||
\bI(?=(?:[A-Z][a-z]{2,})+\b)
|
||||
|
||||
# hit-count: 111 file-count: 57
|
||||
# hex runs
|
||||
\b[0-9a-fA-F]{16,}\b
|
||||
|
||||
# hit-count: 89 file-count: 36
|
||||
# GitHub SHAs (markdown)
|
||||
(?:\[`?[0-9a-f]+`?\]\(https:/|)/(?:www\.|)github\.com(?:/[^/\s"]+){2,}(?:/[^/\s")]+)(?:[0-9a-f]+(?:[-0-9a-zA-Z/#.]*|)\b|)
|
||||
|
||||
# hit-count: 67 file-count: 59
|
||||
# w3
|
||||
\bw3\.org/[-0-9a-zA-Z/#.]+
|
||||
|
||||
# hit-count: 47 file-count: 3
|
||||
# Contributor
|
||||
\[[^\]]+\]\(https://github\.com/[^/\s"]+\)
|
||||
|
||||
# hit-count: 45 file-count: 2
|
||||
# Non-English
|
||||
[a-zA-Z]*[ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3}[a-zA-ZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]*
|
||||
|
||||
# hit-count: 22 file-count: 18
|
||||
# stackexchange -- https://stackexchange.com/feeds/sites
|
||||
\b(?:askubuntu|serverfault|stack(?:exchange|overflow)|superuser).com/(?:questions/\w+/[-\w]+|a/)
|
||||
|
||||
# hit-count: 7 file-count: 3
|
||||
# Wikipedia
|
||||
\ben\.wikipedia\.org/wiki/[-\w%.#]+
|
||||
|
||||
# hit-count: 5 file-count: 3
|
||||
# vs devops
|
||||
\bvisualstudio.com(?::443|)/[-\w/?=%&.]*
|
||||
|
||||
# hit-count: 3 file-count: 3
|
||||
# githubusercontent
|
||||
/[-a-z0-9]+\.githubusercontent\.com/[-a-zA-Z0-9?&=_\/.]*
|
||||
|
||||
# hit-count: 2 file-count: 2
|
||||
# mailto urls
|
||||
mailto:[-a-zA-Z=;:/?%&0-9+@.]{3,}
|
||||
|
||||
https?://(?:(?:www\.|)youtube\.com|youtu.be)/[-a-zA-Z0-9?&=]*
|
||||
# GitHub SHAs
|
||||
\bapi.github\.com/repos/[^/]+/[^/]+/[^/]+/[0-9a-f]+\b
|
||||
://github\.(?:com|blog)/[^\w")]+
|
||||
(?:\[[0-9a-f]+\]\(https:/|)/github\.com/[^/]+/[^/]+/[^/]+/[0-9a-f]+(?:[-0-9a-zA-Z/#.]*|)\b
|
||||
# githubusercontent
|
||||
://githubusercontent\.com/[^\w")]+
|
||||
# gist github
|
||||
/gist\.github\.com/[^/]+/[0-9a-f]+
|
||||
|
||||
# msdn
|
||||
\b(?:download\.visualstudio|docs|msdn|learn)\.microsoft\.com/[-_a-zA-Z0-9()=./]*
|
||||
|
||||
# medium
|
||||
link\.medium\.com/[a-zA-Z0-9]+
|
||||
\bmedium\.com/\@[^/]+/[-\w]+
|
||||
|
||||
# experimentation urls
|
||||
https?://default\.exp-tas\.com/[-_a-zA-Z0-9/]*
|
||||
|
||||
publicKeyToken=(['"]|)[0-9a-f]+\g{-1}
|
||||
\@sha256:[0-9a-f]{64}\b
|
||||
|
||||
# data urls
|
||||
(['"])data:.*?\g{-1}
|
||||
data:[-a-zA-Z=;:/0-9+]*,\S*
|
||||
|
||||
# uuid: (or CompGUIDPrefix)
|
||||
L?(["']|[-<({>]|\b)[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{10,12}(?:\g{-1}|[<})>])
|
||||
|
||||
# c99 hex digits (not the full format, just one I've seen)
|
||||
0x[0-9a-fA-F](?:\.[0-9a-fA-F]*|)[pP]
|
||||
|
||||
# URL escaped characters
|
||||
\%[0-9A-F]{2}
|
||||
|
||||
# wregex
|
||||
std::wregex\(L"[^"]*"\)
|
||||
|
||||
# hash
|
||||
Hash="[0-9A-F]{40}"
|
||||
# SHA256 hash
|
||||
'[0-9A-F]{64}'
|
||||
|
||||
# hex digits including css/html color classes:
|
||||
(?:[\\0][xX]|\\u|[uU]\+|#x?|\%23|L")[0-9a-fA-FgGrR_]{2,}(?:[uU]?[lL]{0,2}|u\d+)\b
|
||||
|
||||
(?:L"[abAB]+", ){3}L"[abAB]+"
|
||||
"Lorem[^"]+?\."
|
||||
TestCase\("[^"]+"
|
||||
|
||||
# Test line with hexadecimal colors
|
||||
\[DataRow\("[0-9A-F]{6}", \d{3}, \d{3}, \d{3}\)\]
|
||||
\[DataRow\("[0-9A-F]{6}", \d{3}.\d{1}, \d{3}.\d{1}, \d{3}.\d{1}\)\]
|
||||
\[DataRow\("[0-9A-F]{6}", "[BCGMRY]\d\d?", \d{3}, \d{3}\)\]
|
||||
|
||||
# version suffix <word>v#
|
||||
[Vv]\d+(?:\b|(?=[a-zA-Z_]))
|
||||
|
||||
# Windows paths
|
||||
\\native
|
||||
\\netcoreapp
|
||||
\\netstandard
|
||||
\\network
|
||||
\\notifications
|
||||
\\recyclebin
|
||||
\\Registry
|
||||
\\registry
|
||||
\\reinstall
|
||||
\\Resize
|
||||
\\resource
|
||||
\\Resources
|
||||
\\restart
|
||||
\\restore
|
||||
\\result
|
||||
\\rotating
|
||||
\\runner
|
||||
\\runtimes
|
||||
\\Telemetry
|
||||
\\telemetry
|
||||
\\testapp
|
||||
\\tests
|
||||
\\tools
|
||||
|
||||
# plugin.json
|
||||
^ "ID": "[0-9A-F]{32}",$
|
||||
|
||||
# UnitTests
|
||||
\[DataRow\(.*\)\]
|
||||
|
||||
# Id info inside markdown file (registry.md)
|
||||
^\|\s+ID\s+\|\s*\`[0-9A-F]{32}\`
|
||||
|
||||
# TestCase strings intentionally have non dictionary items
|
||||
\[TestCase\(new string.*\]
|
||||
|
||||
# D2D
|
||||
D?2D
|
||||
|
||||
# marker for ignoring a comment to the end of the line
|
||||
^.*/\* #no-spell-check-line \*/.*$
|
||||
// #no-spell-check.*$
|
||||
|
||||
http://tes/
|
||||
|
||||
# tar arguments
|
||||
\b(?:\\n|)tar(?:\s+-[a-zA-Z]+|\s[a-z]+)+
|
||||
|
||||
# fabricbot.json
|
||||
"id": "\S+"
|
||||
"commentPattern": ".*"
|
||||
# Questionably acceptable forms of `in to`
|
||||
# Personally, I prefer `log into`, but people object
|
||||
# https://www.tprteaching.com/log-into-log-in-to-login/
|
||||
\b[Ll]og in to\b
|
||||
|
||||
# acceptable duplicates
|
||||
# ls directory listings
|
||||
# /bin/ls -l output
|
||||
[-bcdlpsw](?:[-r][-w][-sx]){3}\s+\d+\s+(\S+)\s+\g{-1}\s+\d+\s+
|
||||
# C types and repeated CSS values
|
||||
\s(center|div|inherit|long|LONG|none|normal|solid|thin|transparent|very)(?: \g{-1})+\s
|
||||
# go templates
|
||||
\s(\w+)\s+\g{-1}\s+\`(?:graphql|json|yaml):
|
||||
# javadoc / .net
|
||||
(?:[\\@](?:groupname|param)|(?:public|private)(?:\s+static|\s+readonly)*)\s+(\w+)\s+\g{-1}\s
|
||||
|
||||
# Commit message -- Signed-off-by and friends
|
||||
^\s*(?:(?:Based-on-patch|Co-authored|Helped|Mentored|Reported|Reviewed|Signed-off)-by|Thanks-to): (?:[^<]*<[^>]*>|[^<]*)\s*$
|
||||
|
||||
# Autogenerated revert commit message
|
||||
^This reverts commit [0-9a-f]{40}\.$
|
||||
|
||||
# ignore long runs of a single character:
|
||||
\b([A-Za-z])\g{-1}{3,}\b
|
||||
10
.github/actions/spell-check/reject.txt
vendored
Normal file
10
.github/actions/spell-check/reject.txt
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
^attache$
|
||||
benefitting
|
||||
occurences?
|
||||
^dependan.*
|
||||
^oer$
|
||||
Sorce
|
||||
^[Ss]pae.*
|
||||
^untill$
|
||||
^untilling$
|
||||
^wether.*
|
||||
6
.github/dependabot.yml
vendored
Normal file
6
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
929
.github/fabricbot.json
vendored
Normal file
929
.github/fabricbot.json
vendored
Normal file
@@ -0,0 +1,929 @@
|
||||
{
|
||||
"version": "1.0",
|
||||
"tasks": [
|
||||
{
|
||||
"taskType": "trigger",
|
||||
"capabilityId": "IssueResponder",
|
||||
"subCapability": "IssuesOnlyResponder",
|
||||
"version": "1.0",
|
||||
"config": {
|
||||
"taskName": "Add needs triage label to new issues",
|
||||
"conditions": {
|
||||
"operator": "and",
|
||||
"operands": [
|
||||
{
|
||||
"name": "isAction",
|
||||
"parameters": {
|
||||
"action": "opened"
|
||||
}
|
||||
},
|
||||
{
|
||||
"operator": "not",
|
||||
"operands": [
|
||||
{
|
||||
"name": "isPartOfProject",
|
||||
"parameters": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"operator": "not",
|
||||
"operands": [
|
||||
{
|
||||
"name": "isAssignedToSomeone",
|
||||
"parameters": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"actions": [
|
||||
{
|
||||
"name": "addLabel",
|
||||
"parameters": {
|
||||
"label": "Needs-Triage"
|
||||
}
|
||||
}
|
||||
],
|
||||
"eventType": "issue",
|
||||
"eventNames": [
|
||||
"issues",
|
||||
"project_card"
|
||||
]
|
||||
},
|
||||
"id": "eUOhvA_62"
|
||||
},
|
||||
{
|
||||
"taskType": "trigger",
|
||||
"capabilityId": "IssueResponder",
|
||||
"subCapability": "IssueCommentResponder",
|
||||
"version": "1.0",
|
||||
"config": {
|
||||
"taskName": "Replace needs author feedback label with needs attention label when the author comments on an issue",
|
||||
"conditions": {
|
||||
"operator": "and",
|
||||
"operands": [
|
||||
{
|
||||
"name": "isAction",
|
||||
"parameters": {
|
||||
"action": "created"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "isActivitySender",
|
||||
"parameters": {
|
||||
"user": {
|
||||
"type": "author"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "hasLabel",
|
||||
"parameters": {
|
||||
"label": "Needs-Author-Feedback"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "isOpen",
|
||||
"parameters": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
"actions": [
|
||||
{
|
||||
"name": "addLabel",
|
||||
"parameters": {
|
||||
"label": "Needs-Triage"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "removeLabel",
|
||||
"parameters": {
|
||||
"label": "Needs-Author-Feedback"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "addLabel",
|
||||
"parameters": {
|
||||
"label": "Needs-Team-Response"
|
||||
}
|
||||
}
|
||||
],
|
||||
"eventType": "issue",
|
||||
"eventNames": [
|
||||
"issue_comment"
|
||||
]
|
||||
},
|
||||
"id": "kgfxdBIu_9"
|
||||
},
|
||||
{
|
||||
"taskType": "trigger",
|
||||
"capabilityId": "IssueResponder",
|
||||
"subCapability": "IssuesOnlyResponder",
|
||||
"version": "1.0",
|
||||
"config": {
|
||||
"taskName": "Remove no recent activity label from issues",
|
||||
"conditions": {
|
||||
"operator": "and",
|
||||
"operands": [
|
||||
{
|
||||
"operator": "not",
|
||||
"operands": [
|
||||
{
|
||||
"name": "isAction",
|
||||
"parameters": {
|
||||
"action": "closed"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "hasLabel",
|
||||
"parameters": {
|
||||
"label": "Status-No recent activity"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"actions": [
|
||||
{
|
||||
"name": "removeLabel",
|
||||
"parameters": {
|
||||
"label": "Status-No recent activity"
|
||||
}
|
||||
}
|
||||
],
|
||||
"eventType": "issue",
|
||||
"eventNames": [
|
||||
"issues",
|
||||
"project_card"
|
||||
]
|
||||
},
|
||||
"id": "eR-TaGJJzW",
|
||||
"disabled": false
|
||||
},
|
||||
{
|
||||
"taskType": "trigger",
|
||||
"capabilityId": "IssueResponder",
|
||||
"subCapability": "IssueCommentResponder",
|
||||
"version": "1.0",
|
||||
"config": {
|
||||
"taskName": "Remove no recent activity label when an issue is commented on",
|
||||
"conditions": {
|
||||
"operator": "and",
|
||||
"operands": [
|
||||
{
|
||||
"name": "hasLabel",
|
||||
"parameters": {
|
||||
"label": "Status-No recent activity"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"actions": [
|
||||
{
|
||||
"name": "removeLabel",
|
||||
"parameters": {
|
||||
"label": "Status-No recent activity"
|
||||
}
|
||||
}
|
||||
],
|
||||
"eventType": "issue",
|
||||
"eventNames": [
|
||||
"issue_comment"
|
||||
]
|
||||
},
|
||||
"id": "tXKeoDht_g",
|
||||
"disabled": false
|
||||
},
|
||||
{
|
||||
"taskType": "scheduled",
|
||||
"capabilityId": "ScheduledSearch",
|
||||
"subCapability": "ScheduledSearch",
|
||||
"version": "1.1",
|
||||
"config": {
|
||||
"taskName": "Close stale issues",
|
||||
"frequency": [
|
||||
{
|
||||
"weekDay": 0,
|
||||
"hours": [
|
||||
1,
|
||||
7,
|
||||
13,
|
||||
19
|
||||
]
|
||||
},
|
||||
{
|
||||
"weekDay": 1,
|
||||
"hours": [
|
||||
1,
|
||||
7,
|
||||
13,
|
||||
19
|
||||
]
|
||||
},
|
||||
{
|
||||
"weekDay": 2,
|
||||
"hours": [
|
||||
1,
|
||||
7,
|
||||
13,
|
||||
19
|
||||
]
|
||||
},
|
||||
{
|
||||
"weekDay": 3,
|
||||
"hours": [
|
||||
1,
|
||||
7,
|
||||
13,
|
||||
19
|
||||
]
|
||||
},
|
||||
{
|
||||
"weekDay": 4,
|
||||
"hours": [
|
||||
1,
|
||||
7,
|
||||
13,
|
||||
19
|
||||
]
|
||||
},
|
||||
{
|
||||
"weekDay": 5,
|
||||
"hours": [
|
||||
1,
|
||||
7,
|
||||
13,
|
||||
19
|
||||
]
|
||||
},
|
||||
{
|
||||
"weekDay": 6,
|
||||
"hours": [
|
||||
1,
|
||||
7,
|
||||
13,
|
||||
19
|
||||
]
|
||||
}
|
||||
],
|
||||
"searchTerms": [
|
||||
{
|
||||
"name": "isIssue",
|
||||
"parameters": {}
|
||||
},
|
||||
{
|
||||
"name": "isOpen",
|
||||
"parameters": {}
|
||||
},
|
||||
{
|
||||
"name": "hasLabel",
|
||||
"parameters": {
|
||||
"label": "Needs-Author-Feedback"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "hasLabel",
|
||||
"parameters": {
|
||||
"label": "Status-No recent activity"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "noActivitySince",
|
||||
"parameters": {
|
||||
"days": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"actions": [
|
||||
{
|
||||
"name": "closeIssue",
|
||||
"parameters": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
"id": "8yr-nVZj9k",
|
||||
"disabled": false
|
||||
},
|
||||
{
|
||||
"taskType": "scheduled",
|
||||
"capabilityId": "ScheduledSearch",
|
||||
"subCapability": "ScheduledSearch",
|
||||
"version": "1.1",
|
||||
"config": {
|
||||
"taskName": "Add no recent activity label to issues",
|
||||
"frequency": [
|
||||
{
|
||||
"weekDay": 0,
|
||||
"hours": [
|
||||
2,
|
||||
8,
|
||||
14,
|
||||
20
|
||||
]
|
||||
},
|
||||
{
|
||||
"weekDay": 1,
|
||||
"hours": [
|
||||
2,
|
||||
8,
|
||||
14,
|
||||
20
|
||||
]
|
||||
},
|
||||
{
|
||||
"weekDay": 2,
|
||||
"hours": [
|
||||
2,
|
||||
8,
|
||||
14,
|
||||
20
|
||||
]
|
||||
},
|
||||
{
|
||||
"weekDay": 3,
|
||||
"hours": [
|
||||
2,
|
||||
8,
|
||||
14,
|
||||
20
|
||||
]
|
||||
},
|
||||
{
|
||||
"weekDay": 4,
|
||||
"hours": [
|
||||
2,
|
||||
8,
|
||||
14,
|
||||
20
|
||||
]
|
||||
},
|
||||
{
|
||||
"weekDay": 5,
|
||||
"hours": [
|
||||
2,
|
||||
8,
|
||||
14,
|
||||
20
|
||||
]
|
||||
},
|
||||
{
|
||||
"weekDay": 6,
|
||||
"hours": [
|
||||
2,
|
||||
8,
|
||||
14,
|
||||
20
|
||||
]
|
||||
}
|
||||
],
|
||||
"searchTerms": [
|
||||
{
|
||||
"name": "isIssue",
|
||||
"parameters": {}
|
||||
},
|
||||
{
|
||||
"name": "isOpen",
|
||||
"parameters": {}
|
||||
},
|
||||
{
|
||||
"name": "hasLabel",
|
||||
"parameters": {
|
||||
"label": "Needs-Author-Feedback"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "noActivitySince",
|
||||
"parameters": {
|
||||
"days": 5
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "noLabel",
|
||||
"parameters": {
|
||||
"label": "Status-No recent activity"
|
||||
}
|
||||
}
|
||||
],
|
||||
"actions": [
|
||||
{
|
||||
"name": "addLabel",
|
||||
"parameters": {
|
||||
"label": "Status-No recent activity"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "addReply",
|
||||
"parameters": {
|
||||
"comment": "This issue has been automatically marked as stale because it has been marked as requiring author feedback but has not had any activity for **5 days**. It will be closed if no further activity occurs **within 5 days of this comment**."
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"id": "DAhxoYjVcq",
|
||||
"disabled": false
|
||||
},
|
||||
{
|
||||
"taskType": "scheduled",
|
||||
"capabilityId": "ScheduledSearch",
|
||||
"subCapability": "ScheduledSearch",
|
||||
"version": "1.1",
|
||||
"config": {
|
||||
"taskName": "Close duplicate issues",
|
||||
"frequency": [
|
||||
{
|
||||
"weekDay": 0,
|
||||
"hours": [
|
||||
3,
|
||||
9,
|
||||
15,
|
||||
21
|
||||
]
|
||||
},
|
||||
{
|
||||
"weekDay": 1,
|
||||
"hours": [
|
||||
3,
|
||||
9,
|
||||
15,
|
||||
21
|
||||
]
|
||||
},
|
||||
{
|
||||
"weekDay": 2,
|
||||
"hours": [
|
||||
3,
|
||||
9,
|
||||
15,
|
||||
21
|
||||
]
|
||||
},
|
||||
{
|
||||
"weekDay": 3,
|
||||
"hours": [
|
||||
3,
|
||||
9,
|
||||
15,
|
||||
21
|
||||
]
|
||||
},
|
||||
{
|
||||
"weekDay": 4,
|
||||
"hours": [
|
||||
3,
|
||||
9,
|
||||
15,
|
||||
21
|
||||
]
|
||||
},
|
||||
{
|
||||
"weekDay": 5,
|
||||
"hours": [
|
||||
3,
|
||||
9,
|
||||
15,
|
||||
21
|
||||
]
|
||||
},
|
||||
{
|
||||
"weekDay": 6,
|
||||
"hours": [
|
||||
3,
|
||||
9,
|
||||
15,
|
||||
21
|
||||
]
|
||||
}
|
||||
],
|
||||
"searchTerms": [
|
||||
{
|
||||
"name": "isIssue",
|
||||
"parameters": {}
|
||||
},
|
||||
{
|
||||
"name": "isOpen",
|
||||
"parameters": {}
|
||||
},
|
||||
{
|
||||
"name": "hasLabel",
|
||||
"parameters": {
|
||||
"label": "Resolution-Duplicate"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "noActivitySince",
|
||||
"parameters": {
|
||||
"days": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"actions": [
|
||||
{
|
||||
"name": "addReply",
|
||||
"parameters": {
|
||||
"comment": "This issue has been marked as duplicate and has not had any activity for **1 day**. It will be closed for housekeeping purposes."
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "closeIssue",
|
||||
"parameters": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
"id": "xGhARy1H0w"
|
||||
},
|
||||
{
|
||||
"taskType": "trigger",
|
||||
"capabilityId": "InPrLabel",
|
||||
"subCapability": "InPrLabel",
|
||||
"version": "1.0",
|
||||
"config": {
|
||||
"taskName": "Add 'In-PR' label on issue when an open pull request is targeting it",
|
||||
"inPrLabelText": "Status: In PR",
|
||||
"fixedLabelText": "Status: Fixed",
|
||||
"fixedLabelEnabled": true,
|
||||
"label_fixed": "Resolution-Fix-Committed",
|
||||
"label_inPr": "In progress"
|
||||
},
|
||||
"id": "Rn1tANe62T"
|
||||
},
|
||||
{
|
||||
"taskType": "trigger",
|
||||
"capabilityId": "EmailCleanser",
|
||||
"subCapability": "EmailCleanser",
|
||||
"version": "1.0",
|
||||
"id": "X0O-6aZ1v3_DAmhUIcNb2",
|
||||
"config": {
|
||||
"taskName": "Clean the email stuff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"taskType": "trigger",
|
||||
"capabilityId": "IssueResponder",
|
||||
"subCapability": "IssueCommentResponder",
|
||||
"version": "1.0",
|
||||
"id": "VyV9JJSA8SbOyeWEwjyfL",
|
||||
"config": {
|
||||
"conditions": {
|
||||
"operator": "and",
|
||||
"operands": [
|
||||
{
|
||||
"name": "commentContains",
|
||||
"parameters": {
|
||||
"commentPattern": "\\/(bugreport|reportbug)",
|
||||
"isRegex": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"operator": "or",
|
||||
"operands": [
|
||||
{
|
||||
"name": "activitySenderHasAssociation",
|
||||
"parameters": {
|
||||
"permissions": "admin",
|
||||
"association": "MEMBER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "activitySenderHasAssociation",
|
||||
"parameters": {
|
||||
"association": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "activitySenderHasAssociation",
|
||||
"parameters": {
|
||||
"association": "COLLABORATOR"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"eventType": "issue",
|
||||
"eventNames": [
|
||||
"issue_comment"
|
||||
],
|
||||
"taskName": "Ask for bug report zip file",
|
||||
"actions": [
|
||||
{
|
||||
"name": "removeLabel",
|
||||
"parameters": {
|
||||
"label": "Needs-Triage"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "addLabel",
|
||||
"parameters": {
|
||||
"label": "Needs-Author-Feedback"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "addReply",
|
||||
"parameters": {
|
||||
"comment": "Hi there!<br/><br/>We need a bit more information to really debug this issue. Can you add a \"Report Bug\" zip file here? You right click on our system tray icon and just go to report bug. Then drag the zipfile from your desktop onto the GitHub comment box in this issue. Thanks! <br/>"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "removeLabel",
|
||||
"parameters": {
|
||||
"label": "Needs-Team-Response"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"taskType": "trigger",
|
||||
"capabilityId": "IssueResponder",
|
||||
"subCapability": "IssueCommentResponder",
|
||||
"version": "1.0",
|
||||
"id": "bvMkigH2HPgUniYFCNco9",
|
||||
"config": {
|
||||
"conditions": {
|
||||
"operator": "and",
|
||||
"operands": [
|
||||
{
|
||||
"name": "commentContains",
|
||||
"parameters": {
|
||||
"isRegex": true,
|
||||
"commentPattern": "\\/feedback[H|h]ub"
|
||||
}
|
||||
},
|
||||
{
|
||||
"operator": "or",
|
||||
"operands": [
|
||||
{
|
||||
"name": "activitySenderHasAssociation",
|
||||
"parameters": {
|
||||
"association": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "activitySenderHasAssociation",
|
||||
"parameters": {
|
||||
"association": "MEMBER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "activitySenderHasAssociation",
|
||||
"parameters": {
|
||||
"association": "COLLABORATOR"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"eventType": "issue",
|
||||
"eventNames": [
|
||||
"issue_comment"
|
||||
],
|
||||
"taskName": "Helper to mark as feedback hub",
|
||||
"actions": [
|
||||
{
|
||||
"name": "addReply",
|
||||
"parameters": {
|
||||
"comment": "Hi! We've identified this issue that best is suited for Windows Feedback Hub. To do this on Windows, WinKey+F will bring it up!"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "closeIssue",
|
||||
"parameters": {}
|
||||
},
|
||||
{
|
||||
"name": "removeLabel",
|
||||
"parameters": {
|
||||
"label": "Needs-Triage"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "removeLabel",
|
||||
"parameters": {
|
||||
"label": "Needs-Team-Response"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "addLabel",
|
||||
"parameters": {
|
||||
"label": "Resolution-Please File on Feedback Hub"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"taskType": "trigger",
|
||||
"capabilityId": "IssueResponder",
|
||||
"subCapability": "IssueCommentResponder",
|
||||
"version": "1.0",
|
||||
"id": "bvMkigH2HPgUniYFCNco8",
|
||||
"config": {
|
||||
"conditions": {
|
||||
"operator": "and",
|
||||
"operands": [
|
||||
{
|
||||
"name": "commentContains",
|
||||
"parameters": {
|
||||
"isRegex": true,
|
||||
"commentPattern": "\\/dup(licate|e)?(\\s+of)?\\s+(#[\\d]+|https)"
|
||||
}
|
||||
},
|
||||
{
|
||||
"operator": "or",
|
||||
"operands": [
|
||||
{
|
||||
"name": "activitySenderHasAssociation",
|
||||
"parameters": {
|
||||
"association": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "activitySenderHasAssociation",
|
||||
"parameters": {
|
||||
"association": "MEMBER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "activitySenderHasAssociation",
|
||||
"parameters": {
|
||||
"association": "COLLABORATOR"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"eventType": "issue",
|
||||
"eventNames": [
|
||||
"issue_comment"
|
||||
],
|
||||
"taskName": "Helper to mark as duplicate",
|
||||
"actions": [
|
||||
{
|
||||
"name": "addReply",
|
||||
"parameters": {
|
||||
"comment": "Hi! We've identified this issue as a duplicate of another one that already exists on this Issue Tracker. This specific instance is being closed in favor of tracking the concern over on the referenced thread. Thanks for your report!"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "closeIssue",
|
||||
"parameters": {}
|
||||
},
|
||||
{
|
||||
"name": "removeLabel",
|
||||
"parameters": {
|
||||
"label": "Needs-Triage"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "removeLabel",
|
||||
"parameters": {
|
||||
"label": "Needs-Team-Response"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "addLabel",
|
||||
"parameters": {
|
||||
"label": "Resolution-Duplicate"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"taskType": "trigger",
|
||||
"capabilityId": "IssueResponder",
|
||||
"subCapability": "IssueCommentResponder",
|
||||
"version": "1.0",
|
||||
"id": "mgZxIoqeF7GWUo7-tZF56",
|
||||
"config": {
|
||||
"conditions": {
|
||||
"operator": "and",
|
||||
"operands": [
|
||||
{
|
||||
"name": "commentContains",
|
||||
"parameters": {
|
||||
"commentPattern": "\\/needinfo",
|
||||
"isRegex": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"operator": "or",
|
||||
"operands": [
|
||||
{
|
||||
"name": "activitySenderHasAssociation",
|
||||
"parameters": {
|
||||
"association": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "activitySenderHasAssociation",
|
||||
"parameters": {
|
||||
"association": "MEMBER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "activitySenderHasAssociation",
|
||||
"parameters": {
|
||||
"association": "COLLABORATOR"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"eventType": "issue",
|
||||
"eventNames": [
|
||||
"issue_comment"
|
||||
],
|
||||
"actions": [
|
||||
{
|
||||
"name": "removeLabel",
|
||||
"parameters": {
|
||||
"label": "Needs-Triage"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "removeLabel",
|
||||
"parameters": {
|
||||
"label": "Needs-Team-Response"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "addLabel",
|
||||
"parameters": {
|
||||
"label": "Needs-Author-Feedback"
|
||||
}
|
||||
}
|
||||
],
|
||||
"taskName": "Author Response needed"
|
||||
}
|
||||
},
|
||||
{
|
||||
"taskType": "trigger",
|
||||
"capabilityId": "IssueResponder",
|
||||
"subCapability": "IssueCommentResponder",
|
||||
"version": "1.0",
|
||||
"id": "mgZxIoqeF7GWUo7-t3773",
|
||||
"config": {
|
||||
"conditions": {
|
||||
"operator": "and",
|
||||
"operands": [
|
||||
{
|
||||
"name": "commentContains",
|
||||
"parameters": {
|
||||
"commentPattern": "\\/loc\\b",
|
||||
"isRegex": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"operator": "or",
|
||||
"operands": [
|
||||
{
|
||||
"name": "activitySenderHasAssociation",
|
||||
"parameters": {
|
||||
"association": "OWNER"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "activitySenderHasAssociation",
|
||||
"parameters": {
|
||||
"association": "MEMBER"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"eventType": "issue",
|
||||
"eventNames": [
|
||||
"issue_comment"
|
||||
],
|
||||
"actions": [
|
||||
{
|
||||
"name": "removeLabel",
|
||||
"parameters": {
|
||||
"label": "Needs-Triage"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "addLabel",
|
||||
"parameters": {
|
||||
"label": "Loc-Sent To Team"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "addReply",
|
||||
"parameters": {
|
||||
"comment": "Hi! Thanks for making us aware of the problem. We raised the issue with our internal localization team. This issue should be fixed hopefully in the next version of PowerToys."
|
||||
}
|
||||
}
|
||||
],
|
||||
"taskName": "Filed ADO item with Localization team"
|
||||
}
|
||||
}
|
||||
],
|
||||
"userGroups": []
|
||||
}
|
||||
21
.github/pull_request_template.md
vendored
21
.github/pull_request_template.md
vendored
@@ -1,19 +1,24 @@
|
||||
<!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? -->
|
||||
## Summary of the Pull Request
|
||||
|
||||
<!-- Other than the issue solved, is this relevant to any other issues/existing PRs? -->
|
||||
## References
|
||||
|
||||
<!-- Please review the items on the PR checklist before submitting-->
|
||||
## PR Checklist
|
||||
* [ ] Closes #xxx
|
||||
* [ ] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/PowerToys) and sign the CLA
|
||||
* [ ] Tests added/passed
|
||||
* [ ] Requires documentation to be updated
|
||||
* [ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx
|
||||
|
||||
- [ ] **Closes:** #xxx
|
||||
- [ ] **Communication:** I've discussed this with core contributors already. If work hasn't been agreed, this work might be rejected
|
||||
- [ ] **Tests:** Added/updated and all pass
|
||||
- [ ] **Localization:** All end user facing strings can be localized
|
||||
- [ ] **Dev docs:** Added/updated
|
||||
- [ ] **New binaries:** Added on the required places
|
||||
- [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries
|
||||
- [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder
|
||||
- [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects
|
||||
- [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
|
||||
- [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx
|
||||
|
||||
<!-- Provide a more detailed description of the PR, other things fixed or any additional comments/features here -->
|
||||
## Detailed Description of the Pull Request / Additional comments
|
||||
|
||||
<!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well -->
|
||||
## Validation Steps Performed
|
||||
|
||||
|
||||
60
.github/workflows/msstore-submissions.yml
vendored
Normal file
60
.github/workflows/msstore-submissions.yml
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
name: Submit Microsoft.PowerToys package to Windows Store
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
|
||||
microsoft_store:
|
||||
name: Publish Microsoft Store
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Get latest URL from public releases
|
||||
id: releaseVars
|
||||
run: |
|
||||
release=$(curl https://api.github.com/repos/Microsoft/PowerToys/releases | jq '[.[]|select(.name | contains("Release"))][0]')
|
||||
assets=$(jq -n "$release" | jq '.assets')
|
||||
powerToysSetup=$(jq -n "$assets" | jq '[.[]|select(.name | contains("PowerToysSetup"))]')
|
||||
echo ::set-output name=powerToysInstallerX64Url::$(jq -n "$powerToysSetup" | jq -r '[.[]|select(.name | contains("x64"))][0].browser_download_url')
|
||||
echo ::set-output name=powerToysInstallerArm64Url::$(jq -n "$powerToysSetup" | jq -r '[.[]|select(.name | contains("arm64"))][0].browser_download_url')
|
||||
|
||||
- name: Configure Store Credentials
|
||||
uses: microsoft/store-submission@v1
|
||||
with:
|
||||
command: configure
|
||||
type: win32
|
||||
seller-id: ${{ secrets.SELLER_ID }}
|
||||
product-id: ${{ secrets.PRODUCT_ID }}
|
||||
tenant-id: ${{ secrets.TENANT_ID }}
|
||||
client-id: ${{ secrets.CLIENT_ID }}
|
||||
client-secret: ${{ secrets.CLIENT_SECRET }}
|
||||
|
||||
- name: Update draft submission
|
||||
uses: microsoft/store-submission@v1
|
||||
with:
|
||||
command: update
|
||||
product-update: '{
|
||||
"packages":[
|
||||
{
|
||||
"packageUrl":"${{ steps.releaseVars.outputs.powerToysInstallerX64Url }}",
|
||||
"languages":["zh-hans", "zh-hant", "en", "cs", "nl", "fr", "pt", "pt-br", "de", "hu", "it", "ja", "ko", "pl", "ru", "es", "tr"],
|
||||
"architectures":["X64"],
|
||||
"installerParameters":"/quiet /norestart",
|
||||
"isSilentInstall":true
|
||||
},
|
||||
{
|
||||
"packageUrl":"${{ steps.releaseVars.outputs.powerToysInstallerArm64Url }}",
|
||||
"languages":["zh-hans", "zh-hant", "en", "cs", "nl", "fr", "pt", "pt-br", "de", "hu", "it", "ja", "ko", "pl", "ru", "es", "tr"],
|
||||
"architectures":["Arm64"],
|
||||
"installerParameters":"/quiet /norestart",
|
||||
"isSilentInstall":true
|
||||
}
|
||||
]
|
||||
}'
|
||||
|
||||
- name: Publish Submission
|
||||
uses: microsoft/store-submission@v1
|
||||
with:
|
||||
command: publish
|
||||
30
.github/workflows/package-submissions.yml
vendored
Normal file
30
.github/workflows/package-submissions.yml
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
name: Submit Microsoft.PowerToys package to Windows Package Manager Community Repository
|
||||
# based off of https://github.com/nushell/nushell/blob/main/.github/workflows/winget-submission.yml
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
|
||||
winget:
|
||||
name: Publish winget package
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Submit package to Windows Package Manager Community Repository
|
||||
run: |
|
||||
|
||||
$wingetPackage = "Microsoft.PowerToys"
|
||||
$gitToken = "${{ secrets.PT_WINGET }}"
|
||||
|
||||
$github = Invoke-RestMethod -uri "https://api.github.com/repos/Microsoft/PowerToys/releases"
|
||||
|
||||
$targetRelease = $github | Where-Object -Property name -match 'Release'| Select -First 1
|
||||
$installerUrl = $targetRelease | Select -ExpandProperty assets -First 1 | Where-Object -Property name -match 'PowerToysSetup.*x64' | Select -ExpandProperty browser_download_url
|
||||
$installerUrlArm = $targetRelease | Select -ExpandProperty assets -First 1 | Where-Object -Property name -match 'PowerToysSetup.*arm64' | Select -ExpandProperty browser_download_url
|
||||
$ver = $targetRelease.tag_name.Trim("v")
|
||||
|
||||
# getting latest wingetcreate file
|
||||
iwr https://aka.ms/wingetcreate/latest -OutFile wingetcreate.exe
|
||||
.\wingetcreate.exe update $wingetPackage -s -v $ver -u $installerUrl $installerUrlArm -t $gitToken
|
||||
122
.github/workflows/spelling2.yml
vendored
Normal file
122
.github/workflows/spelling2.yml
vendored
Normal file
@@ -0,0 +1,122 @@
|
||||
# spelling.yml is blocked per https://github.com/check-spelling/check-spelling/security/advisories/GHSA-g86g-chm8-7r2p
|
||||
name: Spell checking
|
||||
|
||||
# Comment management is handled through a secondary job, for details see:
|
||||
# https://github.com/check-spelling/check-spelling/wiki/Feature%3A-Restricted-Permissions
|
||||
#
|
||||
# `jobs.comment-push` runs when a push is made to a repository and the `jobs.spelling` job needs to make a comment
|
||||
# (in odd cases, it might actually run just to collapse a commment, but that's fairly rare)
|
||||
# it needs `contents: write` in order to add a comment.
|
||||
#
|
||||
# `jobs.comment-pr` runs when a pull_request is made to a repository and the `jobs.spelling` job needs to make a comment
|
||||
# or collapse a comment (in the case where it had previously made a comment and now no longer needs to show a comment)
|
||||
# it needs `pull-requests: write` in order to manipulate those comments.
|
||||
|
||||
# Updating pull request branches is managed via comment handling.
|
||||
# For details, see: https://github.com/check-spelling/check-spelling/wiki/Feature:-Update-expect-list
|
||||
#
|
||||
# These elements work together to make it happen:
|
||||
#
|
||||
# `on.issue_comment`
|
||||
# This event listens to comments by users asking to update the metadata.
|
||||
#
|
||||
# `jobs.update`
|
||||
# This job runs in response to an issue_comment and will push a new commit
|
||||
# to update the spelling metadata.
|
||||
#
|
||||
# `with.experimental_apply_changes_via_bot`
|
||||
# Tells the action to support and generate messages that enable it
|
||||
# to make a commit to update the spelling metadata.
|
||||
#
|
||||
# `with.ssh_key`
|
||||
# In order to trigger workflows when the commit is made, you can provide a
|
||||
# secret (typically, a write-enabled github deploy key).
|
||||
#
|
||||
# For background, see: https://github.com/check-spelling/check-spelling/wiki/Feature:-Update-with-deploy-key
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- "**"
|
||||
tags-ignore:
|
||||
- "**"
|
||||
pull_request_target:
|
||||
branches:
|
||||
- "**"
|
||||
tags-ignore:
|
||||
- "**"
|
||||
types:
|
||||
- 'opened'
|
||||
- 'reopened'
|
||||
- 'synchronize'
|
||||
|
||||
jobs:
|
||||
spelling:
|
||||
name: Spell checking
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
actions: read
|
||||
outputs:
|
||||
followup: ${{ steps.spelling.outputs.followup }}
|
||||
runs-on: ubuntu-latest
|
||||
if: "contains(github.event_name, 'pull_request') || github.event_name == 'push'"
|
||||
concurrency:
|
||||
group: spelling-${{ github.event.pull_request.number || github.ref }}
|
||||
# note: If you use only_check_changed_files, you do not want cancel-in-progress
|
||||
cancel-in-progress: true
|
||||
steps:
|
||||
- name: check-spelling
|
||||
id: spelling
|
||||
uses: check-spelling/check-spelling@v0.0.21
|
||||
with:
|
||||
config: .github/actions/spell-check
|
||||
suppress_push_for_open_pull_request: 1
|
||||
checkout: true
|
||||
check_file_names: 1
|
||||
spell_check_this: check-spelling/spell-check-this@prerelease
|
||||
post_comment: 0
|
||||
use_magic_file: 1
|
||||
extra_dictionary_limit: 10
|
||||
extra_dictionaries:
|
||||
cspell:software-terms/src/software-terms.txt
|
||||
cspell:cpp/src/stdlib-cpp.txt
|
||||
cspell:filetypes/filetypes.txt
|
||||
cspell:cpp/src/stdlib-c.txt
|
||||
cspell:fullstack/fullstack.txt
|
||||
cspell:html/html.txt
|
||||
cspell:css/css.txt
|
||||
|
||||
comment-push:
|
||||
name: Report (Push)
|
||||
# If your workflow isn't running on push, you can remove this job
|
||||
runs-on: ubuntu-latest
|
||||
needs: spelling
|
||||
permissions:
|
||||
contents: write
|
||||
if: (success() || failure()) && needs.spelling.outputs.followup && github.event_name == 'push'
|
||||
steps:
|
||||
- name: comment
|
||||
uses: check-spelling/check-spelling@v0.0.21
|
||||
with:
|
||||
config: .github/actions/spell-check
|
||||
checkout: true
|
||||
spell_check_this: check-spelling/spell-check-this@prerelease
|
||||
task: ${{ needs.spelling.outputs.followup }}
|
||||
|
||||
comment-pr:
|
||||
name: Report (PR)
|
||||
# If you workflow isn't running on pull_request*, you can remove this job
|
||||
runs-on: ubuntu-latest
|
||||
needs: spelling
|
||||
permissions:
|
||||
pull-requests: write
|
||||
if: (success() || failure()) && needs.spelling.outputs.followup && contains(github.event_name, 'pull_request')
|
||||
steps:
|
||||
- name: comment
|
||||
uses: check-spelling/check-spelling@v0.0.21
|
||||
with:
|
||||
config: .github/actions/spell-check
|
||||
checkout: true
|
||||
spell_check_this: check-spelling/spell-check-this@prerelease
|
||||
task: ${{ needs.spelling.outputs.followup }}
|
||||
17
.gitignore
vendored
17
.gitignore
vendored
@@ -19,6 +19,7 @@
|
||||
[Rr]eleases/
|
||||
x64/
|
||||
x86/
|
||||
ARM64/
|
||||
bld/
|
||||
[Bb]in/
|
||||
[Oo]bj/
|
||||
@@ -301,6 +302,8 @@ __pycache__/
|
||||
# Cake - Uncomment if you are using it
|
||||
# tools/**
|
||||
# !tools/packages.config
|
||||
ImageResizer/tools/**
|
||||
!ImageResizer/tools/packages.config
|
||||
|
||||
# Tabs Studio
|
||||
*.tss
|
||||
@@ -328,3 +331,17 @@ ASALocalRun/
|
||||
|
||||
# MFractors (Xamarin productivity tool) working folder
|
||||
.mfractor/
|
||||
|
||||
# Temp build files
|
||||
src/settings/settings-html/200.html
|
||||
src/settings/settings-html/404.html
|
||||
|
||||
# Temp telemetry files.
|
||||
src/common/Telemetry/*.etl
|
||||
|
||||
# Don't ignore MergeModules
|
||||
!**/MergeModules/Release/
|
||||
!**/MergeModules/Debug/
|
||||
/src/modules/previewpane/SvgThumbnailProvider/$(SolutionDir)$(Platform)/$(Configuration)/modules/FileExplorerPreview/SvgThumbnailProvider.xml
|
||||
/src/modules/powerrename/ui/RCa24464
|
||||
/src/modules/powerrename/ui/RCb24464
|
||||
|
||||
9
.gitmodules
vendored
Normal file
9
.gitmodules
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
[submodule "deps/spdlog"]
|
||||
path = deps/spdlog
|
||||
url = https://github.com/gabime/spdlog.git
|
||||
[submodule "deps/expected-lite"]
|
||||
path = deps/expected-lite
|
||||
url = https://github.com/martinmoene/expected-lite.git
|
||||
[submodule "deps/cziplib"]
|
||||
path = deps/cziplib
|
||||
url = https://github.com/kuba--/zip.git
|
||||
41
.pipelines/CIPolicy.xml
Normal file
41
.pipelines/CIPolicy.xml
Normal file
@@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<SiPolicy xmlns="urn:schemas-microsoft-com:sipolicy">
|
||||
<VersionEx>10.0.0.0</VersionEx>
|
||||
<PlatformID>{2E07F7E4-194C-4D20-B7C9-6F44A6C5A234}</PlatformID>
|
||||
<Rules>
|
||||
<Rule>
|
||||
<Option>Enabled:Unsigned System Integrity Policy</Option>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Option>Enabled:Audit Mode</Option>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Option>Enabled:Advanced Boot Options Menu</Option>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Option>Required:Enforce Store Applications</Option>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Option>Disabled:Script Enforcement</Option>
|
||||
</Rule>
|
||||
</Rules>
|
||||
<!--EKUS-->
|
||||
<EKUs />
|
||||
<!--File Rules-->
|
||||
<FileRules />
|
||||
<!--Signers-->
|
||||
<Signers />
|
||||
<!--Driver Signing Scenarios-->
|
||||
<SigningScenarios>
|
||||
<SigningScenario Value="131" ID="ID_SIGNINGSCENARIO_DRIVERS_1" FriendlyName="Auto generated policy on 01-26-2021">
|
||||
<ProductSigners />
|
||||
</SigningScenario>
|
||||
<SigningScenario Value="12" ID="ID_SIGNINGSCENARIO_WINDOWS" FriendlyName="Auto generated policy on 01-26-2021">
|
||||
<ProductSigners />
|
||||
</SigningScenario>
|
||||
</SigningScenarios>
|
||||
<UpdatePolicySigners />
|
||||
<CiSigners />
|
||||
<HvciOptions>0</HvciOptions>
|
||||
<PolicyTypeID>{A244370E-44C9-4C06-B551-F6016E563076}</PolicyTypeID>
|
||||
</SiPolicy>
|
||||
315
.pipelines/ESRPSigning_core.json
Normal file
315
.pipelines/ESRPSigning_core.json
Normal file
@@ -0,0 +1,315 @@
|
||||
{
|
||||
"Version": "1.0.0",
|
||||
"UseMinimatch": false,
|
||||
"SignBatches": [
|
||||
{
|
||||
"MatchedPath": [
|
||||
"*.resources.dll",
|
||||
|
||||
"PowerToys.ActionRunner.exe",
|
||||
"PowerToys.Update.exe",
|
||||
"PowerToys.BackgroundActivatorDLL.dll",
|
||||
"Notifications.dll",
|
||||
"os-detection.dll",
|
||||
"PowerToys.exe",
|
||||
"PowerToys.Interop.dll",
|
||||
"BugReportTool\\PowerToys.BugReportTool.exe",
|
||||
"WebcamReportTool\\PowerToys.WebcamReportTool.exe",
|
||||
"StylesReportTool\\PowerToys.StylesReportTool.exe",
|
||||
"Telemetry.dll",
|
||||
"PowerToys.ManagedTelemetry.dll",
|
||||
"PowerToys.ManagedCommon.dll",
|
||||
"PowerToys.Common.UI.dll",
|
||||
"PowerToys.Settings.UI.Lib.dll",
|
||||
"PowerToys.GPOWrapper.dll",
|
||||
"PowerToys.GPOWrapperProjection.dll",
|
||||
"PowerToys.AllExperiments.dll",
|
||||
|
||||
"modules\\AlwaysOnTop\\PowerToys.AlwaysOnTop.exe",
|
||||
"modules\\AlwaysOnTop\\PowerToys.AlwaysOnTopModuleInterface.dll",
|
||||
|
||||
"modules\\ColorPicker\\PowerToys.ColorPicker.dll",
|
||||
"modules\\ColorPicker\\PowerToys.ColorPickerUI.dll",
|
||||
"modules\\ColorPicker\\PowerToys.ColorPickerUI.exe",
|
||||
|
||||
"modules\\PowerOCR\\PowerToys.PowerOCRModuleInterface.dll",
|
||||
"modules\\PowerOCR\\PowerToys.PowerOCR.dll",
|
||||
"modules\\PowerOCR\\PowerToys.PowerOCR.exe",
|
||||
|
||||
"modules\\PastePlain\\PowerToys.PastePlainModuleInterface.dll",
|
||||
|
||||
"modules\\Awake\\PowerToys.AwakeModuleInterface.dll",
|
||||
"modules\\Awake\\PowerToys.Awake.exe",
|
||||
"modules\\Awake\\PowerToys.Awake.dll",
|
||||
|
||||
"modules\\FancyZones\\fancyzones.dll",
|
||||
"modules\\FancyZones\\PowerToys.FancyZonesEditor.exe",
|
||||
"modules\\FancyZones\\PowerToys.FancyZonesEditor.dll",
|
||||
"modules\\FancyZones\\PowerToys.FancyZonesModuleInterface.dll",
|
||||
"modules\\FancyZones\\PowerToys.FancyZones.exe",
|
||||
|
||||
"modules\\FileExplorerPreview\\PowerToys.GcodePreviewHandler.dll",
|
||||
"modules\\FileExplorerPreview\\PowerToys.GcodePreviewHandler.exe",
|
||||
"modules\\FileExplorerPreview\\PowerToys.GcodePreviewHandlerCpp.dll",
|
||||
"modules\\FileExplorerPreview\\PowerToys.GcodeThumbnailProvider.dll",
|
||||
"modules\\FileExplorerPreview\\PowerToys.GcodeThumbnailProvider.exe",
|
||||
"modules\\FileExplorerPreview\\PowerToys.GcodeThumbnailProviderCpp.dll",
|
||||
"modules\\FileExplorerPreview\\PowerToys.ManagedTelemetry.dll",
|
||||
"modules\\FileExplorerPreview\\PowerToys.MarkdownPreviewHandler.dll",
|
||||
"modules\\FileExplorerPreview\\PowerToys.MarkdownPreviewHandler.exe",
|
||||
"modules\\FileExplorerPreview\\PowerToys.MarkdownPreviewHandlerCpp.dll",
|
||||
"modules\\FileExplorerPreview\\PowerToys.MonacoPreviewHandler.dll",
|
||||
"modules\\FileExplorerPreview\\PowerToys.MonacoPreviewHandler.exe",
|
||||
"modules\\FileExplorerPreview\\PowerToys.MonacoPreviewHandlerCpp.dll",
|
||||
"modules\\FileExplorerPreview\\PowerToys.PdfPreviewHandler.dll",
|
||||
"modules\\FileExplorerPreview\\PowerToys.PdfPreviewHandler.exe",
|
||||
"modules\\FileExplorerPreview\\PowerToys.PdfPreviewHandlerCpp.dll",
|
||||
"modules\\FileExplorerPreview\\PowerToys.PdfThumbnailProvider.dll",
|
||||
"modules\\FileExplorerPreview\\PowerToys.PdfThumbnailProvider.exe",
|
||||
"modules\\FileExplorerPreview\\PowerToys.PdfThumbnailProviderCpp.dll",
|
||||
"modules\\FileExplorerPreview\\PowerToys.powerpreview.dll",
|
||||
"modules\\FileExplorerPreview\\PowerToys.PreviewHandlerCommon.dll",
|
||||
"modules\\FileExplorerPreview\\PowerToys.StlThumbnailProvider.dll",
|
||||
"modules\\FileExplorerPreview\\PowerToys.StlThumbnailProvider.exe",
|
||||
"modules\\FileExplorerPreview\\PowerToys.StlThumbnailProviderCpp.dll",
|
||||
"modules\\FileExplorerPreview\\PowerToys.SvgPreviewHandler.dll",
|
||||
"modules\\FileExplorerPreview\\PowerToys.SvgPreviewHandler.exe",
|
||||
"modules\\FileExplorerPreview\\PowerToys.SvgPreviewHandlerCpp.dll",
|
||||
"modules\\FileExplorerPreview\\PowerToys.SvgThumbnailProvider.dll",
|
||||
"modules\\FileExplorerPreview\\PowerToys.SvgThumbnailProvider.exe",
|
||||
"modules\\FileExplorerPreview\\PowerToys.SvgThumbnailProviderCpp.dll",
|
||||
|
||||
"modules\\Hosts\\PowerToys.HostsModuleInterface.dll",
|
||||
"modules\\Hosts\\PowerToys.Hosts.dll",
|
||||
"modules\\Hosts\\PowerToys.Hosts.exe",
|
||||
|
||||
"modules\\FileLocksmith\\PowerToys.FileLocksmithLib.Interop.dll",
|
||||
"modules\\FileLocksmith\\PowerToys.FileLocksmithExt.dll",
|
||||
"modules\\FileLocksmith\\PowerToys.FileLocksmithUI.exe",
|
||||
"modules\\FileLocksmith\\PowerToys.FileLocksmithUI.dll",
|
||||
|
||||
"modules\\ImageResizer\\PowerToys.ImageResizer.exe",
|
||||
"modules\\ImageResizer\\PowerToys.ImageResizer.dll",
|
||||
"modules\\ImageResizer\\PowerToys.ImageResizerExt.dll",
|
||||
"modules\\ImageResizer\\PowerToys.ImageResizerContextMenu.dll",
|
||||
"modules\\ImageResizer\\ImageResizerContextMenuPackage.msix",
|
||||
|
||||
"modules\\KeyboardManager\\PowerToys.KeyboardManager.dll",
|
||||
"modules\\KeyboardManager\\KeyboardManagerEditor\\PowerToys.KeyboardManagerEditor.exe",
|
||||
"modules\\KeyboardManager\\KeyboardManagerEngine\\PowerToys.KeyboardManagerEngine.exe",
|
||||
|
||||
"modules\\launcher\\PowerToys.Launcher.dll",
|
||||
"modules\\launcher\\PowerToys.PowerLauncher.dll",
|
||||
"modules\\launcher\\PowerToys.PowerLauncher.exe",
|
||||
"modules\\launcher\\PowerToys.PowerLauncher.Telemetry.dll",
|
||||
"modules\\launcher\\Wox.dll",
|
||||
"modules\\launcher\\Wox.Infrastructure.dll",
|
||||
"modules\\launcher\\Wox.Plugin.dll",
|
||||
"modules\\launcher\\Plugins\\Calculator\\Microsoft.PowerToys.Run.Plugin.Calculator.dll",
|
||||
"modules\\launcher\\Plugins\\Folder\\Microsoft.Plugin.Folder.dll",
|
||||
"modules\\launcher\\Plugins\\Indexer\\Microsoft.Plugin.Indexer.dll",
|
||||
"modules\\launcher\\Plugins\\OneNote\\Microsoft.PowerToys.Run.Plugin.OneNote.dll",
|
||||
"modules\\launcher\\Plugins\\History\\Microsoft.PowerToys.Run.Plugin.History.dll",
|
||||
"modules\\launcher\\Plugins\\Program\\Microsoft.Plugin.Program.dll",
|
||||
"modules\\launcher\\Plugins\\Registry\\Microsoft.PowerToys.Run.Plugin.Registry.dll",
|
||||
"modules\\launcher\\Plugins\\WindowsSettings\\Microsoft.PowerToys.Run.Plugin.WindowsSettings.dll",
|
||||
"modules\\launcher\\Plugins\\Shell\\Microsoft.Plugin.Shell.dll",
|
||||
"modules\\launcher\\Plugins\\Uri\\Microsoft.Plugin.Uri.dll",
|
||||
"modules\\launcher\\Plugins\\WindowWalker\\Microsoft.Plugin.WindowWalker.dll",
|
||||
"modules\\launcher\\Plugins\\UnitConverter\\Community.PowerToys.Run.Plugin.UnitConverter.dll",
|
||||
"modules\\launcher\\Plugins\\VSCodeWorkspaces\\Community.PowerToys.Run.Plugin.VSCodeWorkspaces.dll",
|
||||
"modules\\launcher\\Plugins\\Service\\Microsoft.PowerToys.Run.Plugin.Service.dll",
|
||||
"modules\\launcher\\Plugins\\System\\Microsoft.PowerToys.Run.Plugin.System.dll",
|
||||
"modules\\launcher\\Plugins\\TimeDate\\Microsoft.PowerToys.Run.Plugin.TimeDate.dll",
|
||||
"modules\\launcher\\Plugins\\WebSearch\\Community.PowerToys.Run.Plugin.WebSearch.dll",
|
||||
"modules\\launcher\\Plugins\\WindowsTerminal\\Microsoft.PowerToys.Run.Plugin.WindowsTerminal.dll",
|
||||
|
||||
"modules\\MeasureTool\\PowerToys.MeasureToolModuleInterface.dll",
|
||||
"modules\\MeasureTool\\PowerToys.MeasureToolCore.dll",
|
||||
"modules\\MeasureTool\\PowerToys.MeasureToolUI.dll",
|
||||
"modules\\MeasureTool\\PowerToys.MeasureToolUI.exe",
|
||||
|
||||
"modules\\MouseUtils\\PowerToys.FindMyMouse.dll",
|
||||
"modules\\MouseUtils\\PowerToys.MouseHighlighter.dll",
|
||||
"modules\\MouseUtils\\PowerToys.MouseJump.dll",
|
||||
"modules\\MouseUtils\\PowerToys.MousePointerCrosshairs.dll",
|
||||
"modules\\MouseUtils\\MouseJumpUI\\PowerToys.MouseJumpUI.dll",
|
||||
"modules\\MouseUtils\\MouseJumpUI\\PowerToys.MouseJumpUI.exe",
|
||||
|
||||
"modules\\PowerAccent\\PowerAccent.Core.dll",
|
||||
"modules\\PowerAccent\\PowerToys.PowerAccent.dll",
|
||||
"modules\\PowerAccent\\PowerToys.PowerAccent.exe",
|
||||
"modules\\PowerAccent\\PowerToys.PowerAccentModuleInterface.dll",
|
||||
"modules\\PowerAccent\\PowerToys.PowerAccentKeyboardService.dll",
|
||||
|
||||
"modules\\PowerRename\\PowerToys.PowerRenameExt.dll",
|
||||
"modules\\PowerRename\\PowerToys.PowerRename.exe",
|
||||
"modules\\PowerRename\\PowerToys.PowerRenameContextMenu.dll",
|
||||
"modules\\PowerRename\\PowerRenameContextMenuPackage.msix",
|
||||
|
||||
"modules\\RegistryPreview\\PowerToys.RegistryPreviewExt.dll",
|
||||
"modules\\RegistryPreview\\PowerToys.RegistryPreview.dll",
|
||||
"modules\\RegistryPreview\\PowerToys.RegistryPreview.exe",
|
||||
|
||||
"modules\\ShortcutGuide\\ShortcutGuide\\PowerToys.ShortcutGuide.exe",
|
||||
"modules\\ShortcutGuide\\ShortcutGuideModuleInterface\\PowerToys.ShortcutGuideModuleInterface.dll",
|
||||
|
||||
"modules\\VideoConference\\PowerToys.VideoConferenceModule.dll",
|
||||
"modules\\VideoConference\\PowerToys.VideoConferenceProxyFilter_x86.dll",
|
||||
"modules\\VideoConference\\PowerToys.VideoConferenceProxyFilter_x64.dll",
|
||||
"modules\\VideoConference\\PowerToys.VideoConferenceProxyFilter_arm64.dll",
|
||||
|
||||
"Settings\\PowerToys.Settings.dll",
|
||||
"Settings\\PowerToys.Settings.exe"
|
||||
],
|
||||
"SigningInfo": {
|
||||
"Operations": [
|
||||
{
|
||||
"KeyCode": "CP-230012",
|
||||
"OperationSetCode": "SigntoolSign",
|
||||
"Parameters": [
|
||||
{
|
||||
"parameterName": "OpusName",
|
||||
"parameterValue": "Microsoft"
|
||||
},
|
||||
{
|
||||
"parameterName": "OpusInfo",
|
||||
"parameterValue": "http://www.microsoft.com"
|
||||
},
|
||||
{
|
||||
"parameterName": "FileDigest",
|
||||
"parameterValue": "/fd \"SHA256\""
|
||||
},
|
||||
{
|
||||
"parameterName": "PageHash",
|
||||
"parameterValue": "/NPH"
|
||||
},
|
||||
{
|
||||
"parameterName": "TimeStamp",
|
||||
"parameterValue": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
|
||||
}
|
||||
],
|
||||
"ToolName": "sign",
|
||||
"ToolVersion": "1.0"
|
||||
},
|
||||
{
|
||||
"KeyCode": "CP-230012",
|
||||
"OperationSetCode": "SigntoolVerify",
|
||||
"Parameters": [],
|
||||
"ToolName": "sign",
|
||||
"ToolVersion": "1.0"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"MatchedPath": [
|
||||
"ModernWpf.dll",
|
||||
"ModernWpf.Controls.dll",
|
||||
"System.IO.Abstractions.dll",
|
||||
"Mono.Cecil.dll",
|
||||
"Mono.Cecil.Mdb.dll",
|
||||
"Mono.Cecil.Pdb.dll",
|
||||
"Mono.Cecil.Rocks.dll",
|
||||
"Newtonsoft.Json.dll",
|
||||
"Newtonsoft.Json.Bson.dll",
|
||||
"NLog.dll",
|
||||
"HtmlAgilityPack.dll",
|
||||
"Markdig.Signed.dll",
|
||||
"HelixToolkit.dll",
|
||||
"HelixToolkit.Core.Wpf.dll",
|
||||
"Mages.Core.dll",
|
||||
"JetBrains.Annotations.dll",
|
||||
"NLog.Extensions.Logging.dll",
|
||||
"concrt140_app.dll",
|
||||
"msvcp140_1_app.dll",
|
||||
"msvcp140_2_app.dll",
|
||||
"msvcp140_app.dll",
|
||||
"vcamp140_app.dll",
|
||||
"vccorlib140_app.dll",
|
||||
"vcomp140_app.dll",
|
||||
"vcruntime140_1_app.dll",
|
||||
"vcruntime140_app.dll",
|
||||
"modules\\FileLocksmith\\CommunityToolkit.Labs.WinUI.SettingsControls.dll",
|
||||
"modules\\PowerAccent\\UnicodeInformation.dll",
|
||||
"modules\\PowerAccent\\Vanara.Core.dll",
|
||||
"modules\\PowerAccent\\Vanara.PInvoke.ComCtl32.dll",
|
||||
"modules\\PowerAccent\\Vanara.PInvoke.Cryptography.dll",
|
||||
"modules\\PowerAccent\\Vanara.PInvoke.Gdi32.dll",
|
||||
"modules\\PowerAccent\\Vanara.PInvoke.Kernel32.dll",
|
||||
"modules\\PowerAccent\\Vanara.PInvoke.Ole.dll",
|
||||
"modules\\PowerAccent\\Vanara.PInvoke.Rpc.dll",
|
||||
"modules\\PowerAccent\\Vanara.PInvoke.Security.dll",
|
||||
"modules\\PowerAccent\\Vanara.PInvoke.Shared.dll",
|
||||
"modules\\PowerAccent\\Vanara.PInvoke.Shell32.dll",
|
||||
"modules\\PowerAccent\\Vanara.PInvoke.ShlwApi.dll",
|
||||
"modules\\PowerAccent\\Vanara.PInvoke.User32.dll",
|
||||
"modules\\RegistryPreview\\clrcompression.dll",
|
||||
"modules\\RegistryPreview\\Microsoft.Graphics.Canvas.Interop.dll",
|
||||
"modules\\FileExplorerPreview\\Microsoft.Web.WebView2.Core.dll",
|
||||
"modules\\FileExplorerPreview\\Microsoft.Web.WebView2.WinForms.dll",
|
||||
"modules\\FileExplorerPreview\\Microsoft.Web.WebView2.Wpf.dll",
|
||||
"modules\\FileExplorerPreview\\WebView2Loader.dll",
|
||||
"modules\\Hosts\\Microsoft.Graphics.Canvas.Interop.dll",
|
||||
"modules\\Hosts\\clrcompression.dll",
|
||||
"modules\\launcher\\e_sqlite3.dll",
|
||||
"modules\\launcher\\LazyCache.dll",
|
||||
"modules\\launcher\\SQLitePCLRaw.batteries_v2.dll",
|
||||
"modules\\launcher\\SQLitePCLRaw.core.dll",
|
||||
"modules\\launcher\\SQLitePCLRaw.provider.e_sqlite3.dll",
|
||||
"modules\\launcher\\ScipBe.Common.Office.OneNote.dll",
|
||||
"modules\\launcher\\Interop.Microsoft.Office.Interop.OneNote.dll",
|
||||
"modules\\launcher\\hyjiacan.py4n.dll",
|
||||
"Settings\\Microsoft.Graphics.Canvas.Interop.dll",
|
||||
"Settings\\clrcompression.dll",
|
||||
"Settings\\CommunityToolkit.Labs.WinUI.SettingsControls.dll",
|
||||
"ColorCode.Core.dll",
|
||||
"ColorCode.UWP.dll",
|
||||
"UnitsNet.dll"
|
||||
],
|
||||
"SigningInfo": {
|
||||
"Operations": [
|
||||
{
|
||||
"KeyCode": "CP-231522",
|
||||
"OperationSetCode": "SigntoolSign",
|
||||
"Parameters": [
|
||||
{
|
||||
"parameterName": "OpusName",
|
||||
"parameterValue": "Microsoft"
|
||||
},
|
||||
{
|
||||
"parameterName": "OpusInfo",
|
||||
"parameterValue": "http://www.microsoft.com"
|
||||
},
|
||||
{
|
||||
"parameterName": "FileDigest",
|
||||
"parameterValue": "/fd \"SHA256\""
|
||||
},
|
||||
{
|
||||
"parameterName": "Append",
|
||||
"parameterValue": "/as"
|
||||
},
|
||||
{
|
||||
"parameterName": "PageHash",
|
||||
"parameterValue": "/NPH"
|
||||
},
|
||||
{
|
||||
"parameterName": "TimeStamp",
|
||||
"parameterValue": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
|
||||
}
|
||||
],
|
||||
"ToolName": "sign",
|
||||
"ToolVersion": "1.0"
|
||||
},
|
||||
{
|
||||
"KeyCode": "CP-231522",
|
||||
"OperationSetCode": "SigntoolVerify",
|
||||
"Parameters": [],
|
||||
"ToolName": "sign",
|
||||
"ToolVersion": "1.0"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
52
.pipelines/ESRPSigning_installer.json
Normal file
52
.pipelines/ESRPSigning_installer.json
Normal file
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"Version": "1.0.0",
|
||||
"UseMinimatch": false,
|
||||
"SignBatches": [
|
||||
{
|
||||
"MatchedPath": [
|
||||
"PowerToysSetupCustomActions.dll",
|
||||
"PowerToys*Setup-*.exe",
|
||||
"PowerToys*Setup-*.msi"
|
||||
],
|
||||
"SigningInfo": {
|
||||
"Operations": [
|
||||
{
|
||||
"KeyCode": "CP-230012",
|
||||
"OperationSetCode": "SigntoolSign",
|
||||
"Parameters": [
|
||||
{
|
||||
"parameterName": "OpusName",
|
||||
"parameterValue": "Microsoft"
|
||||
},
|
||||
{
|
||||
"parameterName": "OpusInfo",
|
||||
"parameterValue": "http://www.microsoft.com"
|
||||
},
|
||||
{
|
||||
"parameterName": "FileDigest",
|
||||
"parameterValue": "/fd \"SHA256\""
|
||||
},
|
||||
{
|
||||
"parameterName": "PageHash",
|
||||
"parameterValue": "/NPH"
|
||||
},
|
||||
{
|
||||
"parameterName": "TimeStamp",
|
||||
"parameterValue": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
|
||||
}
|
||||
],
|
||||
"ToolName": "sign",
|
||||
"ToolVersion": "1.0"
|
||||
},
|
||||
{
|
||||
"KeyCode": "CP-230012",
|
||||
"OperationSetCode": "SigntoolVerify",
|
||||
"Parameters": [],
|
||||
"ToolName": "sign",
|
||||
"ToolVersion": "1.0"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
50
.pipelines/ESRPSigning_vcm.json
Normal file
50
.pipelines/ESRPSigning_vcm.json
Normal file
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"Version": "1.0.0",
|
||||
"UseMinimatch": false,
|
||||
"SignBatches": [
|
||||
{
|
||||
"MatchedPath": [
|
||||
"modules\\VideoConference\\PowerToys.VideoConferenceProxyFilter_x86.dll"
|
||||
],
|
||||
"SigningInfo": {
|
||||
"Operations": [
|
||||
{
|
||||
"KeyCode": "CP-230012",
|
||||
"OperationSetCode": "SigntoolSign",
|
||||
"Parameters": [
|
||||
{
|
||||
"parameterName": "OpusName",
|
||||
"parameterValue": "Microsoft"
|
||||
},
|
||||
{
|
||||
"parameterName": "OpusInfo",
|
||||
"parameterValue": "http://www.microsoft.com"
|
||||
},
|
||||
{
|
||||
"parameterName": "FileDigest",
|
||||
"parameterValue": "/fd \"SHA256\""
|
||||
},
|
||||
{
|
||||
"parameterName": "PageHash",
|
||||
"parameterValue": "/NPH"
|
||||
},
|
||||
{
|
||||
"parameterName": "TimeStamp",
|
||||
"parameterValue": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
|
||||
}
|
||||
],
|
||||
"ToolName": "sign",
|
||||
"ToolVersion": "1.0"
|
||||
},
|
||||
{
|
||||
"KeyCode": "CP-230012",
|
||||
"OperationSetCode": "SigntoolVerify",
|
||||
"Parameters": [],
|
||||
"ToolName": "sign",
|
||||
"ToolVersion": "1.0"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
cd /D "%~dp0"
|
||||
|
||||
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64 -winsdk=10.0.16299.0
|
||||
call msbuild ../installer/PowerToysSetup.sln /p:Configuration=Release /p:Platform=x64 || exit /b 1
|
||||
@@ -1,4 +0,0 @@
|
||||
cd /D "%~dp0"
|
||||
|
||||
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64 -winsdk=10.0.16299.0
|
||||
call msbuild ../PowerToys.sln /p:Configuration=Release /p:Platform=x64 || exit /b 1
|
||||
@@ -2,7 +2,8 @@ trigger:
|
||||
batch: true
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
- main
|
||||
- stable
|
||||
paths:
|
||||
exclude:
|
||||
- doc/*
|
||||
@@ -12,7 +13,8 @@ trigger:
|
||||
pr:
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
- main
|
||||
- stable
|
||||
|
||||
# 0.0.yyMM.dd##
|
||||
# 0.0.1904.0900
|
||||
@@ -22,3 +24,6 @@ jobs:
|
||||
- template: ./templates/build-powertoys-ci.yml
|
||||
parameters:
|
||||
platform: x64
|
||||
- template: ./templates/build-powertoys-ci.yml
|
||||
parameters:
|
||||
platform: arm64
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
parameters:
|
||||
configuration: 'Release'
|
||||
platform: ''
|
||||
additionalBuildArguments: ''
|
||||
additionalBuildArguments: '-m'
|
||||
|
||||
jobs:
|
||||
- job: Build${{ parameters.platform }}${{ parameters.configuration }}
|
||||
@@ -9,9 +9,24 @@ jobs:
|
||||
variables:
|
||||
BuildConfiguration: ${{ parameters.configuration }}
|
||||
BuildPlatform: ${{ parameters.platform }}
|
||||
pool: { vmImage: windows-2019 }
|
||||
|
||||
NUGET_RESTORE_MSBUILD_ARGS: /p:Platform=${{ parameters.platform }} # Required for nuget to work due to self contained
|
||||
NODE_OPTIONS: --max_old_space_size=16384
|
||||
pool:
|
||||
demands: ImageOverride -equals WinDevVS17-latest
|
||||
${{ if eq(variables['System.CollectionUri'], 'https://dev.azure.com/ms/') }}:
|
||||
name: WinDevPoolOSS-L
|
||||
${{ if ne(variables['System.CollectionUri'], 'https://dev.azure.com/ms/') }}:
|
||||
name: WinDevPool-L
|
||||
timeoutInMinutes: 120
|
||||
strategy:
|
||||
maxParallel: 10
|
||||
steps:
|
||||
- template: build-powertoys-steps.yml
|
||||
parameters:
|
||||
additionalBuildArguments: ${{ parameters.additionalBuildArguments }}
|
||||
additionalBuildArguments: ${{ parameters.additionalBuildArguments }}
|
||||
|
||||
# It appears that the Component Governance build task that gets automatically injected stopped working
|
||||
# when we renamed our main branch.
|
||||
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
|
||||
displayName: 'Component Detection'
|
||||
condition: and(succeededOrFailed(), not(eq(variables['Build.Reason'], 'PullRequest')))
|
||||
|
||||
20
.pipelines/ci/templates/build-powertoys-installer.yml
Normal file
20
.pipelines/ci/templates/build-powertoys-installer.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
parameters:
|
||||
configuration: 'Release'
|
||||
platform: ''
|
||||
additionalBuildArguments: '-m'
|
||||
|
||||
jobs:
|
||||
- job: Build${{ parameters.platform }}${{ parameters.configuration }}
|
||||
displayName: Build ${{ parameters.platform }} ${{ parameters.configuration }}
|
||||
variables:
|
||||
BuildConfiguration: ${{ parameters.configuration }}
|
||||
BuildPlatform: ${{ parameters.platform }}
|
||||
pool:
|
||||
name: WinDevPool-L
|
||||
timeoutInMinutes: 120
|
||||
strategy:
|
||||
maxParallel: 10
|
||||
steps:
|
||||
- template: build-powertoys-steps.yml
|
||||
parameters:
|
||||
additionalBuildArguments: ${{ parameters.additionalBuildArguments }}
|
||||
@@ -3,19 +3,66 @@ parameters:
|
||||
|
||||
steps:
|
||||
- checkout: self
|
||||
fetchDepth: 1
|
||||
submodules: true
|
||||
clean: true
|
||||
|
||||
- task: NuGetToolInstaller@0
|
||||
displayName: Ensure NuGet 4.8.1
|
||||
- task: PowerShell@2
|
||||
displayName: Verifying Nuget package versions for PowerToys.sln
|
||||
inputs:
|
||||
versionSpec: 4.8.1
|
||||
filePath: '$(build.sourcesdirectory)\.pipelines\verifyNugetPackages.ps1'
|
||||
arguments: -solution '$(build.sourcesdirectory)\PowerToys.sln'
|
||||
pwsh: true
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: Verify Arm64 configuration for PowerToys.sln
|
||||
inputs:
|
||||
filePath: '$(build.sourcesdirectory)\.pipelines\verifyArm64Configuration.ps1'
|
||||
arguments: -solution '$(build.sourcesdirectory)\PowerToys.sln'
|
||||
pwsh: true
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: Verify Arm64 configuration for BugReportTool.sln
|
||||
inputs:
|
||||
filePath: '$(build.sourcesdirectory)\.pipelines\verifyArm64Configuration.ps1'
|
||||
arguments: -solution '$(build.sourcesdirectory)\tools\BugReportTool\BugReportTool.sln'
|
||||
pwsh: true
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: Verify Arm64 configuration for WebcamReportTool.sln
|
||||
inputs:
|
||||
filePath: '$(build.sourcesdirectory)\.pipelines\verifyArm64Configuration.ps1'
|
||||
arguments: -solution '$(build.sourcesdirectory)\tools\WebcamReportTool\WebcamReportTool.sln'
|
||||
pwsh: true
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: Verify Arm64 configuration for StylesReportTool.sln
|
||||
inputs:
|
||||
filePath: '$(build.sourcesdirectory)\.pipelines\verifyArm64Configuration.ps1'
|
||||
arguments: -solution '$(build.sourcesdirectory)\tools\StylesReportTool\StylesReportTool.sln'
|
||||
pwsh: true
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: Verify Arm64 configuration for PowerToysSetup.sln
|
||||
inputs:
|
||||
filePath: '$(build.sourcesdirectory)\.pipelines\verifyArm64Configuration.ps1'
|
||||
arguments: -solution '$(build.sourcesdirectory)\installer\PowerToysSetup.sln'
|
||||
pwsh: true
|
||||
|
||||
- task: UseDotNet@2
|
||||
displayName: 'Use .NET 7 SDK'
|
||||
inputs:
|
||||
packageType: sdk
|
||||
version: '7.x'
|
||||
|
||||
- task: NuGetToolInstaller@1
|
||||
displayName: Ensure NuGet Installer
|
||||
|
||||
- task: VisualStudioTestPlatformInstaller@1
|
||||
displayName: Ensure VSTest Platform
|
||||
|
||||
- task: NuGetCommand@2
|
||||
displayName: Restore NuGet packages
|
||||
displayName: Restore NuGet packages for PowerToys.sln
|
||||
inputs:
|
||||
command: restore
|
||||
feedsToUse: config
|
||||
@@ -24,12 +71,210 @@ steps:
|
||||
restoreDirectory: '$(Build.SourcesDirectory)\packages'
|
||||
|
||||
- task: VSBuild@1
|
||||
displayName: 'Build solution **\PowerToys.sln'
|
||||
displayName: 'Build PowerToys.sln'
|
||||
inputs:
|
||||
solution: '**\PowerToys.sln'
|
||||
vsVersion: 16.0
|
||||
vsVersion: 17.0
|
||||
platform: '$(BuildPlatform)'
|
||||
configuration: '$(BuildConfiguration)'
|
||||
msbuildArgs: ${{ parameters.additionalBuildArguments }}
|
||||
clean: true
|
||||
maximumCpuCount: true
|
||||
|
||||
- task: NuGetCommand@2
|
||||
displayName: Restore NuGet packages for BugReportTool.sln
|
||||
inputs:
|
||||
command: restore
|
||||
feedsToUse: config
|
||||
configPath: NuGet.config
|
||||
restoreSolution: tools\BugReportTool\BugReportTool.sln
|
||||
restoreDirectory: '$(Build.SourcesDirectory)\tools\BugReportTool\packages'
|
||||
|
||||
- task: VSBuild@1
|
||||
displayName: 'Build BugReportTool.sln'
|
||||
inputs:
|
||||
solution: '**\BugReportTool.sln'
|
||||
vsVersion: 17.0
|
||||
platform: '$(BuildPlatform)'
|
||||
configuration: '$(BuildConfiguration)'
|
||||
msbuildArgs: ${{ parameters.additionalBuildArguments }}
|
||||
maximumCpuCount: true
|
||||
|
||||
- task: NuGetCommand@2
|
||||
displayName: Restore NuGet packages for WebcamReportTool.sln
|
||||
inputs:
|
||||
command: restore
|
||||
feedsToUse: config
|
||||
configPath: NuGet.config
|
||||
restoreSolution: tools\WebcamReportTool\WebcamReportTool.sln
|
||||
restoreDirectory: '$(Build.SourcesDirectory)\tools\WebcamReportTool\packages'
|
||||
|
||||
- task: VSBuild@1
|
||||
displayName: 'Build WebcamReportTool.sln'
|
||||
inputs:
|
||||
solution: '**\WebcamReportTool.sln'
|
||||
vsVersion: 17.0
|
||||
platform: '$(BuildPlatform)'
|
||||
configuration: '$(BuildConfiguration)'
|
||||
msbuildArgs: ${{ parameters.additionalBuildArguments }}
|
||||
maximumCpuCount: true
|
||||
|
||||
- task: NuGetCommand@2
|
||||
displayName: Restore NuGet packages for StylesReportTool.sln
|
||||
inputs:
|
||||
command: restore
|
||||
feedsToUse: config
|
||||
configPath: NuGet.config
|
||||
restoreSolution: tools\StylesReportTool\StylesReportTool.sln
|
||||
restoreDirectory: '$(Build.SourcesDirectory)\tools\StylesReportTool\packages'
|
||||
|
||||
- task: VSBuild@1
|
||||
displayName: 'Build StylesReportTool.sln'
|
||||
inputs:
|
||||
solution: '**\StylesReportTool.sln'
|
||||
vsVersion: 17.0
|
||||
platform: '$(BuildPlatform)'
|
||||
configuration: '$(BuildConfiguration)'
|
||||
msbuildArgs: ${{ parameters.additionalBuildArguments }}
|
||||
maximumCpuCount: true
|
||||
|
||||
- task: NuGetCommand@2
|
||||
displayName: Restore NuGet packages for PowerToysSetup.sln
|
||||
inputs:
|
||||
command: restore
|
||||
feedsToUse: config
|
||||
configPath: NuGet.config
|
||||
restoreSolution: installer\PowerToysSetup.sln
|
||||
restoreDirectory: '$(Build.SourcesDirectory)\installer\packages'
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: Download and install WiX 3.14 development build
|
||||
inputs:
|
||||
targetType: filePath
|
||||
filePath: '$(build.sourcesdirectory)\.pipelines\installWiX.ps1'
|
||||
|
||||
- task: VSBuild@1
|
||||
displayName: 'Build PowerToys per-machine MSI'
|
||||
inputs:
|
||||
solution: '**\installer\PowerToysSetup.sln'
|
||||
vsVersion: 17.0
|
||||
platform: '$(BuildPlatform)'
|
||||
configuration: '$(BuildConfiguration)'
|
||||
msbuildArgs: /t:PowerToysInstaller ${{ parameters.additionalBuildArguments }}
|
||||
maximumCpuCount: true
|
||||
|
||||
- task: VSBuild@1
|
||||
displayName: 'Build PowerToys per-machine Bootstrapper'
|
||||
inputs:
|
||||
solution: '**\installer\PowerToysSetup.sln'
|
||||
vsVersion: 17.0
|
||||
platform: '$(BuildPlatform)'
|
||||
configuration: '$(BuildConfiguration)'
|
||||
msbuildArgs: /t:PowerToysBootstrapper ${{ parameters.additionalBuildArguments }}
|
||||
clean: false
|
||||
maximumCpuCount: true
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: Clean installer dir before building per-user installer
|
||||
inputs:
|
||||
targetType: inline
|
||||
script: git clean -xfd -e *exe -- .\installer\
|
||||
pwsh: true
|
||||
|
||||
- task: NuGetCommand@2
|
||||
displayName: Restore NuGet packages for PowerToysSetup.sln
|
||||
inputs:
|
||||
command: restore
|
||||
feedsToUse: config
|
||||
configPath: NuGet.config
|
||||
restoreSolution: installer\PowerToysSetup.sln
|
||||
restoreDirectory: '$(Build.SourcesDirectory)\installer\packages'
|
||||
|
||||
- task: VSBuild@1
|
||||
displayName: 'Build PowerToys per-user MSI'
|
||||
inputs:
|
||||
solution: '**\installer\PowerToysSetup.sln'
|
||||
vsVersion: 17.0
|
||||
platform: '$(BuildPlatform)'
|
||||
configuration: '$(BuildConfiguration)'
|
||||
msbuildArgs: /t:PowerToysInstaller ${{ parameters.additionalBuildArguments }} /p:PerUser=true
|
||||
maximumCpuCount: true
|
||||
|
||||
- task: VSBuild@1
|
||||
displayName: 'Build PowerToys per-user Bootstrapper'
|
||||
inputs:
|
||||
solution: '**\installer\PowerToysSetup.sln'
|
||||
vsVersion: 17.0
|
||||
platform: '$(BuildPlatform)'
|
||||
configuration: '$(BuildConfiguration)'
|
||||
msbuildArgs: /t:PowerToysBootstrapper ${{ parameters.additionalBuildArguments }} /p:PerUser=true
|
||||
clean: false
|
||||
maximumCpuCount: true
|
||||
|
||||
# directly not doing WinAppDriver testing
|
||||
- task: VSTest@2
|
||||
displayName: 'MS Tests'
|
||||
condition: ne(variables['BuildPlatform'], 'arm64') # No arm64 agents to run the tests.
|
||||
inputs:
|
||||
platform: '$(BuildPlatform)'
|
||||
configuration: '$(BuildConfiguration)'
|
||||
testSelector: 'testAssemblies'
|
||||
testAssemblyVer2: |
|
||||
**\UnitTests-GcodeThumbnailProvider.dll
|
||||
**\UnitTests-StlThumbnailProvider.dll
|
||||
**\UnitTests-PdfThumbnailProvider.dll
|
||||
**\Settings.UI.UnitTests.dll
|
||||
**\UnitTests-GcodePreviewHandler.dll
|
||||
**\UnitTests-PdfPreviewHandler.dll
|
||||
**\UnitTests-PreviewHandlerCommon.dll
|
||||
**\Microsoft.PowerToys.Run.Plugin.Registry.UnitTests.dll
|
||||
**\UnitTest-ColorPickerUI.dll
|
||||
**\Microsoft.Interop.Tests.dll
|
||||
**\ImageResizer.Test.dll
|
||||
**\Community.PowerToys.Run.Plugin.UnitConverter.UnitTest.dll
|
||||
**\Microsoft.Plugin.Folder.UnitTests.dll
|
||||
**\Microsoft.Plugin.Program.UnitTests.dll
|
||||
**\Microsoft.PowerToys.Run.Plugin.Calculator.UnitTest.dll
|
||||
**\Microsoft.Plugin.Uri.UnitTests.dll
|
||||
**\Wox.Test.dll
|
||||
**\Microsoft.PowerToys.Run.Plugin.System.UnitTests.dll
|
||||
**\Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests.dll
|
||||
**\Microsoft.Plugin.WindowsTerminal.UnitTests.dll
|
||||
**\Microsoft.Plugin.WindowWalker.UnitTests.dll
|
||||
**\PreviewPaneUnitTests.dll
|
||||
**\UnitTests-SvgThumbnailProvider.dll
|
||||
**\UnitTests-SvgPreviewHandler.dll
|
||||
**\PowerToys.Hosts.Tests.dll
|
||||
**\MouseJumpUI.UnitTests.dll
|
||||
!**\obj\**
|
||||
!**\ref\**
|
||||
|
||||
# Native dlls
|
||||
- task: VSTest@2
|
||||
condition: ne(variables['BuildPlatform'],'arm64') # No arm64 agents to run the tests.
|
||||
displayName: 'Native Tests'
|
||||
inputs:
|
||||
platform: '$(BuildPlatform)'
|
||||
configuration: '$(BuildConfiguration)'
|
||||
testSelector: 'testAssemblies'
|
||||
testAssemblyVer2: |
|
||||
**\KeyboardManagerEngineTest.dll
|
||||
**\KeyboardManagerEditorTest.dll
|
||||
**\UnitTests-CommonLib.dll
|
||||
**\PowerRenameUnitTests.dll
|
||||
**\powerpreviewTest.dll
|
||||
**\UnitTests-FancyZones.dll
|
||||
!**\obj\**
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: Trigger dotnet welcome message so that it does not cause errors on other scripts
|
||||
inputs:
|
||||
targetType: 'inline'
|
||||
script: |
|
||||
dotnet list $(build.sourcesdirectory)\src\common\Common.UI\Common.UI.csproj package
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: Verifying Notice.md and Nuget packages match
|
||||
inputs:
|
||||
filePath: '$(build.sourcesdirectory)\.pipelines\verifyNoticeMdAgainstNugetPackages.ps1'
|
||||
arguments: -path '$(build.sourcesdirectory)\'
|
||||
pwsh: true
|
||||
|
||||
26
.pipelines/installWiX.ps1
Normal file
26
.pipelines/installWiX.ps1
Normal file
@@ -0,0 +1,26 @@
|
||||
$ProgressPreference = 'SilentlyContinue'
|
||||
|
||||
$WixDownloadUrl = "https://wixtoolset.org/downloads/v3.14.0.6526/wix314.exe"
|
||||
$WixBinariesDownloadUrl = "https://wixtoolset.org/downloads/v3.14.0.6526/wix314-binaries.zip"
|
||||
|
||||
# Download WiX binaries and verify their hash sums
|
||||
Invoke-WebRequest -Uri $WixDownloadUrl -OutFile "$($ENV:Temp)\wix314.exe"
|
||||
$Hash = (Get-FileHash -Algorithm SHA256 "$($ENV:Temp)\wix314.exe").Hash
|
||||
if ($Hash -ne 'FADEB00B1FCCD9BB2FDD6CE28D4C3ECDA339C8906A72586515C14A93CEADB6FE')
|
||||
{
|
||||
Write-Error "$WixHash"
|
||||
throw "wix314.exe has unexpected SHA256 hash: $Hash"
|
||||
}
|
||||
Invoke-WebRequest -Uri $WixBinariesDownloadUrl -OutFile "$($ENV:Temp)\wix314-binaries.zip"
|
||||
$Hash = (Get-FileHash -Algorithm SHA256 "$($ENV:Temp)\wix314-binaries.zip").Hash
|
||||
if($Hash -ne '4C89898DF3BCAB13E12F7CA54399C35AD273475AD2CB6284611D00AE2D063C2C')
|
||||
{
|
||||
throw "wix314-binaries.zip has unexpected SHA256 hash: $Hash"
|
||||
}
|
||||
|
||||
# Install WiX
|
||||
Start-Process -Wait -FilePath "$($ENV:Temp)\wix314.exe" -ArgumentList "/install /quiet"
|
||||
|
||||
# Extract WiX binaries and copy wix.targets to the installed dir
|
||||
Expand-Archive -Path "$($ENV:Temp)\wix314-binaries.zip" -Force -DestinationPath "$($ENV:Temp)"
|
||||
Copy-Item -Path "$($ENV:Temp)\wix.targets" -Destination "C:\Program Files (x86)\WiX Toolset v3.14\"
|
||||
141
.pipelines/installer-steps.yml
Normal file
141
.pipelines/installer-steps.yml
Normal file
@@ -0,0 +1,141 @@
|
||||
parameters:
|
||||
- name: versionNumber
|
||||
type: string
|
||||
default: "0.0.1"
|
||||
- name: perUserArg
|
||||
type: string
|
||||
default: "false"
|
||||
- name: buildSubDir
|
||||
type: string
|
||||
default: "MachineSetup"
|
||||
- name: installerPrefix
|
||||
type: string
|
||||
default: "PowerToysSetup"
|
||||
|
||||
steps:
|
||||
- task: VSBuild@1
|
||||
displayName: Build PowerToysSetupCustomActions DLL # This dll needs to be build and signed before building the MSI.
|
||||
inputs:
|
||||
solution: "**/installer/PowerToysSetup.sln"
|
||||
vsVersion: 17.0
|
||||
msbuildArgs: /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog /t:PowerToysSetupCustomActions /p:RunBuildEvents=true /p:PerUser=${{parameters.perUserArg}}
|
||||
platform: $(BuildPlatform)
|
||||
configuration: $(BuildConfiguration)
|
||||
clean: true
|
||||
maximumCpuCount: true
|
||||
|
||||
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
|
||||
displayName: Sign PowerToysSetupCustomActions DLL
|
||||
inputs:
|
||||
ConnectedServiceName: "Terminal/Console/WinAppDriver Team Code Signing Connection"
|
||||
FolderPath: 'installer/PowerToysSetupCustomActions/$(BuildPlatform)\$(BuildConfiguration)\${{parameters.buildSubDir}}'
|
||||
signType: batchSigning
|
||||
batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_installer.json'
|
||||
ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml'
|
||||
|
||||
## INSTALLER START
|
||||
#### MSI BUILDING AND SIGNING
|
||||
- task: VSBuild@1
|
||||
displayName: Build MSI
|
||||
inputs:
|
||||
solution: "**/installer/PowerToysSetup.sln"
|
||||
vsVersion: 17.0
|
||||
msbuildArgs: /p:CIBuild=true /target:PowerToysInstaller /bl:$(Build.SourcesDirectory)\msbuild.binlog /p:RunBuildEvents=false /p:PerUser=${{parameters.perUserArg}}
|
||||
platform: $(BuildPlatform)
|
||||
configuration: $(BuildConfiguration)
|
||||
clean: false # don't undo our hard work above by deleting the CustomActions dll
|
||||
maximumCpuCount: true
|
||||
|
||||
- task: CmdLine@2
|
||||
displayName: "Extracting MSI to verify contents"
|
||||
inputs:
|
||||
script: |
|
||||
"C:\Program Files (x86)\WiX Toolset v3.14\bin\dark.exe" -x $(build.sourcesdirectory)\extractedMsi installer\PowerToysSetup\$(BuildPlatform)\$(BuildConfiguration)\${{parameters.buildSubDir}}\${{parameters.installerPrefix}}-${{ parameters.versionNumber }}-$(BuildPlatform).msi
|
||||
dir $(build.sourcesdirectory)\extractedMsi
|
||||
|
||||
# Did we sign all files
|
||||
- task: PowerShell@1
|
||||
displayName: Verifying entire build is signed and version set
|
||||
inputs:
|
||||
scriptName: .pipelines/versionAndSignCheck.ps1
|
||||
arguments: -targetDir '$(build.sourcesdirectory)\extractedMsi\File'
|
||||
|
||||
- task: PowerShell@1
|
||||
displayName: Verifying MSI Custom Actions DLL is signed
|
||||
inputs:
|
||||
scriptName: .pipelines/versionAndSignCheck.ps1
|
||||
arguments: -targetDir '$(build.sourcesdirectory)\extractedMsi\Binary'
|
||||
|
||||
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
|
||||
displayName: Sign MSI
|
||||
inputs:
|
||||
ConnectedServiceName: "Terminal/Console/WinAppDriver Team Code Signing Connection"
|
||||
FolderPath: 'installer/PowerToysSetup/$(BuildPlatform)\$(BuildConfiguration)\${{parameters.buildSubDir}}'
|
||||
signType: batchSigning
|
||||
batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_installer.json'
|
||||
ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml'
|
||||
#### END MSI
|
||||
#### BOOTSTRAP BUILDING AND SIGNING
|
||||
|
||||
- task: VSBuild@1
|
||||
displayName: Build Bootstrapper
|
||||
inputs:
|
||||
solution: "**/installer/PowerToysSetup.sln"
|
||||
vsVersion: 17.0
|
||||
msbuildArgs: /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog /t:PowerToysBootstrapper /p:PerUser=${{parameters.perUserArg}}
|
||||
platform: $(BuildPlatform)
|
||||
configuration: $(BuildConfiguration)
|
||||
clean: false # don't undo our hard work above by deleting the MSI
|
||||
maximumCpuCount: true
|
||||
|
||||
- task: CmdLine@2
|
||||
displayName: "Insignia: Extract Engine from Bundle"
|
||||
inputs:
|
||||
script: '"C:\Program Files (x86)\WiX Toolset v3.14\bin\insignia.exe" -ib installer\PowerToysSetup\$(BuildPlatform)\$(BuildConfiguration)\${{parameters.buildSubDir}}\${{parameters.installerPrefix}}-${{ parameters.versionNumber }}-$(BuildPlatform).exe -o installer\engine.exe'
|
||||
|
||||
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
|
||||
displayName: "ESRP CodeSigning (Engine)"
|
||||
inputs:
|
||||
ConnectedServiceName: "Terminal/Console/WinAppDriver Team Code Signing Connection"
|
||||
FolderPath: "installer"
|
||||
Pattern: engine.exe
|
||||
signConfigType: inlineSignParams
|
||||
inlineOperation: |
|
||||
[
|
||||
{
|
||||
"KeyCode": "CP-230012",
|
||||
"OperationCode": "SigntoolSign",
|
||||
"Parameters": {
|
||||
"OpusName": "Microsoft",
|
||||
"OpusInfo": "http://www.microsoft.com",
|
||||
"FileDigest": "/fd \"SHA256\"",
|
||||
"PageHash": "/NPH",
|
||||
"TimeStamp": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
|
||||
},
|
||||
"ToolName": "sign",
|
||||
"ToolVersion": "1.0"
|
||||
},
|
||||
{
|
||||
"KeyCode": "CP-230012",
|
||||
"OperationCode": "SigntoolVerify",
|
||||
"Parameters": {},
|
||||
"ToolName": "sign",
|
||||
"ToolVersion": "1.0"
|
||||
}
|
||||
]
|
||||
|
||||
- task: CmdLine@2
|
||||
displayName: "Insignia: Merge Engine into Bundle"
|
||||
inputs:
|
||||
script: '"C:\Program Files (x86)\WiX Toolset v3.14\bin\insignia.exe" -ab installer\engine.exe installer\PowerToysSetup\$(BuildPlatform)\$(BuildConfiguration)\${{parameters.buildSubDir}}\${{parameters.installerPrefix}}-${{ parameters.versionNumber }}-$(BuildPlatform).exe -o installer\PowerToysSetup\$(BuildPlatform)\$(BuildConfiguration)\${{parameters.buildSubDir}}\${{parameters.installerPrefix}}-${{ parameters.versionNumber }}-$(BuildPlatform).exe'
|
||||
|
||||
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
|
||||
displayName: Sign Bootstrapper
|
||||
inputs:
|
||||
ConnectedServiceName: "Terminal/Console/WinAppDriver Team Code Signing Connection"
|
||||
FolderPath: 'installer/PowerToysSetup/$(BuildPlatform)\$(BuildConfiguration)\${{parameters.buildSubDir}}'
|
||||
signType: batchSigning
|
||||
batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_installer.json'
|
||||
ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml'
|
||||
#### END BOOTSTRAP
|
||||
## END INSTALLER
|
||||
52
.pipelines/loc/loc.yml
Normal file
52
.pipelines/loc/loc.yml
Normal file
@@ -0,0 +1,52 @@
|
||||
trigger: none
|
||||
pr: none
|
||||
schedules:
|
||||
- cron: "0 3 * * 2-6" # Run at 03:00 UTC Tuesday through Saturday (After the work day in Pacific, Mon-Fri)
|
||||
displayName: "Nightly Localization Build"
|
||||
branches:
|
||||
include:
|
||||
- main
|
||||
always: false # only run if there's code changes!
|
||||
|
||||
pool:
|
||||
vmImage: windows-2019
|
||||
|
||||
resources:
|
||||
repositories:
|
||||
- repository: self
|
||||
type: git
|
||||
ref: master
|
||||
|
||||
steps:
|
||||
|
||||
- checkout: self
|
||||
clean: true
|
||||
submodules: false
|
||||
fetchDepth: 1 # Don't need a deep checkout for loc files!
|
||||
persistCredentials: true
|
||||
|
||||
- task: MicrosoftTDBuild.tdbuild-task.tdbuild-task.TouchdownBuildTask@1
|
||||
displayName: 'Touchdown Build - 37400, PRODEXT'
|
||||
inputs:
|
||||
teamId: 37400
|
||||
authId: '$(TouchdownApplicationID)'
|
||||
authKey: '$(TouchdownApplicationKey)'
|
||||
resourceFilePath: |
|
||||
**\Resources.resx
|
||||
**\Resource.resx
|
||||
**\Resources.resw
|
||||
outputDirectoryRoot: LocOutput
|
||||
appendRelativeDir: true
|
||||
pseudoSetting: Included
|
||||
|
||||
# Saving one of these makes it really easy to inspect the loc output...
|
||||
- powershell: 'tar czf LocOutput.tar.gz LocOutput'
|
||||
displayName: 'PowerShell Script'
|
||||
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: 'Publish Artifact: LocOutput'
|
||||
inputs:
|
||||
PathtoPublish: LocOutput.tar.gz
|
||||
ArtifactName: LocOutput
|
||||
|
||||
|
||||
4
.pipelines/packages.config
Normal file
4
.pipelines/packages.config
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Microsoft.PowerToys.Telemetry" version="2.0" />
|
||||
</packages>
|
||||
@@ -1,21 +0,0 @@
|
||||
static_analysis_options:
|
||||
fxcop_options:
|
||||
disable_tool_scan: false
|
||||
policheck_options:
|
||||
fail_on_error: true
|
||||
moderncop_options:
|
||||
fail_on_error: true
|
||||
files_to_scan:
|
||||
- from: 'src'
|
||||
exclude:
|
||||
- '**/just.config.js'
|
||||
- '**/webpack.config.js'
|
||||
- '**/webpack.serve.config.js'
|
||||
- '**/dist/bundle.js'
|
||||
binskim_options:
|
||||
disable_tool_scan: false
|
||||
files_to_scan:
|
||||
- from: 'installer/packages'
|
||||
exclude:
|
||||
- 'WiX.3.11.1/**/*.dll'
|
||||
- 'Wix.3.11.1/**/*.exe'
|
||||
@@ -1,81 +0,0 @@
|
||||
environment:
|
||||
host:
|
||||
os: 'windows'
|
||||
flavor: 'server'
|
||||
version: '2016'
|
||||
runtime:
|
||||
provider: 'appcontainer'
|
||||
image: 'cdpxwin.azurecr.io/user/powertoys/vs2019:3.0'
|
||||
source_mode: 'map'
|
||||
|
||||
version:
|
||||
name: 'PowerToys'
|
||||
major: 1
|
||||
minor: 0
|
||||
|
||||
signing_options:
|
||||
profile: 'external_distribution'
|
||||
|
||||
package_sources:
|
||||
nuget:
|
||||
feeds:
|
||||
'Nuget': 'https://api.nuget.org/v3/index.json'
|
||||
'PipelineBuildSupplement': 'https://msazure.pkgs.visualstudio.com/_packaging/PipelineBuildSupplement/nuget/v3/index.json'
|
||||
|
||||
restore:
|
||||
commands:
|
||||
- !!defaultcommand
|
||||
name: 'Restore Power Toys Telemetry'
|
||||
command: '.pipelines\restore-telemetry.cmd'
|
||||
- !!defaultcommand
|
||||
name: 'Restore Power Toys'
|
||||
command: '.pipelines\restore.cmd'
|
||||
- !!defaultcommand
|
||||
name: 'Restore Installer'
|
||||
command: '.pipelines\restore-installer.cmd'
|
||||
|
||||
|
||||
build:
|
||||
commands:
|
||||
- !!buildcommand
|
||||
name: 'Build Power Toys'
|
||||
command: '.pipelines\build.cmd'
|
||||
artifacts:
|
||||
- from: 'x64/Release'
|
||||
to: 'Build_Output'
|
||||
include:
|
||||
- 'PowerToys.exe'
|
||||
- 'PowerToysSettings.exe'
|
||||
- 'modules\FancyZonesEditor.exe'
|
||||
- 'modules\fancyzones.dll'
|
||||
- 'modules\shortcut_guide.dll'
|
||||
signing_options:
|
||||
sign_inline: true # This does signing a soon as this command completes
|
||||
- !!buildcommand
|
||||
name: 'Build Power Toys Installer'
|
||||
command: '.pipelines\build-installer.cmd'
|
||||
artifacts:
|
||||
- from: 'installer\PowerToysSetup\x64\Release'
|
||||
to: 'Build_Installer_Output'
|
||||
include:
|
||||
- 'PowerToysSetup.msi'
|
||||
signing_options:
|
||||
sign_inline: true # This does signing a soon as this command completes
|
||||
|
||||
static_analysis_options:
|
||||
binskim_options:
|
||||
files_to_scan:
|
||||
- from: 'installer/packages'
|
||||
exclude:
|
||||
exclude:
|
||||
- 'WiX.3.11.1/**/*.dll'
|
||||
- 'Wix.3.11.1/**/*.exe'
|
||||
moderncop_options:
|
||||
files_to_scan:
|
||||
- from: 'src'
|
||||
exclude:
|
||||
- '**/just.config.js'
|
||||
- '**/webpack.config.js'
|
||||
- '**/webpack.serve.config.js'
|
||||
- '**/dist/bundle.js'
|
||||
|
||||
16
.pipelines/release-nuget.config
Normal file
16
.pipelines/release-nuget.config
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<packageSources>
|
||||
<clear />
|
||||
<add key="PowerToysDependencies" value="https://microsoft.pkgs.visualstudio.com/Dart/_packaging/PowerToysDependencies/nuget/v3/index.json" />
|
||||
</packageSources>
|
||||
<packageSourceMapping>
|
||||
<clear />
|
||||
<packageSource key="PowerToysDependencies">
|
||||
<package pattern="*" />
|
||||
</packageSource>
|
||||
</packageSourceMapping>
|
||||
<disabledPackageSources>
|
||||
<clear />
|
||||
</disabledPackageSources>
|
||||
</configuration>
|
||||
447
.pipelines/release.yml
Normal file
447
.pipelines/release.yml
Normal file
@@ -0,0 +1,447 @@
|
||||
# This build should never run as CI or against a pull request.
|
||||
trigger: none
|
||||
pr: none
|
||||
|
||||
pool:
|
||||
name: WinDevPool-L
|
||||
demands: ImageOverride -equals WinDevVS17-latest
|
||||
|
||||
parameters:
|
||||
- name: buildConfigurations
|
||||
type: object
|
||||
default:
|
||||
- Release
|
||||
- name: buildPlatforms
|
||||
type: object
|
||||
default:
|
||||
- x64
|
||||
- arm64
|
||||
- name: versionNumber
|
||||
type: string
|
||||
default: '0.0.1'
|
||||
|
||||
variables:
|
||||
IsPipeline: 1 # The installer uses this to detect whether it should pick up localizations
|
||||
SkipCppCodeAnalysis: 1 # Skip the code analysis to speed up release CI. It runs on PR CI, anyway
|
||||
IsExperimentationLive: 1 # The build and installer use this to turn on experimentation
|
||||
|
||||
name: $(BuildDefinitionName)_$(date:yyMM).$(date:dd)$(rev:rrr)
|
||||
resources:
|
||||
repositories:
|
||||
- repository: self
|
||||
type: git
|
||||
ref: main
|
||||
jobs:
|
||||
- job: Build
|
||||
strategy:
|
||||
matrix:
|
||||
${{ each config in parameters.buildConfigurations }}:
|
||||
${{ each platform in parameters.buildPlatforms }}:
|
||||
${{ config }}_${{ platform }}:
|
||||
BuildConfiguration: ${{ config }}
|
||||
BuildPlatform: ${{ platform }}
|
||||
NUGET_RESTORE_MSBUILD_ARGS: /p:Platform=${{ platform }} # Required for nuget to work due to self contained
|
||||
NODE_OPTIONS: --max_old_space_size=16384
|
||||
displayName: Build
|
||||
timeoutInMinutes: 120 # Some of the loc stuff adds quite a bit of time.
|
||||
cancelTimeoutInMinutes: 1
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: true
|
||||
submodules: true
|
||||
persistCredentials: True
|
||||
|
||||
# Sets versions for all PowerToy created DLLs
|
||||
- task: PowerShell@1
|
||||
displayName: Set Versions.Prop
|
||||
inputs:
|
||||
scriptName: .pipelines/versionSetting.ps1
|
||||
arguments: -versionNumber '${{ parameters.versionNumber }}' -DevEnvironment ''
|
||||
|
||||
# Guardian tool needs 'Microsoft.NETCore.App', version '2.1.0' (x64)
|
||||
- task: UseDotNet@2
|
||||
displayName: 'Use .NET Core 2.1 SDK'
|
||||
inputs:
|
||||
packageType: sdk
|
||||
version: '2.1.x'
|
||||
|
||||
- task: UseDotNet@2
|
||||
displayName: 'Use .NET 7 SDK'
|
||||
inputs:
|
||||
packageType: sdk
|
||||
version: '7.x'
|
||||
|
||||
- task: NuGetAuthenticate@0
|
||||
|
||||
- task: NuGetToolInstaller@1
|
||||
displayName: Use NuGet Installer latest
|
||||
|
||||
# this will restore the following nugets:
|
||||
# - main solution
|
||||
# - Bug report tool
|
||||
# - Webcam report tool
|
||||
# - Installer
|
||||
# - Bootstrapper Installer
|
||||
- task: NuGetCommand@2
|
||||
displayName: NuGet restore solutions dependencies
|
||||
inputs:
|
||||
command: restore
|
||||
restoreSolution: '**/*.sln'
|
||||
selectOrConfig: config
|
||||
nugetConfigPath: .pipelines/release-nuget.config
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: Download and install WiX 3.14 development build
|
||||
inputs:
|
||||
targetType: filePath
|
||||
filePath: '$(build.sourcesdirectory)\.pipelines\installWiX.ps1'
|
||||
|
||||
- task: MicrosoftTDBuild.tdbuild-task.tdbuild-task.TouchdownBuildTask@1
|
||||
displayName: 'Download Localization Files -- PowerToys 37400'
|
||||
inputs:
|
||||
teamId: 37400
|
||||
authId: '$(TouchdownApplicationID)'
|
||||
authKey: '$(TouchdownApplicationKey)'
|
||||
resourceFilePath: |
|
||||
**\Resources.resx
|
||||
**\Resource.resx
|
||||
**\Resources.resw
|
||||
appendRelativeDir: true
|
||||
localizationTarget: false
|
||||
# pseudoSetting: Included
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: Move Loc files into correct locations
|
||||
inputs:
|
||||
targetType: inline
|
||||
script: >-
|
||||
$VerbosePreference = "Continue"
|
||||
|
||||
./tools/build/move-and-rename-resx.ps1
|
||||
|
||||
./tools/build/move-uwp-resw.ps1
|
||||
pwsh: true
|
||||
|
||||
- task: CmdLine@2
|
||||
displayName: Moving telem files
|
||||
inputs:
|
||||
script: |
|
||||
call nuget.exe restore -configFile .pipelines/release-nuget.config -PackagesDirectory . .pipelines/packages.config || exit /b 1
|
||||
move /Y "Microsoft.PowerToys.Telemetry.2.0.0\build\include\TraceLoggingDefines.h" "src\common\Telemetry\TraceLoggingDefines.h" || exit /b 1
|
||||
move /Y "Microsoft.PowerToys.Telemetry.2.0.0\build\include\TelemetryBase.cs" "src\common\Telemetry\TelemetryBase.cs" || exit /b 1
|
||||
|
||||
## ALL BUT INSTALLER BUILDING
|
||||
- task: VSBuild@1
|
||||
displayName: Build PowerToys main project
|
||||
inputs:
|
||||
solution: '**\PowerToys.sln'
|
||||
vsVersion: 17.0
|
||||
msbuildArgs: /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog
|
||||
platform: $(BuildPlatform)
|
||||
configuration: $(BuildConfiguration)
|
||||
clean: true
|
||||
maximumCpuCount: true
|
||||
|
||||
- task: VSBuild@1
|
||||
displayName: Build BugReportTool
|
||||
inputs:
|
||||
solution: '**/tools/BugReportTool/BugReportTool.sln'
|
||||
vsVersion: 17.0
|
||||
msbuildArgs: /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog
|
||||
platform: $(BuildPlatform)
|
||||
configuration: $(BuildConfiguration)
|
||||
clean: true
|
||||
maximumCpuCount: true
|
||||
|
||||
- task: VSBuild@1
|
||||
displayName: Build WebcamReportTool
|
||||
inputs:
|
||||
solution: '**/tools/WebcamReportTool/WebcamReportTool.sln'
|
||||
vsVersion: 17.0
|
||||
msbuildArgs: /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog
|
||||
platform: $(BuildPlatform)
|
||||
configuration: $(BuildConfiguration)
|
||||
clean: true
|
||||
maximumCpuCount: true
|
||||
|
||||
- task: VSBuild@1
|
||||
displayName: Build StylesReportTool
|
||||
inputs:
|
||||
solution: '**/tools/StylesReportTool/StylesReportTool.sln'
|
||||
vsVersion: 17.0
|
||||
msbuildArgs: /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog
|
||||
platform: $(BuildPlatform)
|
||||
configuration: $(BuildConfiguration)
|
||||
clean: true
|
||||
maximumCpuCount: true
|
||||
|
||||
- task: VSBuild@1
|
||||
displayName: Publish Settings for Packaging
|
||||
inputs:
|
||||
solution: 'src/settings-ui/Settings.UI/PowerToys.Settings.csproj'
|
||||
vsVersion: 17.0
|
||||
msbuildArgs: >-
|
||||
/target:Publish
|
||||
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
|
||||
/p:VCRTForwarders-IncludeDebugCRT=false
|
||||
/p:PowerToysRoot=$(Build.SourcesDirectory)
|
||||
/p:PublishProfile=InstallationPublishProfile.pubxml
|
||||
platform: $(BuildPlatform)
|
||||
configuration: $(BuildConfiguration)
|
||||
maximumCpuCount: true
|
||||
|
||||
- task: VSBuild@1
|
||||
displayName: Publish Launcher for Packaging
|
||||
inputs:
|
||||
solution: 'src/modules/launcher/PowerLauncher/PowerLauncher.csproj'
|
||||
vsVersion: 17.0
|
||||
# The arguments should be the same as the ones for Settings; make sure they are.
|
||||
msbuildArgs: >-
|
||||
/target:Publish
|
||||
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
|
||||
/p:VCRTForwarders-IncludeDebugCRT=false
|
||||
/p:PowerToysRoot=$(Build.SourcesDirectory)
|
||||
/p:PublishProfile=InstallationPublishProfile.pubxml
|
||||
platform: $(BuildPlatform)
|
||||
configuration: $(BuildConfiguration)
|
||||
maximumCpuCount: true
|
||||
|
||||
- task: VSBuild@1
|
||||
displayName: Publish Monaco Preview Handler for Packaging
|
||||
inputs:
|
||||
solution: 'src/modules/previewpane/MonacoPreviewHandler/MonacoPreviewHandler.csproj'
|
||||
vsVersion: 17.0
|
||||
# The arguments should be the same as the ones for Settings; make sure they are.
|
||||
msbuildArgs: >-
|
||||
/target:Publish
|
||||
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
|
||||
/p:VCRTForwarders-IncludeDebugCRT=false
|
||||
/p:PowerToysRoot=$(Build.SourcesDirectory)
|
||||
/p:PublishProfile=InstallationPublishProfile.pubxml
|
||||
platform: $(BuildPlatform)
|
||||
configuration: $(BuildConfiguration)
|
||||
maximumCpuCount: true
|
||||
|
||||
- task: VSBuild@1
|
||||
displayName: Publish Markdown Preview Handler for Packaging
|
||||
inputs:
|
||||
solution: 'src/modules/previewpane/MarkdownPreviewHandler/MarkdownPreviewHandler.csproj'
|
||||
vsVersion: 17.0
|
||||
# The arguments should be the same as the ones for Settings; make sure they are.
|
||||
msbuildArgs: >-
|
||||
/target:Publish
|
||||
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
|
||||
/p:VCRTForwarders-IncludeDebugCRT=false
|
||||
/p:PowerToysRoot=$(Build.SourcesDirectory)
|
||||
/p:PublishProfile=InstallationPublishProfile.pubxml
|
||||
platform: $(BuildPlatform)
|
||||
configuration: $(BuildConfiguration)
|
||||
maximumCpuCount: true
|
||||
|
||||
- task: VSBuild@1
|
||||
displayName: Publish Svg Preview Handler for Packaging
|
||||
inputs:
|
||||
solution: 'src/modules/previewpane/SvgPreviewHandler/SvgPreviewHandler.csproj'
|
||||
vsVersion: 17.0
|
||||
# The arguments should be the same as the ones for Settings; make sure they are.
|
||||
msbuildArgs: >-
|
||||
/target:Publish
|
||||
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
|
||||
/p:VCRTForwarders-IncludeDebugCRT=false
|
||||
/p:PowerToysRoot=$(Build.SourcesDirectory)
|
||||
/p:PublishProfile=InstallationPublishProfile.pubxml
|
||||
platform: $(BuildPlatform)
|
||||
configuration: $(BuildConfiguration)
|
||||
maximumCpuCount: true
|
||||
|
||||
- task: VSBuild@1
|
||||
displayName: Publish Svg Thumbnail Provider for Packaging
|
||||
inputs:
|
||||
solution: 'src/modules/previewpane/SvgThumbnailProvider/SvgThumbnailProvider.csproj'
|
||||
vsVersion: 17.0
|
||||
# The arguments should be the same as the ones for Settings; make sure they are.
|
||||
msbuildArgs: >-
|
||||
/target:Publish
|
||||
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
|
||||
/p:VCRTForwarders-IncludeDebugCRT=false
|
||||
/p:PowerToysRoot=$(Build.SourcesDirectory)
|
||||
/p:PublishProfile=InstallationPublishProfile.pubxml
|
||||
platform: $(BuildPlatform)
|
||||
configuration: $(BuildConfiguration)
|
||||
maximumCpuCount: true
|
||||
|
||||
- task: VSBuild@1
|
||||
displayName: Publish Measure Tool UI for Packaging
|
||||
inputs:
|
||||
solution: 'src/modules/MeasureTool/MeasureToolUI/MeasureToolUI.csproj'
|
||||
vsVersion: 17.0
|
||||
# The arguments should be the same as the ones for Settings; make sure they are.
|
||||
msbuildArgs: >-
|
||||
/target:Publish
|
||||
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
|
||||
/p:VCRTForwarders-IncludeDebugCRT=false
|
||||
/p:PowerToysRoot=$(Build.SourcesDirectory)
|
||||
/p:PublishProfile=InstallationPublishProfile.pubxml
|
||||
platform: $(BuildPlatform)
|
||||
configuration: $(BuildConfiguration)
|
||||
maximumCpuCount: true
|
||||
|
||||
- task: VSBuild@1
|
||||
displayName: Publish File Locksmith UI for Packaging
|
||||
inputs:
|
||||
solution: 'src/modules/FileLocksmith/FileLocksmithUI/FileLocksmithUI.csproj'
|
||||
vsVersion: 17.0
|
||||
# The arguments should be the same as the ones for Settings; make sure they are.
|
||||
msbuildArgs: >-
|
||||
/target:Publish
|
||||
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
|
||||
/p:VCRTForwarders-IncludeDebugCRT=false
|
||||
/p:PowerToysRoot=$(Build.SourcesDirectory)
|
||||
/p:PublishProfile=InstallationPublishProfile.pubxml
|
||||
platform: $(BuildPlatform)
|
||||
configuration: $(BuildConfiguration)
|
||||
maximumCpuCount: true
|
||||
|
||||
#### MAIN SIGNING AREA
|
||||
# reference https://dev.azure.com/microsoft/Dart/_git/AppDriver?path=/ESRPSigning.json&version=GBarm64-netcore&_a=contents for winappdriver
|
||||
# https://dev.azure.com/microsoft/Dart/_git/AppDriver?path=/CIPolicy.xml&version=GBarm64-netcore&_a=contents
|
||||
|
||||
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
|
||||
displayName: Sign Core PT
|
||||
inputs:
|
||||
ConnectedServiceName: 'Terminal/Console/WinAppDriver Team Code Signing Connection'
|
||||
FolderPath: '$(BuildPlatform)/$(BuildConfiguration)' # Video conf uses x86 and x64.
|
||||
signType: batchSigning
|
||||
batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_core.json'
|
||||
ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml'
|
||||
|
||||
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
|
||||
displayName: Sign x86 directshow VCM
|
||||
inputs:
|
||||
ConnectedServiceName: 'Terminal/Console/WinAppDriver Team Code Signing Connection'
|
||||
FolderPath: 'x86/$(BuildConfiguration)' # Video conf uses x86 and x64.
|
||||
signType: batchSigning
|
||||
batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_vcm.json'
|
||||
ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml'
|
||||
#### END SIGNING
|
||||
## END MAIN
|
||||
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: 'Publish Artifact: binlog'
|
||||
condition: failed()
|
||||
continueOnError: True
|
||||
inputs:
|
||||
PathtoPublish: $(Build.SourcesDirectory)\msbuild.binlog
|
||||
ArtifactName: binlog-$(BuildPlatform)
|
||||
|
||||
- task: ComponentGovernanceComponentDetection@0
|
||||
displayName: Component Detection
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: Copying files for symbols
|
||||
inputs:
|
||||
contents: >-
|
||||
**/*.pdb
|
||||
flattenFolders: True
|
||||
targetFolder: $(Build.ArtifactStagingDirectory)/Symbols-$(BuildPlatform)/
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: 'Remove unneeded files from ArtifactStagingDirectory'
|
||||
inputs:
|
||||
targetType: 'inline'
|
||||
script: |
|
||||
cd $(Build.ArtifactStagingDirectory)/Symbols-$(BuildPlatform)/
|
||||
Remove-Item vc143.pdb
|
||||
Remove-Item *test*
|
||||
|
||||
- task: PublishSymbols@2
|
||||
displayName: Publish symbols path
|
||||
continueOnError: True
|
||||
inputs:
|
||||
SearchPattern: |
|
||||
$(Build.ArtifactStagingDirectory)/Symbols-$(BuildPlatform)/**/*.*
|
||||
IndexSources: false
|
||||
SymbolServerType: TeamServices
|
||||
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: 'Publish Artifact: Symbols'
|
||||
inputs:
|
||||
PathtoPublish: $(System.ArtifactsDirectory)/Symbols-$(BuildPlatform)/
|
||||
ArtifactName: Symbols-${{ parameters.versionNumber }}-$(BuildPlatform)
|
||||
|
||||
- task: DeleteFiles@1
|
||||
displayName: 'Remove symbols from ArtifactStagingDirectory'
|
||||
inputs:
|
||||
Contents: '*'
|
||||
SourceFolder: $(Build.ArtifactStagingDirectory)/Symbols-$(BuildPlatform)/
|
||||
RemoveSourceFolder: True
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: 'Calculating SHA256 hash'
|
||||
inputs:
|
||||
targetType: 'inline'
|
||||
script: |
|
||||
$p = "$(System.ArtifactsDirectory)\";
|
||||
$staging = "$(Build.ArtifactStagingDirectory)\"
|
||||
$hash = ((get-item $p\*.exe | Get-FileHash).Hash);
|
||||
$plat = "hash_$(BuildPlatform).txt";
|
||||
$combinedPath = $staging + $plat;
|
||||
|
||||
echo $plat
|
||||
echo $hash
|
||||
echo $p
|
||||
echo $combinedPath
|
||||
|
||||
$hash | out-file -filepath $combinedPath
|
||||
pwsh: true
|
||||
|
||||
- template: installer-steps.yml
|
||||
parameters:
|
||||
versionNumber: ${{ parameters.versionNumber }}
|
||||
perUserArg: "false"
|
||||
buildSubDir: "MachineSetup"
|
||||
installerPrefix: "PowerToysSetup"
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: Clean installer dir before building per-user installer
|
||||
inputs:
|
||||
targetType: inline
|
||||
script: git clean -xfd -e *exe -- .\installer\
|
||||
pwsh: true
|
||||
|
||||
- task: NuGetCommand@2
|
||||
displayName: NuGet restore solutions dependencies
|
||||
inputs:
|
||||
command: restore
|
||||
restoreSolution: 'installer/*.sln'
|
||||
selectOrConfig: config
|
||||
nugetConfigPath: .pipelines/release-nuget.config
|
||||
|
||||
- template: installer-steps.yml
|
||||
parameters:
|
||||
versionNumber: ${{ parameters.versionNumber }}
|
||||
perUserArg: "true"
|
||||
buildSubDir: "UserSetup"
|
||||
installerPrefix: "PowerToysUserSetup"
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: Copying setup file over
|
||||
inputs:
|
||||
contents: "**/PowerToys*Setup-*.exe"
|
||||
flattenFolders: True
|
||||
targetFolder: $(Build.ArtifactStagingDirectory)
|
||||
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: "Publish Artifact: PowerToySetup"
|
||||
inputs:
|
||||
PathtoPublish: $(System.ArtifactsDirectory)
|
||||
ArtifactName: setup-$(BuildPlatform)
|
||||
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: 'Publish Artifact: GPO Files'
|
||||
inputs:
|
||||
PathtoPublish: src\gpo\assets
|
||||
ArtifactName: GroupPolicyObjectsFiles
|
||||
|
||||
|
||||
...
|
||||
@@ -1,3 +0,0 @@
|
||||
cd /D "%~dp0"
|
||||
|
||||
nuget restore ../installer/PowerToysSetup.sln || exit /b 1
|
||||
@@ -1,6 +0,0 @@
|
||||
cd /D "%~dp0"
|
||||
|
||||
set PROJECT="..\src\modules\fancyzones\editor\FancyZonesEditor\FancyZonesEditor.csproj"
|
||||
set TELEMETRY_PKG="Microsoft.PowerToys.Telemetry"
|
||||
|
||||
dotnet add %PROJECT% package %TELEMETRY_PKG%
|
||||
@@ -1,3 +0,0 @@
|
||||
cd /D "%~dp0"
|
||||
|
||||
nuget restore ../PowerToys.sln || exit /b 1
|
||||
63
.pipelines/verifyArm64Configuration.ps1
Normal file
63
.pipelines/verifyArm64Configuration.ps1
Normal file
@@ -0,0 +1,63 @@
|
||||
[CmdletBinding()]
|
||||
Param(
|
||||
[Parameter(Mandatory=$True,Position=1)]
|
||||
[string]$solution
|
||||
)
|
||||
|
||||
Write-Output "Verifying Arm64 configuration for $solution"
|
||||
|
||||
$errorTable = @{}
|
||||
|
||||
$MSBuildLoc = & "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -prerelease -requires Microsoft.Component.MSBuild -find MSBuild\**\Bin\Microsoft.Build.dll
|
||||
if ($null -eq $MSBuildLoc) {
|
||||
throw "Unable to locate Microsoft.Build.dll"
|
||||
}
|
||||
|
||||
try {
|
||||
Add-Type -Path $MSBuildLoc
|
||||
}
|
||||
catch {
|
||||
# Catching because it may error on loading all the types from the assembly, but we only need one
|
||||
}
|
||||
|
||||
$solutionFile = [Microsoft.Build.Construction.SolutionFile]::Parse($solution);
|
||||
$arm64SlnConfigs = $solutionFile.SolutionConfigurations | Where-Object {
|
||||
$_.PlatformName -ceq "ARM64"
|
||||
};
|
||||
|
||||
# Should have two configurations. Debug and Release.
|
||||
if($arm64SlnConfigs.Length -lt 2) {
|
||||
Write-Host -ForegroundColor Red "Missing Solution-level Arm64 platforms"
|
||||
exit 1;
|
||||
}
|
||||
|
||||
# List projects only.
|
||||
$projects = $solutionFile.ProjectsInOrder | Where-Object {
|
||||
$_.ProjectType -eq "KnownToBeMSBuildFormat"
|
||||
};
|
||||
|
||||
# Enumerate through the projects and add any project with a mismatched platform and project configuration
|
||||
foreach ($project in $projects) {
|
||||
foreach ($slnConfig in $arm64SlnConfigs.FullName) {
|
||||
if ($project.ProjectConfigurations.$slnConfig.FullName -cne $slnConfig) {
|
||||
$errorTable[$project.ProjectName] += @(""`
|
||||
| Select-Object @{n = "Configuration"; e = { $project.ProjectConfigurations.$slnConfig.FullName ?? "Missing platform" } },
|
||||
@{n = "ExpectedConfiguration"; e = { $slnConfig } })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($errorTable.Count -gt 0) {
|
||||
Write-Host -ForegroundColor Red "Verification failed for the following projects:`n"
|
||||
$errorTable.Keys | ForEach-Object {
|
||||
Write-Host -ForegroundColor Red $_`:;
|
||||
$errorTable[$_] | ForEach-Object {
|
||||
Write-Host -ForegroundColor Red "$($_.ExpectedConfiguration)=$($_.Configuration)";
|
||||
};
|
||||
Write-Host -ForegroundColor Red `r
|
||||
}
|
||||
exit 1;
|
||||
}
|
||||
|
||||
Write-Output "Verification Complete"
|
||||
exit 0;
|
||||
75
.pipelines/verifyNoticeMdAgainstNugetPackages.ps1
Normal file
75
.pipelines/verifyNoticeMdAgainstNugetPackages.ps1
Normal file
@@ -0,0 +1,75 @@
|
||||
[CmdletBinding()]
|
||||
Param(
|
||||
[Parameter(Mandatory=$True,Position=1)]
|
||||
[string]$path
|
||||
)
|
||||
|
||||
$noticeFile = Get-Content -Raw "NOTICE.md"
|
||||
|
||||
Write-Host $noticeFile
|
||||
|
||||
Write-Host "Verifying NuGet packages"
|
||||
|
||||
$projFiles = Get-ChildItem $path -Filter *.csproj -force -Recurse
|
||||
$projFiles.Count
|
||||
|
||||
Write-Host "Going through all csproj files"
|
||||
|
||||
$totalList = $projFiles | ForEach-Object -Parallel {
|
||||
$csproj = $_
|
||||
$nugetTemp = @();
|
||||
|
||||
#Workaround for preventing exit code from dotnet process from reflecting exit code in PowerShell
|
||||
$procInfo = New-Object System.Diagnostics.ProcessStartInfo -Property @{
|
||||
FileName = "dotnet.exe";
|
||||
Arguments = "list $csproj package";
|
||||
RedirectStandardOutput = $true;
|
||||
RedirectStandardError = $true;
|
||||
}
|
||||
|
||||
$proc = [System.Diagnostics.Process]::Start($procInfo);
|
||||
|
||||
while (!$proc.StandardOutput.EndOfStream) {
|
||||
$nugetTemp += $proc.StandardOutput.ReadLine();
|
||||
}
|
||||
|
||||
$proc = $null;
|
||||
$procInfo = $null;
|
||||
|
||||
if($nugetTemp -is [array] -and $nugetTemp.count -gt 3)
|
||||
{
|
||||
# Need to debug this script? Uncomment this line.
|
||||
# Write-Host $csproj "`r`n" $nugetTemp "`r`n"
|
||||
$temp = New-Object System.Collections.ArrayList
|
||||
$temp.AddRange($nugetTemp)
|
||||
$temp.RemoveRange(0, 3)
|
||||
|
||||
foreach($p in $temp)
|
||||
{
|
||||
# breaking item down to usable array and getting 1 and 2, see below of a sample output
|
||||
# > PACKAGE VERSION VERSION
|
||||
|
||||
$p = -split $p
|
||||
$p = $p[1, 2]
|
||||
$tempString = $p[0] + " " + $p[1]
|
||||
|
||||
if(![string]::IsNullOrWhiteSpace($tempString))
|
||||
{
|
||||
echo "- $tempString";
|
||||
}
|
||||
}
|
||||
$csproj = $null;
|
||||
}
|
||||
} -ThrottleLimit 4 | Sort-Object
|
||||
|
||||
$returnList = [System.Collections.Generic.HashSet[string]]($totalList) -join "`r`n"
|
||||
|
||||
Write-Host $returnList
|
||||
|
||||
if (!$noticeFile.Trim().EndsWith($returnList.Trim()))
|
||||
{
|
||||
Write-Host -ForegroundColor Red "Notice.md does not match NuGet list."
|
||||
exit 1
|
||||
}
|
||||
|
||||
exit 0
|
||||
18
.pipelines/verifyNugetPackages.ps1
Normal file
18
.pipelines/verifyNugetPackages.ps1
Normal file
@@ -0,0 +1,18 @@
|
||||
[CmdletBinding()]
|
||||
Param(
|
||||
[Parameter(Mandatory=$True,Position=1)]
|
||||
[string]$solution
|
||||
)
|
||||
|
||||
Write-Host "Verifying Nuget packages for $solution"
|
||||
|
||||
dotnet tool restore
|
||||
dotnet consolidate -s $solution
|
||||
|
||||
if (-not $?)
|
||||
{
|
||||
Write-Host -ForegroundColor Red "Nuget packages with the same name must all be the same version."
|
||||
exit 1
|
||||
}
|
||||
|
||||
exit 0
|
||||
82
.pipelines/versionAndSignCheck.ps1
Normal file
82
.pipelines/versionAndSignCheck.ps1
Normal file
@@ -0,0 +1,82 @@
|
||||
[CmdletBinding()]
|
||||
# todo: send in arch / conf, could send in actual path
|
||||
Param(
|
||||
[Parameter(Mandatory = $True, Position = 1)]
|
||||
[AllowEmptyString()]
|
||||
[string]$targetDir = $PSScriptRoot + '/../extractedMsi/File'
|
||||
)
|
||||
|
||||
$DirPath = $targetDir; #this file is in pipeline, we need root.
|
||||
$items = Get-ChildItem -Path $DirPath -File -Include *.exe, *.dll, *.ttf, PTCustomActions -Recurse -Force -ErrorAction SilentlyContinue
|
||||
$versionExceptions = @(
|
||||
"Microsoft.Windows.ApplicationModel.DynamicDependency.Projection.dll",
|
||||
"Microsoft.Windows.ApplicationModel.Resources.Projection.dll",
|
||||
"Microsoft.Windows.ApplicationModel.WindowsAppRuntime.Projection.dll",
|
||||
"Microsoft.Windows.AppLifecycle.Projection.dll",
|
||||
"Microsoft.Windows.System.Power.Projection.dll",
|
||||
"Microsoft.WindowsAppRuntime.Bootstrap.Net.dll",
|
||||
"Microsoft.Xaml.Interactions.dll",
|
||||
"Microsoft.Xaml.Interactivity.dll",
|
||||
"hyjiacan.py4n.dll",
|
||||
"Microsoft.WindowsAppRuntime.Release.Net.dll",
|
||||
"Microsoft.Windows.Widgets.Projection.dll") -join '|';
|
||||
$nullVersionExceptions = @(
|
||||
"codicon.ttf",
|
||||
"e_sqlite3.dll",
|
||||
"vcamp140_app.dll",
|
||||
"marshal.dll",
|
||||
"Microsoft.UI.Composition.OSSupport.dll",
|
||||
"Microsoft.UI.Xaml.Internal.dll",
|
||||
"Microsoft.Windows.ApplicationModel.Resources.dll",
|
||||
"Microsoft.WindowsAppRuntime.dll",
|
||||
"Microsoft.WindowsAppRuntime.Bootstrap.dll",
|
||||
"MRM.dll",
|
||||
"PushNotificationsLongRunningTask.ProxyStub.dll",
|
||||
"WindowsAppSdk.AppxDeploymentExtensions.Desktop.dll",
|
||||
"System.Diagnostics.EventLog.Messages.dll",
|
||||
"Microsoft.Windows.Widgets.dll") -join '|';
|
||||
$totalFailure = 0;
|
||||
|
||||
Write-Host $DirPath;
|
||||
|
||||
if (-not (Test-Path $DirPath)) {
|
||||
Write-Host "Folder does not exist!"
|
||||
}
|
||||
|
||||
Write-Host "Total items: " $items.Count
|
||||
|
||||
if ($items.Count -eq 0) {
|
||||
# no items means something bad happened. We should fail ASAP
|
||||
exit 1;
|
||||
}
|
||||
|
||||
$items | ForEach-Object {
|
||||
if ($_.VersionInfo.FileVersion -eq "1.0.0.0" -and $_.Name -notmatch $versionExceptions) {
|
||||
# These items are exceptions that actually have the 1.0.0.0 version.
|
||||
Write-Host "Version set to 1.0.0.0: " + $_.FullName
|
||||
$totalFailure++;
|
||||
}
|
||||
elseif ($_.VersionInfo.FileVersion -eq $null -and $_.Name -notmatch $nullVersionExceptions) {
|
||||
# These items are exceptions that actually a version not set.
|
||||
Write-Host "Version not set: " + $_.FullName
|
||||
$totalFailure++;
|
||||
}
|
||||
elseif ($_.VersionInfo.ProductName -contains "PowerToys" -and $_.VersionInfo.LegalCopyright -notmatch "Copyright \(C\) $((Get-Date).Year)") {
|
||||
# PowerToys assemblies that aren't updated to the current year in the copyright
|
||||
Write-Host "Copyright year out of date: " + $_.FullName
|
||||
$totalFailure++;
|
||||
}
|
||||
else {
|
||||
$auth = Get-AuthenticodeSignature $_.FullName
|
||||
if ($auth.SignerCertificate -eq $null) {
|
||||
Write-Host "Not Signed: " + $_.FullName
|
||||
$totalFailure++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($totalFailure -gt 0) {
|
||||
exit 1
|
||||
}
|
||||
|
||||
exit 0
|
||||
60
.pipelines/versionSetting.ps1
Normal file
60
.pipelines/versionSetting.ps1
Normal file
@@ -0,0 +1,60 @@
|
||||
[CmdletBinding()]
|
||||
Param(
|
||||
[Parameter(Mandatory=$True,Position=1)]
|
||||
[string]$versionNumber = "0.0.1",
|
||||
|
||||
[Parameter(Mandatory=$True,Position=2)]
|
||||
[AllowEmptyString()]
|
||||
[string]$DevEnvironment = "Local"
|
||||
)
|
||||
|
||||
Write-Host $PSScriptRoot
|
||||
$versionRegex = "(\d+)\.(\d+)\.(\d+)"
|
||||
|
||||
if($versionNumber -match $versionRegEx)
|
||||
{
|
||||
#$buildDayOfYear = (Get-Date).DayofYear;
|
||||
#$buildTime = Get-Date -Format HH;
|
||||
#$buildTime = Get-Date -Format HHmmss;
|
||||
#$buildYear = Get-Date -Format yy;
|
||||
#$revision = [string]::Format("{0}{1}{2}", $buildYear, $buildDayOfYear, $buildTime )
|
||||
|
||||
# max UInt16, 65535
|
||||
#$revision = [string]::Format("{0}{1}", $buildDayOfYear, $buildTime )
|
||||
#Write-Host "Revision" $revision
|
||||
|
||||
$versionNumber = [int]::Parse($matches[1]).ToString() + "." + [int]::Parse($matches[2]).ToString() + "." + [int]::Parse($matches[3]).ToString() # + "." + $revision
|
||||
Write-Host "Version Number" $versionNumber
|
||||
}
|
||||
else
|
||||
{
|
||||
throw "Build format does not match the expected pattern (buildName_w.x.y.z)"
|
||||
}
|
||||
|
||||
$verPropWriteFileLocation = $PSScriptRoot + '/../src/Version.props';
|
||||
$verPropReadFileLocation = $verPropWriteFileLocation;
|
||||
|
||||
[XML]$verProps = Get-Content $verPropReadFileLocation
|
||||
$verProps.Project.PropertyGroup.Version = $versionNumber;
|
||||
$verProps.Project.PropertyGroup.DevEnvironment = $DevEnvironment;
|
||||
|
||||
Write-Host "xml" $verProps.Project.PropertyGroup.Version
|
||||
$verProps.Save($verPropWriteFileLocation);
|
||||
|
||||
# Set PowerRenameContextMenu package version in AppManifest.xml
|
||||
$powerRenameContextMenuAppManifestWriteFileLocation = $PSScriptRoot + '/../src/modules/powerrename/PowerRenameContextMenu/AppxManifest.xml';
|
||||
$powerRenameContextMenuAppManifestReadFileLocation = $powerRenameContextMenuAppManifestWriteFileLocation;
|
||||
|
||||
[XML]$powerRenameContextMenuAppManifest = Get-Content $powerRenameContextMenuAppManifestReadFileLocation
|
||||
$powerRenameContextMenuAppManifest.Package.Identity.Version = $versionNumber + '.0'
|
||||
Write-Host "PowerRenameContextMenu version" $powerRenameContextMenuAppManifest.Package.Identity.Version
|
||||
$powerRenameContextMenuAppManifest.Save($powerRenameContextMenuAppManifestWriteFileLocation);
|
||||
|
||||
# Set ImageResizerContextMenu package version in AppManifest.xml
|
||||
$imageResizerContextMenuAppManifestWriteFileLocation = $PSScriptRoot + '/../src/modules/imageresizer/ImageResizerContextMenu/AppxManifest.xml';
|
||||
$imageResizerContextMenuAppManifestReadFileLocation = $imageResizerContextMenuAppManifestWriteFileLocation;
|
||||
|
||||
[XML]$imageResizerContextMenuAppManifest = Get-Content $imageResizerContextMenuAppManifestReadFileLocation
|
||||
$imageResizerContextMenuAppManifest.Package.Identity.Version = $versionNumber + '.0'
|
||||
Write-Host "ImageResizerContextMenu version" $imageResizerContextMenuAppManifest.Package.Identity.Version
|
||||
$imageResizerContextMenuAppManifest.Save($imageResizerContextMenuAppManifestWriteFileLocation);
|
||||
20
.vsconfig
Normal file
20
.vsconfig
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"version": "1.0",
|
||||
"components": [
|
||||
"Microsoft.VisualStudio.Component.CoreEditor",
|
||||
"Microsoft.VisualStudio.Workload.CoreEditor",
|
||||
"Microsoft.VisualStudio.Workload.NativeDesktop",
|
||||
"Microsoft.VisualStudio.Workload.ManagedDesktop",
|
||||
"Microsoft.VisualStudio.Workload.Universal",
|
||||
"Microsoft.VisualStudio.Component.Windows10SDK.19041",
|
||||
"Microsoft.VisualStudio.Component.Windows10SDK.20348",
|
||||
"Microsoft.VisualStudio.ComponentGroup.UWP.VC",
|
||||
"Microsoft.VisualStudio.Component.UWP.VC.ARM64",
|
||||
"Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre",
|
||||
"Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre",
|
||||
"Microsoft.VisualStudio.Component.VC.ATL.ARM64",
|
||||
"Microsoft.VisualStudio.Component.VC.ATL.ARM64.Spectre",
|
||||
"Microsoft.VisualStudio.Component.VC.ATL.Spectre",
|
||||
"Microsoft.VisualStudio.ComponentGroup.WindowsAppSDK.Cs"
|
||||
]
|
||||
}
|
||||
9
CODE_OF_CONDUCT.md
Normal file
9
CODE_OF_CONDUCT.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Microsoft Open Source Code of Conduct
|
||||
|
||||
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
|
||||
|
||||
Resources:
|
||||
|
||||
- [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
|
||||
- [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)
|
||||
- Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns
|
||||
114
COMMUNITY.md
Normal file
114
COMMUNITY.md
Normal file
@@ -0,0 +1,114 @@
|
||||
# Community
|
||||
|
||||
The PowerToys team is extremely grateful to have the support of an amazing active community. The work you do is incredibly important. PowerToys wouldn’t be near what it is without your help filing bugs, updating documentation, guiding the design, or writing features. We want to say thanks and to recognize your work. This is a living document dedicated to highlighting the high impact community members and their contributions.
|
||||
|
||||
Names are in alphabetical order based on first name.
|
||||
|
||||
## High impact community members
|
||||
|
||||
### [@Aaron-Junker](https://github.com/Aaron-Junker) - [Aaron Junker](https://aaron-junker.github.io)
|
||||
Aaron has helped triaging, discussing, and creating a substantial number of issues and contributed features/fixes. Aaron was the primary person for helping build the File Explorer preview pane handler for developer files.
|
||||
|
||||
### [@CleanCodeDeveloper](https://github.com/CleanCodeDeveloper)
|
||||
CleanCodeDeveloper helped do massive amounts of code stability and image resizer work.
|
||||
|
||||
### [@damienleroy](https://github.com/damienleroy) - [Damien Leroy](https://www.linkedin.com/in/Damien-Leroy-b2734416a/)
|
||||
Damien has helped out by developing and contributing the Quick Accent utility.
|
||||
|
||||
### [@davidegiacometti](https://github.com/davidegiacometti) - [Davide Giacometti](https://www.linkedin.com/in/davidegiacometti/)
|
||||
Davide has helped fix multiple bugs, added new utilities, features, as well as help us with the ARM64 effort by porting applications to .NET Core.
|
||||
|
||||
### [@franky920920](https://github.com/franky920920) - [Franky Chen](https://frankychen.net)
|
||||
Franky has helped triaging, discussing, and creating a substantial number of issues and contributed features/fixes to PowerToys.
|
||||
|
||||
### [@htcfreek](https://github.com/htcfreek) - Heiko
|
||||
Heiko has helped triaging, discussing, and creating a substantial number of issues and contributed features/fixes to PowerToys.
|
||||
|
||||
### [@Jay-o-Way](https://github.com/Jay-o-Way) - Jay
|
||||
Jay has helped triaging, discussing, creating a substantial number of issues and PRs.
|
||||
|
||||
### [@jsoref](https://github.com/jsoref) - [Josh Soref](https://check-spelling.dev/)
|
||||
Helping keep our spelling correct :)
|
||||
|
||||
### [@martinchrzan](https://github.com/martinchrzan/) - Martin Chrzan
|
||||
|
||||
Color Picker is from Martin.
|
||||
|
||||
### [@riverar](https://github.com/riverar) - [Rafael Rivera](https://withinrafael.com/)
|
||||
|
||||
Rafael has helped do the [upgrade from CppWinRT 1.x to 2.0](https://github.com/microsoft/PowerToys/issues/1907). He directly provided feedback to the CppWinRT team for bugs from this migration as well.
|
||||
|
||||
### [@royvou](https://github.com/royvou)
|
||||
Roy has helped out contributing multiple features to PowerToys Run
|
||||
|
||||
### [@snickler](https://github.com/snickler) - [Jeremy Sinclair](http://sinclairinat0r.com)
|
||||
Jeremy has helped drive large sums of the ARM64 support inside PowerToys
|
||||
|
||||
### [@TobiasSekan](https://github.com/TobiasSekan) - Tobias Sekan
|
||||
Tobias Sekan has helped out contributing features to PowerToys Run such as Settings plugin, Registry plugin
|
||||
|
||||
### [@ThiefZero](https://github.com/ThiefZero)
|
||||
ThiefZero has helped out contributing a features to PowerToys Run such as the unit converter plugin
|
||||
|
||||
## Open source projects
|
||||
|
||||
As PowerToys creates new utilities, some will be based off existing technology. We'll continue to do our best to contribute back to these projects but their efforts were the base of some of our projects. We want to be sure their work is directly recognized.
|
||||
|
||||
### [@jjw24](https://github.com/jjw24/) - Jeremy Wu
|
||||
|
||||
Their fork of Wox was the base of PowerToys Run.
|
||||
|
||||
### [WoX Launcher](https://github.com/Wox-launcher/Wox/)
|
||||
|
||||
Initial base of jjw24's fork, which makes it the base of PowerToys Run.
|
||||
|
||||
### [Text-Grab](https://github.com/TheJoeFin/Text-Grab) - Joseph Finney
|
||||
Joe helped develop and contribute to the Text Extractor utility. It is directly based on his Text Grab application.
|
||||
|
||||
## Microsoft community members
|
||||
|
||||
We would like to also directly call out some extremely helpful Microsoft employees that have directly contributed to PowerToys. This isn't their day job and was work they did out of passion. We want to say thank you and recognize your work.
|
||||
|
||||
### [@betsegaw](https://github.com/betsegaw/) - [Betsegaw Tadele](http://www.dreamsofameaningfullife.com/)
|
||||
|
||||
Window Walker, inside PowerToys Run, is from Beta.
|
||||
|
||||
### [@TheMrJukes](https://github.com/TheMrJukes/) - Bret Anderson
|
||||
|
||||
The base of FancyZones and a lot of performance adjustments are from the hard work of Bret.
|
||||
|
||||
### [@bricelam](https://github.com/bricelam/) - [Brice Lambson](https://bricelam.net/)
|
||||
|
||||
Image Resizer is from Brice.
|
||||
|
||||
### [@chrdavis](https://github.com/chrdavis/) - Chris Davis
|
||||
|
||||
PowerRename is from Chris's SmartRename and icon rendering for SVGs in File Explorer.
|
||||
|
||||
### [@dend](https://github.com/dend/) - Den Delimarsky
|
||||
|
||||
PowerToys Awake is a tool to keep your computer awake.
|
||||
|
||||
### [@Niels9001](https://github.com/niels9001/) - [Niels Laute](https://nielslaute.com/)
|
||||
|
||||
Niels has helped drive large sums of our update toward a new [consistent and modern UX](https://github.com/microsoft/PowerToys/issues/891). This includes the [launcher work](https://github.com/microsoft/PowerToys/issues/44), color picker UX update and [icon design](https://github.com/microsoft/PowerToys/issues/1118).
|
||||
|
||||
### [@oldnewthing](https://github.com/oldnewthing) - Raymond Chen
|
||||
|
||||
Find My Mouse is based on Raymond Chen's SuperSonar.
|
||||
|
||||
### Microsoft InVEST team
|
||||
|
||||
This amazing team helped PowerToys develop PowerToys Run and Keyboard manager as well as update our Settings to v2. @alekhyareddy28, @arjunbalgovind, @jyuwono @laviusmotileng-ms, @ryanbodrug-microsoft, @saahmedm, @somil55, @traies, @udit3333
|
||||
|
||||
## PowerToys core team
|
||||
|
||||
- [@crutkas](https://github.com/crutkas/) - Clint Rutkas - Lead
|
||||
- [@cinnamon-msft](https://github.com/cinnamon-msft) - Kayla Cinnamon - Product Manager
|
||||
- [@jaimecbernardo](https://github.com/jaimecbernardo) - Jaime Bernardo - Dev lead
|
||||
- [@donlaci](https://github.com/donlaci) - Laszlo Nemeth - Dev
|
||||
- [@SeraphimaZykova](https://github.com/SeraphimaZykova) - Seraphima Zykova - Dev
|
||||
- [@sosssego](https://github.com/sosssego) - Frederico Moron - Dev
|
||||
- [@stefansjfw](https://github.com/stefansjfw) - Stefan Markovic - Dev
|
||||
- [@taras-janea](https://github.com/taras-janea) - Taras Sich - Dev
|
||||
- [@yuyoyuppe](https://github.com/yuyoyuppe) - Andrey Nekrasov - Dev
|
||||
72
CONTRIBUTING.md
Normal file
72
CONTRIBUTING.md
Normal file
@@ -0,0 +1,72 @@
|
||||
# PowerToys Contributor's Guide
|
||||
|
||||
Below is our guidance for how to report issues, propose new features, and submit contributions via Pull Requests (PRs). Our philosophy is heavily based around understanding the problem and scenarios first, this is why we follow this pattern before work has started.
|
||||
|
||||
1. There is an issue
|
||||
2. There has been a conversation
|
||||
3. There is agreement on the problem, the fit for PowerToys, and the solution to the problem (implementation)
|
||||
|
||||
## Filing an issue
|
||||
|
||||
Please follow this simple rule to help us eliminate any unnecessary wasted effort & frustration, and ensure an efficient and effective use of everyone's time - yours, ours, and other community members':
|
||||
|
||||
> 👉 If you have a question, think you've discovered an issue, would like to propose a new feature, etc., then find/file an issue **BEFORE** starting work to fix/implement it.
|
||||
|
||||
When requesting new features / enhancements, understanding problem and scenario around it is extremely important. Having additional evidence, data, tweets, blog posts, research, ... anything is extremely helpful. This information provides context to the scenario that may otherwise be lost.
|
||||
|
||||
* Don't know whether you're reporting an issue or requesting a feature? File an issue
|
||||
* Have a question that you don't see answered in docs, videos, etc.? File an issue
|
||||
* Want to know if we're planning on building a particular feature? File an issue
|
||||
* Got a great idea for a new utility or feature? File an issue/request/idea
|
||||
* Don't understand how to do something? File an issue/Community Guidance Request
|
||||
* Found an existing issue that describes yours? Great - upvote and add additional commentary / info / repro-steps / etc.
|
||||
|
||||
A quick search before filing an issue also could be helpful. It is likely someone else has found the problem you're seeing, and someone may be working on or have already contributed a fix!
|
||||
|
||||
### How to tell the PowerToys team this is an interesting thing to focus on
|
||||
|
||||
Upvote the original issue by clicking its [+😊] button and hitting 👍 (+1) icon or a different one. This way allows us to measure how impactful different issues are compared to others. The issue with comments like "+1", "me too", or similar is they actually make it harder to have a conversation and harder to quickly determine trending important requests.
|
||||
|
||||
---
|
||||
|
||||
## Contributing fixes / features
|
||||
|
||||
Please comment on an issue to let us know you're interested in working on something before you start the work. Not only does this avoid multiple people unexpectedly working on the same thing at the same time but it enables us to make sure everyone is clear on what should be done to implement any new functionality. It's less work for everyone, in the long run, to establish this up front.
|
||||
|
||||
### Localization issues
|
||||
|
||||
Please file localization issues, so our internal localization team can identify and fix them. However we currently don't accept community Pull Requests fixing localization issues. Localization is handled by the internal Microsoft team only.
|
||||
|
||||
### To Spec or not to Spec
|
||||
|
||||
A key point is for everyone to understand the approach that will be taken. We want to be sure if anyone does work, we will accept it in. Items that are larger in scope we'll want some type of spec to understand what is being planned and have a discussion. Specs help collaborators discuss different approaches to solve a problem, describe how the feature will behave, how the feature will impact the user, what happens if something goes wrong, etc. Driving towards agreement in a spec, before any code is written, often results in simpler code, and less wasted effort in the long run.
|
||||
|
||||
For such scenarios, once a team member has agreed with your approach, skip ahead to the section headed "Development" section below.
|
||||
|
||||
Team members will be happy to help review specs and guide them to completion.
|
||||
|
||||
### Help Wanted
|
||||
|
||||
Once the team has approved an issue/spec approach to solving, development can proceed. If no developers are immediately available, the spec can be parked ready for a developer to get started. Parked specs' issues will be labeled "Help Wanted". To find a list of development opportunities waiting for developer involvement, visit the Issues and filter on [the Help-Wanted label](https://github.com/microsoft/PowerToys/labels/Help%20Wanted).
|
||||
|
||||
---
|
||||
|
||||
## Development
|
||||
|
||||
Follow the [development guidelines](https://github.com/microsoft/PowerToys/blob/main/doc/devdocs/readme.md).
|
||||
|
||||
### Naming of features and functionality
|
||||
|
||||
Naming should be descriptive and straight forward. We want names to be clear about functionality and usefulness moving forward.
|
||||
|
||||
### How can I become a collaborator on the PowerToys team
|
||||
|
||||
Be a great community member. Just help out a lot and make useful additions, filing bugs/suggestions, help develop fixes and features, code reviews, and always, docs. Lets continue to make the PowerToys repository a great spot to learn and make a great set of utilities.
|
||||
|
||||
When the time comes, Microsoft will reach out and help make you a formal team member. Just make sure they can reach out to you :)
|
||||
|
||||
---
|
||||
|
||||
## Thank you
|
||||
|
||||
Thank you in advance for your contribution!
|
||||
123
Cpp.Build.props
Normal file
123
Cpp.Build.props
Normal file
@@ -0,0 +1,123 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0"
|
||||
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
|
||||
<!-- Project configurations -->
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|ARM64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|ARM64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>ARM64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Props that should be disabled while building on CI server -->
|
||||
<ItemDefinitionGroup Condition="'$(CIBuild)'!='true'">
|
||||
<ClCompile>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
<!-- Run code analysis locally and in PR CI, but not on release CI -->
|
||||
<PropertyGroup Condition="'$(SkipCppCodeAnalysis)' == ''">
|
||||
<RunCodeAnalysis>true</RunCodeAnalysis>
|
||||
<CodeAnalysisRuleSet>$(MsbuildThisFileDirectory)\CppRuleSet.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- C++ source compile-specific things for all configurations -->
|
||||
<PropertyGroup>
|
||||
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
|
||||
<PreferredToolArchitecture Condition="'$(PROCESSOR_ARCHITECTURE)' == 'ARM64' or '$(PROCESSOR_ARCHITEW6432)' == 'ARM64'">arm64</PreferredToolArchitecture>
|
||||
<VcpkgEnabled>false</VcpkgEnabled>
|
||||
<ExternalIncludePath>$(MSBuildThisFileFullPath)\..\deps\;$(MSBuildThisFileFullPath)\..\packages\;$(ExternalIncludePath)</ExternalIncludePath>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<WarningLevel>Level4</WarningLevel>
|
||||
<DisableSpecificWarnings>4679;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
<DisableAnalyzeExternal >true</DisableAnalyzeExternal>
|
||||
<ExternalWarningLevel>TurnOffAllWarnings</ExternalWarningLevel>
|
||||
<ConformanceMode>false</ConformanceMode>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<LanguageStandard>stdcpplatest</LanguageStandard>
|
||||
<AdditionalOptions>/await %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
</Link>
|
||||
<Lib>
|
||||
<TreatLibWarningAsErrors>true</TreatLibWarningAsErrors>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
<!-- C++ source compile-specific things for Debug/Release configurations -->
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<SDLCheck>false</SDLCheck>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
<!-- Global props -->
|
||||
<PropertyGroup Label="Globals"
|
||||
Condition="'$(OverrideWindowsTargetPlatformVersion)'!='True'">
|
||||
<WindowsTargetPlatformVersion>10.0.19041.0</WindowsTargetPlatformVersion>
|
||||
<TargetPlatformVersion>10.0.19041.0</TargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Props that are constant for both Debug and Release configurations -->
|
||||
<PropertyGroup Label="Configuration">
|
||||
<PlatformToolset Condition="'$(OverridePlatformToolset)'!='True'">v143</PlatformToolset>
|
||||
<IntDir>$(SolutionDir)$(Platform)\$(Configuration)\obj\$(ProjectName)\</IntDir>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<DesktopCompatible>true</DesktopCompatible>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Debug/Release props -->
|
||||
<PropertyGroup Condition="'$(Configuration)'=='Debug'"
|
||||
Label="Configuration">
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)'=='Release'"
|
||||
Label="Configuration">
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
324
CppRuleSet.ruleset
Normal file
324
CppRuleSet.ruleset
Normal file
@@ -0,0 +1,324 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RuleSet Name="Cpp Rule Set" Description="Based on Microsoft Native Recommended Rules and CPP core guideline rules." ToolsVersion="17.0">
|
||||
<Rules AnalyzerId="Microsoft.Analyzers.NativeCodeAnalysis" RuleNamespace="Microsoft.Rules.Native">
|
||||
<Rule Id="C26100" Action="Hidden" />
|
||||
<Rule Id="C26101" Action="Hidden" />
|
||||
<Rule Id="C26110" Action="Hidden" />
|
||||
<Rule Id="C26111" Action="Hidden" />
|
||||
<Rule Id="C26112" Action="Hidden" />
|
||||
<Rule Id="C26115" Action="Hidden" />
|
||||
<Rule Id="C26116" Action="Hidden" />
|
||||
<Rule Id="C26117" Action="Hidden" />
|
||||
<Rule Id="C26140" Action="Hidden" />
|
||||
<Rule Id="C26400" Action="Hidden" />
|
||||
<Rule Id="C26401" Action="Hidden" />
|
||||
<Rule Id="C26402" Action="Error" />
|
||||
<Rule Id="C26403" Action="Error" />
|
||||
<Rule Id="C26404" Action="Error" />
|
||||
<Rule Id="C26405" Action="Error" />
|
||||
<Rule Id="C26406" Action="Error" />
|
||||
<Rule Id="C26407" Action="Error" />
|
||||
<Rule Id="C26408" Action="Hidden" />
|
||||
<Rule Id="C26409" Action="Hidden" />
|
||||
<Rule Id="C26410" Action="Error" />
|
||||
<Rule Id="C26411" Action="Error" />
|
||||
<Rule Id="C26414" Action="Hidden" />
|
||||
<Rule Id="C26415" Action="Hidden" />
|
||||
<Rule Id="C26416" Action="Error" />
|
||||
<Rule Id="C26417" Action="Hidden" />
|
||||
<Rule Id="C26418" Action="Hidden" />
|
||||
<Rule Id="C26426" Action="Hidden" />
|
||||
<Rule Id="C26427" Action="Error" />
|
||||
<Rule Id="C26429" Action="Hidden" />
|
||||
<Rule Id="C26430" Action="Hidden" />
|
||||
<Rule Id="C26431" Action="Hidden" />
|
||||
<Rule Id="C26432" Action="Hidden" />
|
||||
<Rule Id="C26433" Action="Hidden" />
|
||||
<Rule Id="C26434" Action="Hidden" />
|
||||
<Rule Id="C26435" Action="Hidden" />
|
||||
<Rule Id="C26436" Action="Hidden" />
|
||||
<Rule Id="C26437" Action="Error" />
|
||||
<Rule Id="C26438" Action="Hidden" />
|
||||
<Rule Id="C26439" Action="Error" />
|
||||
<Rule Id="C26440" Action="Hidden" />
|
||||
<Rule Id="C26441" Action="Error" />
|
||||
<Rule Id="C26443" Action="Error" />
|
||||
<Rule Id="C26444" Action="Error" />
|
||||
<Rule Id="C26445" Action="Error" />
|
||||
<Rule Id="C26446" Action="Hidden" />
|
||||
<Rule Id="C26447" Action="Hidden" />
|
||||
<Rule Id="C26448" Action="Hidden" />
|
||||
<Rule Id="C26449" Action="Error" />
|
||||
<Rule Id="C26450" Action="Error" />
|
||||
<Rule Id="C26451" Action="Error" />
|
||||
<Rule Id="C26452" Action="Error" />
|
||||
<Rule Id="C26453" Action="Error" />
|
||||
<Rule Id="C26454" Action="Error" />
|
||||
<Rule Id="C26455" Action="Hidden" />
|
||||
<Rule Id="C26456" Action="Hidden" />
|
||||
<Rule Id="C26459" Action="Hidden" />
|
||||
<Rule Id="C26460" Action="Hidden" />
|
||||
<Rule Id="C26461" Action="Hidden" />
|
||||
<Rule Id="C26462" Action="Hidden" />
|
||||
<Rule Id="C26463" Action="Error" />
|
||||
<Rule Id="C26464" Action="Error" />
|
||||
<Rule Id="C26465" Action="Hidden" />
|
||||
<Rule Id="C26466" Action="Error" />
|
||||
<Rule Id="C26471" Action="Error" />
|
||||
<Rule Id="C26472" Action="Hidden" />
|
||||
<Rule Id="C26473" Action="Hidden" />
|
||||
<Rule Id="C26474" Action="Hidden" />
|
||||
<Rule Id="C26475" Action="Error" />
|
||||
<Rule Id="C26476" Action="Hidden" />
|
||||
<Rule Id="C26477" Action="Hidden" />
|
||||
<Rule Id="C26478" Action="Error" />
|
||||
<Rule Id="C26479" Action="Error" />
|
||||
<Rule Id="C26481" Action="Hidden" />
|
||||
<Rule Id="C26482" Action="Hidden" />
|
||||
<Rule Id="C26483" Action="Error" />
|
||||
<Rule Id="C26485" Action="Hidden" />
|
||||
<Rule Id="C26490" Action="Hidden" />
|
||||
<Rule Id="C26491" Action="Hidden" />
|
||||
<Rule Id="C26492" Action="Error" />
|
||||
<Rule Id="C26493" Action="Error" />
|
||||
<Rule Id="C26494" Action="Hidden" />
|
||||
<Rule Id="C26495" Action="Error" />
|
||||
<Rule Id="C26496" Action="Hidden" />
|
||||
<Rule Id="C26497" Action="Error" />
|
||||
<Rule Id="C26498" Action="Error" />
|
||||
<Rule Id="C26800" Action="Hidden" />
|
||||
<Rule Id="C26810" Action="Error" />
|
||||
<Rule Id="C26811" Action="Hidden" />
|
||||
<Rule Id="C26812" Action="Hidden" />
|
||||
<Rule Id="C26813" Action="Hidden" />
|
||||
<Rule Id="C26814" Action="Hidden" />
|
||||
<Rule Id="C26815" Action="Hidden" />
|
||||
<Rule Id="C26816" Action="Hidden" />
|
||||
<Rule Id="C26817" Action="Hidden" />
|
||||
<Rule Id="C26818" Action="Hidden" />
|
||||
<Rule Id="C26819" Action="Error" />
|
||||
<Rule Id="C26820" Action="Error" />
|
||||
<Rule Id="C26826" Action="Hidden" />
|
||||
<Rule Id="C26827" Action="Error" />
|
||||
<Rule Id="C26828" Action="Error" />
|
||||
<Rule Id="C28020" Action="Hidden" />
|
||||
<Rule Id="C28021" Action="Hidden" />
|
||||
<Rule Id="C28022" Action="Hidden" />
|
||||
<Rule Id="C28023" Action="Hidden" />
|
||||
<Rule Id="C28024" Action="Hidden" />
|
||||
<Rule Id="C28039" Action="Hidden" />
|
||||
<Rule Id="C28112" Action="Hidden" />
|
||||
<Rule Id="C28113" Action="Hidden" />
|
||||
<Rule Id="C28125" Action="Hidden" />
|
||||
<Rule Id="C28137" Action="Hidden" />
|
||||
<Rule Id="C28138" Action="Hidden" />
|
||||
<Rule Id="C28159" Action="Hidden" />
|
||||
<Rule Id="C28160" Action="Hidden" />
|
||||
<Rule Id="C28163" Action="Hidden" />
|
||||
<Rule Id="C28164" Action="Hidden" />
|
||||
<Rule Id="C28182" Action="Hidden" />
|
||||
<Rule Id="C28183" Action="Hidden" />
|
||||
<Rule Id="C28193" Action="Hidden" />
|
||||
<Rule Id="C28196" Action="Hidden" />
|
||||
<Rule Id="C28202" Action="Hidden" />
|
||||
<Rule Id="C28203" Action="Hidden" />
|
||||
<Rule Id="C28205" Action="Hidden" />
|
||||
<Rule Id="C28206" Action="Hidden" />
|
||||
<Rule Id="C28207" Action="Hidden" />
|
||||
<Rule Id="C28209" Action="Hidden" />
|
||||
<Rule Id="C28210" Action="Hidden" />
|
||||
<Rule Id="C28211" Action="Hidden" />
|
||||
<Rule Id="C28212" Action="Hidden" />
|
||||
<Rule Id="C28213" Action="Hidden" />
|
||||
<Rule Id="C28214" Action="Hidden" />
|
||||
<Rule Id="C28215" Action="Hidden" />
|
||||
<Rule Id="C28216" Action="Hidden" />
|
||||
<Rule Id="C28217" Action="Hidden" />
|
||||
<Rule Id="C28218" Action="Hidden" />
|
||||
<Rule Id="C28219" Action="Hidden" />
|
||||
<Rule Id="C28220" Action="Hidden" />
|
||||
<Rule Id="C28221" Action="Hidden" />
|
||||
<Rule Id="C28222" Action="Hidden" />
|
||||
<Rule Id="C28223" Action="Hidden" />
|
||||
<Rule Id="C28224" Action="Hidden" />
|
||||
<Rule Id="C28225" Action="Hidden" />
|
||||
<Rule Id="C28226" Action="Hidden" />
|
||||
<Rule Id="C28227" Action="Hidden" />
|
||||
<Rule Id="C28228" Action="Hidden" />
|
||||
<Rule Id="C28229" Action="Hidden" />
|
||||
<Rule Id="C28230" Action="Hidden" />
|
||||
<Rule Id="C28231" Action="Hidden" />
|
||||
<Rule Id="C28232" Action="Hidden" />
|
||||
<Rule Id="C28233" Action="Hidden" />
|
||||
<Rule Id="C28234" Action="Hidden" />
|
||||
<Rule Id="C28235" Action="Hidden" />
|
||||
<Rule Id="C28236" Action="Hidden" />
|
||||
<Rule Id="C28237" Action="Hidden" />
|
||||
<Rule Id="C28238" Action="Hidden" />
|
||||
<Rule Id="C28239" Action="Hidden" />
|
||||
<Rule Id="C28240" Action="Hidden" />
|
||||
<Rule Id="C28241" Action="Hidden" />
|
||||
<Rule Id="C28243" Action="Hidden" />
|
||||
<Rule Id="C28244" Action="Hidden" />
|
||||
<Rule Id="C28245" Action="Hidden" />
|
||||
<Rule Id="C28246" Action="Hidden" />
|
||||
<Rule Id="C28250" Action="Hidden" />
|
||||
<Rule Id="C28251" Action="Hidden" />
|
||||
<Rule Id="C28252" Action="Hidden" />
|
||||
<Rule Id="C28253" Action="Hidden" />
|
||||
<Rule Id="C28254" Action="Hidden" />
|
||||
<Rule Id="C28262" Action="Hidden" />
|
||||
<Rule Id="C28263" Action="Hidden" />
|
||||
<Rule Id="C28267" Action="Hidden" />
|
||||
<Rule Id="C28272" Action="Hidden" />
|
||||
<Rule Id="C28273" Action="Hidden" />
|
||||
<Rule Id="C28275" Action="Hidden" />
|
||||
<Rule Id="C28279" Action="Hidden" />
|
||||
<Rule Id="C28280" Action="Hidden" />
|
||||
<Rule Id="C28282" Action="Hidden" />
|
||||
<Rule Id="C28285" Action="Hidden" />
|
||||
<Rule Id="C28286" Action="Hidden" />
|
||||
<Rule Id="C28287" Action="Hidden" />
|
||||
<Rule Id="C28288" Action="Hidden" />
|
||||
<Rule Id="C28289" Action="Hidden" />
|
||||
<Rule Id="C28290" Action="Hidden" />
|
||||
<Rule Id="C28291" Action="Hidden" />
|
||||
<Rule Id="C28300" Action="Hidden" />
|
||||
<Rule Id="C28301" Action="Hidden" />
|
||||
<Rule Id="C28302" Action="Hidden" />
|
||||
<Rule Id="C28303" Action="Hidden" />
|
||||
<Rule Id="C28304" Action="Hidden" />
|
||||
<Rule Id="C28305" Action="Hidden" />
|
||||
<Rule Id="C28306" Action="Hidden" />
|
||||
<Rule Id="C28307" Action="Hidden" />
|
||||
<Rule Id="C28308" Action="Hidden" />
|
||||
<Rule Id="C28309" Action="Hidden" />
|
||||
<Rule Id="C28350" Action="Hidden" />
|
||||
<Rule Id="C28351" Action="Hidden" />
|
||||
<Rule Id="C33001" Action="Hidden" />
|
||||
<Rule Id="C33004" Action="Hidden" />
|
||||
<Rule Id="C33005" Action="Hidden" />
|
||||
<Rule Id="C33010" Action="Hidden" />
|
||||
<Rule Id="C33011" Action="Hidden" />
|
||||
<Rule Id="C33020" Action="Hidden" />
|
||||
<Rule Id="C6001" Action="Hidden" />
|
||||
<Rule Id="C6011" Action="Hidden" />
|
||||
<Rule Id="C6029" Action="Hidden" />
|
||||
<Rule Id="C6031" Action="Hidden" />
|
||||
<Rule Id="C6053" Action="Hidden" />
|
||||
<Rule Id="C6054" Action="Hidden" />
|
||||
<Rule Id="C6059" Action="Hidden" />
|
||||
<Rule Id="C6063" Action="Hidden" />
|
||||
<Rule Id="C6064" Action="Hidden" />
|
||||
<Rule Id="C6066" Action="Hidden" />
|
||||
<Rule Id="C6067" Action="Hidden" />
|
||||
<Rule Id="C6101" Action="Hidden" />
|
||||
<Rule Id="C6200" Action="Hidden" />
|
||||
<Rule Id="C6201" Action="Hidden" />
|
||||
<Rule Id="C6214" Action="Hidden" />
|
||||
<Rule Id="C6215" Action="Hidden" />
|
||||
<Rule Id="C6216" Action="Hidden" />
|
||||
<Rule Id="C6217" Action="Hidden" />
|
||||
<Rule Id="C6220" Action="Hidden" />
|
||||
<Rule Id="C6226" Action="Hidden" />
|
||||
<Rule Id="C6230" Action="Hidden" />
|
||||
<Rule Id="C6235" Action="Hidden" />
|
||||
<Rule Id="C6236" Action="Hidden" />
|
||||
<Rule Id="C6237" Action="Hidden" />
|
||||
<Rule Id="C6242" Action="Hidden" />
|
||||
<Rule Id="C6248" Action="Hidden" />
|
||||
<Rule Id="C6250" Action="Hidden" />
|
||||
<Rule Id="C6255" Action="Hidden" />
|
||||
<Rule Id="C6258" Action="Hidden" />
|
||||
<Rule Id="C6259" Action="Hidden" />
|
||||
<Rule Id="C6260" Action="Hidden" />
|
||||
<Rule Id="C6262" Action="Hidden" />
|
||||
<Rule Id="C6263" Action="Hidden" />
|
||||
<Rule Id="C6268" Action="Hidden" />
|
||||
<Rule Id="C6269" Action="Hidden" />
|
||||
<Rule Id="C6270" Action="Hidden" />
|
||||
<Rule Id="C6271" Action="Hidden" />
|
||||
<Rule Id="C6272" Action="Hidden" />
|
||||
<Rule Id="C6273" Action="Hidden" />
|
||||
<Rule Id="C6274" Action="Hidden" />
|
||||
<Rule Id="C6276" Action="Hidden" />
|
||||
<Rule Id="C6277" Action="Hidden" />
|
||||
<Rule Id="C6278" Action="Hidden" />
|
||||
<Rule Id="C6279" Action="Hidden" />
|
||||
<Rule Id="C6280" Action="Hidden" />
|
||||
<Rule Id="C6281" Action="Hidden" />
|
||||
<Rule Id="C6282" Action="Hidden" />
|
||||
<Rule Id="C6283" Action="Hidden" />
|
||||
<Rule Id="C6284" Action="Hidden" />
|
||||
<Rule Id="C6285" Action="Hidden" />
|
||||
<Rule Id="C6286" Action="Hidden" />
|
||||
<Rule Id="C6287" Action="Hidden" />
|
||||
<Rule Id="C6288" Action="Hidden" />
|
||||
<Rule Id="C6289" Action="Hidden" />
|
||||
<Rule Id="C6290" Action="Hidden" />
|
||||
<Rule Id="C6291" Action="Hidden" />
|
||||
<Rule Id="C6292" Action="Hidden" />
|
||||
<Rule Id="C6293" Action="Hidden" />
|
||||
<Rule Id="C6294" Action="Hidden" />
|
||||
<Rule Id="C6295" Action="Hidden" />
|
||||
<Rule Id="C6296" Action="Hidden" />
|
||||
<Rule Id="C6297" Action="Hidden" />
|
||||
<Rule Id="C6299" Action="Hidden" />
|
||||
<Rule Id="C6302" Action="Hidden" />
|
||||
<Rule Id="C6303" Action="Hidden" />
|
||||
<Rule Id="C6305" Action="Hidden" />
|
||||
<Rule Id="C6306" Action="Hidden" />
|
||||
<Rule Id="C6308" Action="Hidden" />
|
||||
<Rule Id="C6310" Action="Hidden" />
|
||||
<Rule Id="C6312" Action="Hidden" />
|
||||
<Rule Id="C6314" Action="Hidden" />
|
||||
<Rule Id="C6317" Action="Hidden" />
|
||||
<Rule Id="C6318" Action="Hidden" />
|
||||
<Rule Id="C6319" Action="Hidden" />
|
||||
<Rule Id="C6324" Action="Hidden" />
|
||||
<Rule Id="C6328" Action="Hidden" />
|
||||
<Rule Id="C6331" Action="Hidden" />
|
||||
<Rule Id="C6332" Action="Hidden" />
|
||||
<Rule Id="C6333" Action="Hidden" />
|
||||
<Rule Id="C6335" Action="Hidden" />
|
||||
<Rule Id="C6381" Action="Hidden" />
|
||||
<Rule Id="C6383" Action="Hidden" />
|
||||
<Rule Id="C6384" Action="Hidden" />
|
||||
<Rule Id="C6385" Action="Hidden" />
|
||||
<Rule Id="C6386" Action="Hidden" />
|
||||
<Rule Id="C6387" Action="Hidden" />
|
||||
<Rule Id="C6388" Action="Hidden" />
|
||||
<Rule Id="C6500" Action="Hidden" />
|
||||
<Rule Id="C6501" Action="Hidden" />
|
||||
<Rule Id="C6503" Action="Hidden" />
|
||||
<Rule Id="C6504" Action="Hidden" />
|
||||
<Rule Id="C6505" Action="Hidden" />
|
||||
<Rule Id="C6506" Action="Hidden" />
|
||||
<Rule Id="C6508" Action="Hidden" />
|
||||
<Rule Id="C6509" Action="Hidden" />
|
||||
<Rule Id="C6510" Action="Hidden" />
|
||||
<Rule Id="C6511" Action="Hidden" />
|
||||
<Rule Id="C6513" Action="Hidden" />
|
||||
<Rule Id="C6514" Action="Hidden" />
|
||||
<Rule Id="C6515" Action="Hidden" />
|
||||
<Rule Id="C6516" Action="Hidden" />
|
||||
<Rule Id="C6517" Action="Hidden" />
|
||||
<Rule Id="C6518" Action="Hidden" />
|
||||
<Rule Id="C6522" Action="Hidden" />
|
||||
<Rule Id="C6525" Action="Hidden" />
|
||||
<Rule Id="C6527" Action="Hidden" />
|
||||
<Rule Id="C6530" Action="Hidden" />
|
||||
<Rule Id="C6540" Action="Hidden" />
|
||||
<Rule Id="C6551" Action="Hidden" />
|
||||
<Rule Id="C6552" Action="Hidden" />
|
||||
<Rule Id="C6701" Action="Hidden" />
|
||||
<Rule Id="C6702" Action="Hidden" />
|
||||
<Rule Id="C6703" Action="Hidden" />
|
||||
<Rule Id="C6704" Action="Hidden" />
|
||||
<Rule Id="C6705" Action="Hidden" />
|
||||
<Rule Id="C6706" Action="Hidden" />
|
||||
<Rule Id="C6993" Action="Hidden" />
|
||||
<Rule Id="C6995" Action="Hidden" />
|
||||
<Rule Id="C6997" Action="Hidden" />
|
||||
</Rules>
|
||||
</RuleSet>
|
||||
45
Directory.Build.props
Normal file
45
Directory.Build.props
Normal file
@@ -0,0 +1,45 @@
|
||||
<Project>
|
||||
|
||||
<PropertyGroup>
|
||||
<Copyright>Copyright (C) 2023 Microsoft Corporation</Copyright>
|
||||
<AssemblyCompany>Microsoft Corp.</AssemblyCompany>
|
||||
<AssemblyCopyright>Copyright (C) 2023 Microsoft Corporation</AssemblyCopyright>
|
||||
<AssemblyProduct>PowerToys</AssemblyProduct>
|
||||
<Company>Microsoft Corporation</Company>
|
||||
<NeutralLanguage>en-US</NeutralLanguage>
|
||||
<Platforms>x64;ARM64</Platforms>
|
||||
<PackageTags>PowerToys</PackageTags>
|
||||
<EnableNETAnalyzers>true</EnableNETAnalyzers>
|
||||
<AnalysisMode>Recommended</AnalysisMode>
|
||||
<PlatformTarget>$(Platform)</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(MSBuildProjectExtension)' == '.csproj'">
|
||||
<RepositoryUrl>https://github.com/microsoft/PowerToys</RepositoryUrl>
|
||||
<RepositoryType>GitHub</RepositoryType>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(MSBuildProjectExtension)' == '.csproj'">
|
||||
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<_PropertySheetDisplayName>PowerToys.Root.Props</_PropertySheetDisplayName>
|
||||
<ForceImportBeforeCppProps>$(MsbuildThisFileDirectory)\Cpp.Build.props</ForceImportBeforeCppProps>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup Condition="'$(MSBuildProjectExtension)' == '.csproj'">
|
||||
<PackageReference Include="StyleCop.Analyzers">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<Compile Include="$(MSBuildThisFileDirectory)\src\codeAnalysis\GlobalSuppressions.cs" Link="GlobalSuppressions.cs" />
|
||||
<AdditionalFiles Include="$(MSBuildThisFileDirectory)\src\codeAnalysis\StyleCop.json" Link="StyleCop.json" />
|
||||
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
65
Directory.Packages.props
Normal file
65
Directory.Packages.props
Normal file
@@ -0,0 +1,65 @@
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageVersion Include="Appium.WebDriver" Version="4.2.1" />
|
||||
<PackageVersion Include="CommunityToolkit.Labs.WinUI.SettingsControls" Version="0.0.17" />
|
||||
<PackageVersion Include="CommunityToolkit.Mvvm" Version="8.0.0" />
|
||||
<PackageVersion Include="CommunityToolkit.WinUI.UI" Version="7.1.2" />
|
||||
<PackageVersion Include="CommunityToolkit.WinUI.UI.Controls" Version="7.1.2" />
|
||||
<PackageVersion Include="ControlzEx" Version="5.0.1" />
|
||||
<PackageVersion Include="coverlet.collector" Version="1.3.0" />
|
||||
<PackageVersion Include="DotNetSeleniumExtras.WaitHelpers" Version="3.11.0" />
|
||||
<PackageVersion Include="HelixToolkit" Version="2.20.2" />
|
||||
<PackageVersion Include="HelixToolkit.Core.Wpf" Version="2.20.2" />
|
||||
<PackageVersion Include="hyjiacan.pinyin4net" Version="4.1.1" />
|
||||
<PackageVersion Include="Interop.Microsoft.Office.Interop.OneNote" Version="1.1.0.2" />
|
||||
<PackageVersion Include="LazyCache" Version="2.4.0" />
|
||||
<PackageVersion Include="Mages" Version="2.0.1" />
|
||||
<PackageVersion Include="Markdig.Signed" Version="0.27.0" />
|
||||
<PackageVersion Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="7.0.1" />
|
||||
<PackageVersion Include="Microsoft.Data.Sqlite" Version="7.0.0" />
|
||||
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="7.0.0" />
|
||||
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
|
||||
<PackageVersion Include="Microsoft.Toolkit.Uwp.Notifications" Version="7.1.2" />
|
||||
<PackageVersion Include="Microsoft.Web.WebView2" Version="1.0.1343.22" />
|
||||
<PackageVersion Include="Microsoft.Windows.CsWin32" Version="0.2.46-beta" />
|
||||
<PackageVersion Include="Microsoft.Windows.CsWinRT" Version="2.0.1" />
|
||||
<PackageVersion Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.22621.755" />
|
||||
<PackageVersion Include="Microsoft.WindowsAppSDK" Version="1.2.230313.1" />
|
||||
<PackageVersion Include="Microsoft.Xaml.Behaviors.WinUI.Managed" Version="2.0.9" />
|
||||
<PackageVersion Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.39" />
|
||||
<PackageVersion Include="ModernWpfUI" Version="0.9.4" />
|
||||
<PackageVersion Include="Moq" Version="4.18.3" />
|
||||
<PackageVersion Include="MSTest.TestAdapter" Version="3.0.1" />
|
||||
<PackageVersion Include="MSTest.TestFramework" Version="3.0.1" />
|
||||
<PackageVersion Include="Newtonsoft.Json" Version="13.0.1" />
|
||||
<PackageVersion Include="NLog" Version="5.0.4" />
|
||||
<PackageVersion Include="NLog.Extensions.Logging" Version="5.0.4" />
|
||||
<PackageVersion Include="NLog.Schema" Version="5.0.4" />
|
||||
<PackageVersion Include="ScipBe.Common.Office.OneNote" Version="3.0.1" />
|
||||
<PackageVersion Include="StyleCop.Analyzers" Version="1.2.0-beta.435" />
|
||||
<PackageVersion Include="System.CommandLine" Version="2.0.0-beta1.20071.2" />
|
||||
<PackageVersion Include="System.ComponentModel.Composition" Version="7.0.0" />
|
||||
<PackageVersion Include="System.Configuration.ConfigurationManager" Version="6.0.0" />
|
||||
<PackageVersion Include="System.Data.OleDb" Version="7.0.0" />
|
||||
<PackageVersion Include="System.Drawing.Common" Version="7.0.0" />
|
||||
<PackageVersion Include="System.IO.Abstractions" Version="17.2.3" />
|
||||
<PackageVersion Include="System.IO.Abstractions.TestingHelpers" Version="17.2.3" />
|
||||
<PackageVersion Include="System.Management" Version="7.0.0" />
|
||||
<PackageVersion Include="System.Reactive" Version="5.0.0" />
|
||||
<PackageVersion Include="System.Runtime.Caching" Version="7.0.0" />
|
||||
<PackageVersion Include="System.ServiceProcess.ServiceController" Version="7.0.0" />
|
||||
<PackageVersion Include="UnicodeInformation" Version="2.6.0" />
|
||||
<PackageVersion Include="UnitsNet" Version="4.145.0" />
|
||||
<PackageVersion Include="Vanara.PInvoke.User32" Version="3.4.11" />
|
||||
<PackageVersion Include="Vanara.PInvoke.Shell32" Version="3.4.11" />
|
||||
<PackageVersion Include="WinUIEx" Version="2.1.0" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition="'$(IsExperimentationLive)'!=''">
|
||||
<!-- Additional dependencies used by experimentation -->
|
||||
<PackageVersion Include="Microsoft.VariantAssignment.Client" Version="2.4.17140001" />
|
||||
<PackageVersion Include="Microsoft.VariantAssignment.Contract" Version="3.0.16990001" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
2
LICENSE
2
LICENSE
@@ -1,4 +1,4 @@
|
||||
The MIT License (MIT)
|
||||
The MIT License
|
||||
|
||||
Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
|
||||
|
||||
BIN
MTNDWidget.jpg
BIN
MTNDWidget.jpg
Binary file not shown.
|
Before Width: | Height: | Size: 4.7 KiB |
332
NOTICE.md
Normal file
332
NOTICE.md
Normal file
@@ -0,0 +1,332 @@
|
||||
# NOTICES AND INFORMATION
|
||||
|
||||
This software incorporates material from third parties.
|
||||
|
||||
- Color Picker
|
||||
- File Explorer Add-ins
|
||||
- ImageResizer
|
||||
- PowerToys Run
|
||||
- Installer/Runner
|
||||
- Measure tool
|
||||
|
||||
## Utility: Color Picker
|
||||
|
||||
### Martin Chrzan's Color Picker
|
||||
|
||||
**Source**: https://github.com/martinchrzan/ColorPicker
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2020 martinchrzan
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
## Utility: File Explorer Add-ins
|
||||
|
||||
### Monaco Editor
|
||||
|
||||
**Source**: https://github.com/Microsoft/monaco-editor
|
||||
|
||||
**Additional third party notifications:** https://github.com/microsoft/monaco-editor/blob/main/ThirdPartyNotices.txt
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2016 - present Microsoft Corporation
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
## Utility: ImageResizer
|
||||
|
||||
### Brice Lams's Image Resizer License
|
||||
|
||||
**Source**: https://github.com/bricelam/ImageResizer/
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) Brice Lambson. All rights reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
## Utility: PowerToys Run
|
||||
|
||||
### Wox License
|
||||
|
||||
**Fork project source**: https://github.com/jjw24/Wox/
|
||||
**Base project source**: https://github.com/Wox-launcher/Wox
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015 Wox
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
### Beta Tadele's Window Walker License
|
||||
|
||||
**Source**: https://github.com/betsegaw/windowwalker
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright 2020 Betsegaw Tadele
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
## Utility: PowerRename
|
||||
|
||||
### Chris Davis's SmartRename License
|
||||
|
||||
**Source**: https://github.com/chrdavis/SmartRename
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2017 Chris Davis
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
## PowerToy: Installer/Runner
|
||||
|
||||
### spdlog
|
||||
|
||||
**Source**: https://github.com/gabime/spdlog
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2016 Gabi Melman.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
-- NOTE: Third party dependency used by this software --
|
||||
This software depends on the fmt lib (MIT License),
|
||||
and users must comply to its license: https://github.com/fmtlib/fmt/blob/master/LICENSE.rst
|
||||
|
||||
### expected-lite
|
||||
|
||||
**Source**: https://github.com/martinmoene/expected-lite
|
||||
|
||||
Boost Software License - Version 1.0 - August 17th, 2003
|
||||
|
||||
Permission is hereby granted, free of charge, to any person or organization
|
||||
obtaining a copy of the software and accompanying documentation covered by
|
||||
this license (the "Software") to use, reproduce, display, distribute,
|
||||
execute, and transmit the Software, and to prepare derivative works of the
|
||||
Software, and to permit third-parties to whom the Software is furnished to
|
||||
do so, all subject to the following:
|
||||
|
||||
The copyright notices in the Software and this entire statement, including
|
||||
the above license grant, this restriction and the following disclaimer,
|
||||
must be included in all copies of the Software, in whole or in part, and
|
||||
all derivative works of the Software, unless such copies or derivative
|
||||
works are solely in the form of machine-executable object code generated by
|
||||
a source language processor.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
|
||||
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
|
||||
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
|
||||
### zip
|
||||
|
||||
**Source**: https://github.com/kuba--/zip
|
||||
|
||||
This is free and unencumbered software released into the public domain.
|
||||
|
||||
Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||
distribute this software, either in source code form or as a compiled
|
||||
binary, for any purpose, commercial or non-commercial, and by any
|
||||
means.
|
||||
|
||||
In jurisdictions that recognize copyright laws, the author or authors
|
||||
of this software dedicate any and all copyright interest in the
|
||||
software to the public domain. We make this dedication for the benefit
|
||||
of the public at large and to the detriment of our heirs and
|
||||
successors. We intend this dedication to be an overt act of
|
||||
relinquishment in perpetuity of all present and future rights to this
|
||||
software under copyright law.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
For more information, please refer to <http://unlicense.org/>
|
||||
|
||||
## Utility: Measure tool
|
||||
|
||||
### sse2neon
|
||||
|
||||
We adopted some functions from it.
|
||||
|
||||
**Source**: https://github.com/DLTcollab/sse2neon
|
||||
|
||||
sse2neon is freely redistributable under the MIT License.
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
## NuGet Packages used by PowerToys
|
||||
|
||||
- CommunityToolkit.Labs.WinUI.SettingsControls 0.0.17
|
||||
- CommunityToolkit.Mvvm 8.0.0
|
||||
- CommunityToolkit.WinUI.UI 7.1.2
|
||||
- CommunityToolkit.WinUI.UI.Controls 7.1.2
|
||||
- ControlzEx 5.0.1
|
||||
- HelixToolkit 2.20.2
|
||||
- HelixToolkit.Core.Wpf 2.20.2
|
||||
- hyjiacan.pinyin4net 4.1.1
|
||||
- Interop.Microsoft.Office.Interop.OneNote 1.1.0.2
|
||||
- LazyCache 2.4.0
|
||||
- Mages 2.0.1
|
||||
- Markdig.Signed 0.27.0
|
||||
- Microsoft.CodeAnalysis.NetAnalyzers 7.0.1
|
||||
- Microsoft.Data.Sqlite 7.0.0
|
||||
- Microsoft.Extensions.Hosting 7.0.0
|
||||
- Microsoft.NET.Test.Sdk 17.4.1
|
||||
- Microsoft.Toolkit.Uwp.Notifications 7.1.2
|
||||
- Microsoft.Web.WebView2 1.0.1343.22
|
||||
- Microsoft.Windows.CsWin32 0.2.46-beta
|
||||
- Microsoft.Windows.CsWinRT 2.0.1
|
||||
- Microsoft.Windows.SDK.BuildTools 10.0.22621.755
|
||||
- Microsoft.WindowsAppSDK 1.2.230313.1
|
||||
- Microsoft.Xaml.Behaviors.WinUI.Managed 2.0.9
|
||||
- Microsoft.Xaml.Behaviors.Wpf 1.1.39
|
||||
- ModernWpfUI 0.9.4
|
||||
- Moq 4.18.3
|
||||
- MSTest.TestAdapter 3.0.1
|
||||
- MSTest.TestFramework 3.0.1
|
||||
- NLog 5.0.4
|
||||
- NLog.Extensions.Logging 5.0.4
|
||||
- NLog.Schema 5.0.4
|
||||
- ScipBe.Common.Office.OneNote 3.0.1
|
||||
- StyleCop.Analyzers 1.2.0-beta.435
|
||||
- System.CommandLine 2.0.0-beta1.20071.2
|
||||
- System.ComponentModel.Composition 7.0.0
|
||||
- System.Configuration.ConfigurationManager 6.0.0
|
||||
- System.Data.OleDb 7.0.0
|
||||
- System.Drawing.Common 7.0.0
|
||||
- System.IO.Abstractions 17.2.3
|
||||
- System.IO.Abstractions.TestingHelpers 17.2.3
|
||||
- System.Management 7.0.0
|
||||
- System.Reactive 5.0.0
|
||||
- System.Runtime.Caching 7.0.0
|
||||
- System.ServiceProcess.ServiceController 7.0.0
|
||||
- UnicodeInformation 2.6.0
|
||||
- UnitsNet 4.145.0
|
||||
- Vanara.PInvoke.Shell32 3.4.11
|
||||
- Vanara.PInvoke.User32 3.4.11
|
||||
- WinUIEx 2.1.0
|
||||
2454
PowerToys.sln
2454
PowerToys.sln
File diff suppressed because it is too large
Load Diff
242
README.md
242
README.md
@@ -1,136 +1,202 @@
|
||||
# Overview
|
||||
# Microsoft PowerToys
|
||||
|
||||
PowerToys is a set of utilities for power users to tune and streamline their Windows experience for greater productivity.
|
||||

|
||||
|
||||
Inspired by the [Windows 95 era PowerToys project](https://en.wikipedia.org/wiki/Microsoft_PowerToys), this reboot provides power users with ways to squeeze more efficiency out of the Windows 10 shell and customize it for individual workflows. A great overview of the Windows 95 PowerToys can be found [here](https://socket3.wordpress.com/2016/10/22/using-windows-95-powertoys/).
|
||||
[How to use PowerToys][usingPowerToys-docs-link] | [Downloads & Release notes][github-release-link] | [Contributing to PowerToys](#contributing) | [What's Happening](#whats-happening) | [Roadmap](#powertoys-roadmap)
|
||||
|
||||

|
||||
## Build status
|
||||
|
||||
## Installation
|
||||
| Architecture | Solution (Main) | Solution (Stable) | Installer (Main) |
|
||||
|--------------|-----------------|-------------------|------------------|
|
||||
| x64 | [](https://dev.azure.com/ms/PowerToys/_build/latest?definitionId=219&branchName=main&jobName=Build%20x64%20Release) | [](https://dev.azure.com/ms/PowerToys/_build/latest?definitionId=219&branchName=stable) | [](https://dev.azure.com/microsoft/Dart/_build/latest?definitionId=76541&branchName=main) |
|
||||
| ARM64 | [](https://dev.azure.com/ms/PowerToys/_build/latest?definitionId=219&branchName=main) | [](https://dev.azure.com/ms/PowerToys/_build/latest?definitionId=219&branchName=stable) | [](https://dev.azure.com/microsoft/Dart/_build/latest?definitionId=76541&branchName=main) |
|
||||
|
||||
_(Note: in order to run PowerToys, you'll need to be running at least Windows build 17134 or higher. Also, PowerToys does not currently support Windows ARM machines)_
|
||||
## About
|
||||
|
||||
### GitHub
|
||||
Microsoft PowerToys is a set of utilities for power users to tune and streamline their Windows experience for greater productivity. For more info on [PowerToys overviews and how to use the utilities][usingPowerToys-docs-link], or any other tools and resources for [Windows development environments](https://learn.microsoft.com/windows/dev-environment/overview), head over to [learn.microsoft.com][usingPowerToys-docs-link]!
|
||||
|
||||
The first preview of these utilities can be installed from the [PowerToys GitHub releases page](https://github.com/Microsoft/powertoys/releases).
|
||||
| | Current utilities: | |
|
||||
|--------------|--------------------|--------------|
|
||||
| [Always on Top](https://aka.ms/PowerToysOverview_AoT) | [PowerToys Awake](https://aka.ms/PowerToysOverview_Awake) | [Color Picker](https://aka.ms/PowerToysOverview_ColorPicker) |
|
||||
| [FancyZones](https://aka.ms/PowerToysOverview_FancyZones) | [File Explorer Add-ons](https://aka.ms/PowerToysOverview_FileExplorerAddOns) | [File Locksmith](https://aka.ms/PowerToysOverview_FileLocksmith) |
|
||||
| [Hosts File Editor](https://aka.ms/PowerToysOverview_HostsFileEditor) | [Image Resizer](https://aka.ms/PowerToysOverview_ImageResizer) | [Keyboard Manager](https://aka.ms/PowerToysOverview_KeyboardManager) |
|
||||
| [Mouse utilities](https://aka.ms/PowerToysOverview_MouseUtilities) | [Paste as Plain Text](https://aka.ms/PowerToysOverview_PastePlain) | [PowerRename](https://aka.ms/PowerToysOverview_PowerRename) |
|
||||
| [PowerToys Run](https://aka.ms/PowerToysOverview_PowerToysRun) | [Quick Accent](https://aka.ms/PowerToysOverview_QuickAccent) | [Screen Ruler](https://aka.ms/PowerToysOverview_ScreenRuler) |
|
||||
| [Shortcut Guide](https://aka.ms/PowerToysOverview_ShortcutGuide) | [Text Extractor](https://aka.ms/PowerToysOverview_TextExtractor) | [Video Conference Mute](https://aka.ms/PowerToysOverview_VideoConference) |
|
||||
|
||||
### Chocolatey (Unofficial)
|
||||
## Installing and running Microsoft PowerToys
|
||||
|
||||
Download and upgrade PowerToys from [Chocolatey](https://chocolatey.org).
|
||||
### Requirements
|
||||
|
||||
- Windows 11 or Windows 10 version 2004 (code name 20H1 / build number 19041) or newer.
|
||||
- Our installer will install the following items:
|
||||
- [Microsoft Edge WebView2 Runtime](https://go.microsoft.com/fwlink/p/?LinkId=2124703) bootstrapper. This will install the latest version.
|
||||
|
||||
### Via GitHub with EXE [Recommended]
|
||||
|
||||
Go to [Microsoft PowerToys GitHub releases page][github-release-link], click on `Assets` at the bottom to show the files available in the release. Please use the appropriate PowerToys installer that matches your machine's architecture. For most, it is `x64`.
|
||||
|
||||
- **For x64 processors (most common):** [PowerToysSetup-0.68.0-x64.exe](https://github.com/microsoft/PowerToys/releases/download/v0.68.0/PowerToysSetup-0.68.0-x64.exe)
|
||||
- **For ARM64 processors:** [PowerToysSetup-0.68.0-arm64.exe](https://github.com/microsoft/PowerToys/releases/download/v0.68.0/PowerToysSetup-0.68.0-arm64.exe)
|
||||
|
||||
This is our preferred method.
|
||||
|
||||
### Via Microsoft Store
|
||||
|
||||
Install from the [Microsoft Store's PowerToys page][microsoft-store-link]. You must be using the [new Microsoft Store](https://blogs.windows.com/windowsExperience/2021/06/24/building-a-new-open-microsoft-store-on-windows-11/) which is available for both Windows 11 and Windows 10.
|
||||
|
||||
### Via WinGet
|
||||
Download PowerToys from [WinGet][winget-link]. To install PowerToys, run the following command from the command line / PowerShell:
|
||||
|
||||
To install PowerToys, run the following command from the command line or from PowerShell:
|
||||
```powershell
|
||||
choco install powertoys
|
||||
winget install Microsoft.PowerToys -s winget
|
||||
```
|
||||
|
||||
To upgrade PowerToys, run the following command from the command line or from PowerShell:
|
||||
```powershell
|
||||
choco upgrade powertoys
|
||||
```
|
||||
### Other install methods
|
||||
|
||||
If you have any issues when installing/upgrading the package please go to the [package page](https://chocolatey.org/packages/powertoys) and follow the [Chocolatey triage process](https://chocolatey.org/docs/package-triage-process)
|
||||
There are [community driven install methods](./doc/unofficialInstallMethods.md) such as Chocolatey and Scoop. If these are your preferred install solutions, you can find the install instructions there.
|
||||
|
||||
### Build Status
|
||||
## Contributing
|
||||
|
||||
[](https://dev.azure.com/ms/PowerToys/_build?definitionId=35096)
|
||||
This project welcomes contributions of all types. Help spec'ing, design, documentation, finding bugs are ways everyone can help on top of coding features / bug fixes. We are excited to work with the power user community to build a set of tools for helping you get the most out of Windows.
|
||||
|
||||
# What's Happening
|
||||
We ask that **before you start work on a feature that you would like to contribute**, please read our [Contributor's Guide](CONTRIBUTING.md). We will be happy to work with you to figure out the best approach, provide guidance and mentorship throughout feature development, and help avoid any wasted or duplicate effort.
|
||||
|
||||
## October Update
|
||||
A big thanks to everyone who has downloaded and started using the first PowerToys preview. There's been over 150K downloads so far. An even bigger thanks to everyone who has provided feedback and suggestions in the issues. The community engagement has been really awesome to see.
|
||||
Most contributions require you to agree to a [Contributor License Agreement (CLA)][oss-CLA] declaring that you have the right to, and actually do, grant us the rights to use your contribution.
|
||||
|
||||
The team has been hard at working fixing bugs, addressing issues and implementing feature suggestions. If you've downloaded the code and built the latest on your machine recently you've seen many of these improvements (dark mode!). We're hoping to have a new official build out shortly with all these improvements and will also be signed by Microsoft. A new utility is also coming soon: Chris Davis is working to integrate his [SmartRename tool](https://github.com/chrdavis/SmartRename) into PowerToys!
|
||||
For guidance on developing for PowerToys, please read the [developer docs](/doc/devdocs) for a detailed breakdown. This includes how to setup your computer to compile.
|
||||
|
||||

|
||||
## What's Happening
|
||||
|
||||
1. [FancyZones](/src/modules/fancyzones/) - FancyZones is a window manager that makes it easy to create complex window layouts and quickly position windows into those layouts. The FancyZones backlog can be found [here](https://github.com/Microsoft/PowerToys/tree/master/doc/planning/FancyZonesBacklog.md)
|
||||
### PowerToys Roadmap
|
||||
|
||||

|
||||
Our [prioritized roadmap][roadmap] of features and utilities that the core team is focusing on.
|
||||
|
||||
FancyZones Video Tutorial
|
||||
[](https://www.youtube.com/watch?v=rTtGzZYAXgY)
|
||||
### 0.68 - February 2023 Update
|
||||
|
||||
2. [Windows key shortcut guide](/src/modules/shortcut_guide) - The shortcut guide appears when a user holds the Windows key down for more than one second and shows the available shortcuts for the current state of the desktop. The shortcut guide backlog can be found [here](https://github.com/Microsoft/PowerToys/tree/master/doc/planning/ShortcutGuideBacklog.md)
|
||||
In this release, we focused on releasing new features, stability and improvements.
|
||||
|
||||

|
||||
**Highlights**
|
||||
|
||||
Additional utilities in the pipeline are:
|
||||
- New utility: Paste as Plain Text allows pasting the text contents of your clipboard without formatting. Note: the formatted text in the clipboard is replaced with the unformatted text. Thanks [@carlos-zamora](https://github.com/carlos-zamora)!
|
||||
- New utility: Mouse Jump allows to quickly move the mouse pointer long distances on a single screen or across multiple screens. Thanks [@mikeclayton](https://github.com/mikeclayton)!
|
||||
- Add new GPO policies for automatic update downloads and update toast notifications. Thanks [@htcfreek](https://github.com/htcfreek)!
|
||||
- Support MSC and CPL files in "Run command" results of PowerToys Run Program plugin. Thanks [@htcfreek](https://github.com/htcfreek)!
|
||||
- Add support for log2 and log10 in PowerToys Run Calculator plugin. Thanks [@RickLuiken](https://github.com/RickLuiken)!
|
||||
- Added experimentation to PowerToys first run experience. There are current page which says "welcome" and a variant with direct instructions on how to use some of the utilities. We want to see if directly showing how to use PowerToys leads to more people using the features :)
|
||||
|
||||
* Maximize to new desktop widget - The MTND widget shows a pop-up button when a user hovers over the maximize / restore button on any window. Clicking it creates a new desktop, sends the app to that desktop and maximizes the app on the new desktop.
|
||||
* [Process terminate tool](https://github.com/indierawk2k2/PowerToys-1/blob/master/specs/Terminate%20Spec.md)
|
||||
* [Animated gif screen recorder](https://github.com/indierawk2k2/PowerToys-1/blob/master/specs/GIF%20Maker%20Spec.md)
|
||||
### General
|
||||
|
||||
# Backlog
|
||||
- Improve metered network detection in runner. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
|
||||
- Update PowerToys logo used by installer. Thanks [@ChaseKnowlden](https://github.com/ChaseKnowlden1)!
|
||||
- Add new GPO policies for automatic update downloads and update toast notifications. Thanks [@htcfreek](https://github.com/htcfreek)!
|
||||
- Update copyright year to 2023. Thanks [@ChaseKnowlden](https://github.com/ChaseKnowlden)!
|
||||
|
||||
The full backlog of utilities can be found [here](https://github.com/Microsoft/PowerToys/tree/master/doc/planning/PowerToysBacklog.md)
|
||||
### FancyZones
|
||||
|
||||
# Where to download PowerToys
|
||||
- Refactored and improved code quality.
|
||||
- Fix crashing on moving window between monitors with Win + arrows. (This was a hotfix for 0.67)
|
||||
- Fix issue causing window attributes to not be reset properly. (This was a hotfix for 0.67)
|
||||
- Fix issue causing window to not be adjusted when layout is changed. (This was a hotfix for 0.67)
|
||||
- Fix issue causing window not to be unsnapped on drag started. (This was a hotfix for 0.67)
|
||||
- Fix issue causing layouts not to be applied to new virtual desktops. (This was a hotfix for 0.67)
|
||||
- Fix issues causing windows not to be restored correctly to their last known zone.
|
||||
|
||||
The latest release of PowerToys can be downloaded from https://github.com/microsoft/PowerToys/releases <br />
|
||||
Click on `Assets` to show the files available in the release and then click on `PowerToysSetup.msi` to download the PowerToys installer. <br />
|
||||
PDB symbols for the release are available in a separate zip file `PDB symbols.zip`.
|
||||
### File explorer add-ons
|
||||
|
||||
# Developer Guidance
|
||||
- Add Developer files previewer option to set max file size and fix styling issue. Thanks [@Aaron-Junker](https://github.com/Aaron-Junker)!
|
||||
- Improve Developer files previewer exception handling and printing of error messages.
|
||||
- Fix crash when generating PDF and Gcode file thumbnails. (This was a hotfix for 0.67)
|
||||
|
||||
## Build Prerequisites
|
||||
* Windows 10 1803 (build 10.0.17134.0) or above to build and run PowerToys.
|
||||
* Visual Studio 2019 Community edition or higher, with the 'Desktop Development with C++' component and the Windows 10 SDK version 10.0.18362.0 or higher.
|
||||
|
||||
## Building the Code
|
||||
* Open `powertoys.sln` in Visual Studio, in the `Solutions Configuration` drop-down menu select `Release` or `Debug`, from the `Build` menu choose `Build Solution`.
|
||||
* The PowerToys binaries will be in your repo under `x64\Release`.
|
||||
* If you want to copy the `PowerToys.exe` binary to a different location, you'll also need to copy the `modules` and the `svgs` folders.
|
||||
### Hosts file editor
|
||||
|
||||
## Prerequisites to Build the Installer
|
||||
* Install the [WiX Toolset Visual Studio 2019 Extension](https://marketplace.visualstudio.com/items?itemName=RobMensching.WiXToolset).
|
||||
* Install the [WiX Toolset build tools](https://wixtoolset.org/releases/).
|
||||
|
||||
## Building the .msi Installer
|
||||
* From the `installer` folder open `PowerToysSetup.sln` in Visual Studio, in the `Solutions Configuration` drop-down menu select `Release` or `Debug`, from the `Build` menu choose `Build Solution`.
|
||||
* The resulting `PowerToysSetup.msi` installer will be available in the `installer\PowerToysSetup\x64\Release\` folder.
|
||||
- Improve hosts file loading. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
|
||||
- Improved duplicate hosts finding. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
|
||||
|
||||
## Debugging
|
||||
The following configuration issue only applies if the user is a member of the Administrators group.
|
||||
|
||||
Some PowerToys modules require being run with the highest permission level if the current user is a member of the Administrators group. The highest permission level is required to be able to perform some actions when an elevated application (e.g. Task Manager) is in the foreground or is the target of an action. Without elevated privileges some PowerToys modules will still work but with some limitations:
|
||||
- the `FancyZones` module will be not be able to move an elevated window to a zone.
|
||||
- the `Shortcut Guide` module will not appear if the foreground window belongs to an elevated application.
|
||||
|
||||
To run and debug PowerToys from Visual Studio when the user is a member of the Administrators group, Visual Studio has to be started with elevated privileges. If you want to avoid running Visual Studio with elevated privileges and don't mind the limitations described above, you can do the following: open the `runner` project properties and navigate to the `Linker -> Manifest File` settings, edit the `UAC Execution Level` property and change it from `highestAvailable (/level='highestAvailable')` to `asInvoker (/level='asInvoker')`, save the changes.
|
||||
|
||||
## How to create new PowerToys
|
||||
### Keyboard Manager
|
||||
|
||||
See the instructions on [how to install the PowerToys Module project template](tools/project_template). <br />
|
||||
Specifications for the [PowerToys settings API](doc/specs/PowerToys-settings.md).
|
||||
- Fix typo in Keyboard Manager Editor. Thanks [@ChristianLW](https://github.com/ChristianLW)!
|
||||
|
||||
## Coding Guidance
|
||||
### Mouse Utils
|
||||
|
||||
Please review these brief docs below relating to our coding standards etc.
|
||||
- Resolve grammatical error in Mouse Highlighter description. Thanks [@WordlessSafe1](https://github.com/WordlessSafe1)!
|
||||
- New utility: Mouse Jump allows to quickly move the mouse pointer long distances on single or across screens. Thanks [@mikeclayton](https://github.com/mikeclayton)!
|
||||
|
||||
> 👉 If you find something missing from these docs, feel free to contribute to any of our documentation files anywhere in the repository (or make some new ones\!)
|
||||
### Paste as Plain Text
|
||||
|
||||
This is a work in progress as we learn what we'll need to provide people in order to be effective contributors to our project.
|
||||
- [Coding Style](doc/coding/style.md)
|
||||
- [Code Organization](doc/coding/organization.md)
|
||||
- New utility: Paste as Plain Text allows pasting the text contents of your clipboard without formatting. Note: the formatted text in the clipboard is replaced with the unformatted text. Thanks [@carlos-zamora](https://github.com/carlos-zamora)!
|
||||
|
||||
# Contributing
|
||||
This project welcomes contributions and suggestions and we are excited to work with the power user community to build a set of tools for helping you get the most out of Windows.
|
||||
### PowerToys Run
|
||||
|
||||
We ask that **before you start work on a feature that you would like to contribute**, please read our [Contributor's Guide](contributing.md). We will be happy to work with you to figure out the best approach, provide guidance and mentorship throughout feature development, and help avoid any wasted or duplicate effort.
|
||||
- Show Steam (steam://open/) shortcuts in the Program plugin.
|
||||
- Localize paths of Program plugin results. Thanks [@htcfreek](https://github.com/htcfreek)!
|
||||
- Improved stability of the code used to get the localized names and paths. Thanks [@htcfreek](https://github.com/htcfreek)!
|
||||
- Support MSC and CPL files in "Run command" results of Program plugin. Thanks [@htcfreek](https://github.com/htcfreek)!
|
||||
- Added missing MSC and CPL settings to the results of Windows Settings plugin. Thanks [@htcfreek](https://github.com/htcfreek)!
|
||||
- System plugin: Setting for separate "Open/Empty Recycle bin" results or single result with context menu. (This was implemented based on user feedback for a change in the last build.) Thanks [@htcfreek](https://github.com/htcfreek)!
|
||||
- Add support for log2 and log10 in Calculator plugin. Thanks [@RickLuiken](https://github.com/RickLuiken)!
|
||||
- Removed the TimeZone plugin.
|
||||
- Fix the crash when loading thumbnail for PDF files. (This was a hotfix for 0.67)
|
||||
|
||||
> ⚠ **Note**: PowerToys is still a nascent project and the team is actively working out of this repository. We will be periodically re-structuring the code to make it easier to comprehend, navigate, build, test, and contribute to, so **DO expect significant changes to code layout on a regular basis**.
|
||||
### Shortcut Guide
|
||||
|
||||
> ⚠ **License Info**: Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
|
||||
- Added: Dismiss Shortcut Guide with mouse click. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
|
||||
|
||||
When you submit a pull request, a CLA-bot will automatically determine whether you need to provide
|
||||
a CLA and decorate the PR appropriately (e.g. status check, comment). Simply follow the instructions
|
||||
provided by the bot. You will only need to do this once across all repos using our CLA.
|
||||
### Quick Accent
|
||||
|
||||
# Code of Conduct
|
||||
- Added Lithuanian characters. Thanks [@saulens22](https://github.com/saulens22)!
|
||||
- Added additional (Chinese) characters. Thanks [@ChaseKnowlden](https://github.com/ChaseKnowlden)!
|
||||
|
||||
This project has adopted the [Microsoft Open Source Code of Conduct][conduct-code]. <br />
|
||||
For more information see the [Code of Conduct FAQ][conduct-FAQ] or contact [opencode@microsoft.com][conduct-email] with any additional questions or comments.
|
||||
|
||||
[conduct-code]: https://opensource.microsoft.com/codeofconduct/
|
||||
[conduct-FAQ]: https://opensource.microsoft.com/codeofconduct/faq/
|
||||
[conduct-email]: mailto:opencode@microsoft.com
|
||||
### Settings
|
||||
|
||||
- Add missing flyout borders on Windows 10. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
|
||||
- Add experimentation for oobe landing page. Thanks [@chenss3](https://github.com/chenss3)!
|
||||
- Show icons of user-installed PowerToys Run plugins. Thanks [@al2me6](https://github.com/al2me6)!
|
||||
- Fixed crash when clicking Browse for backup and restore location while running elevated.
|
||||
- Respect taskbar position when showing system tray flyout. (This was a hotfix for 0.67)
|
||||
- Show correct Hosts module image. (This was a hotfix for 0.67)
|
||||
|
||||
### Development
|
||||
|
||||
- Turned on C++ code analysis and incrementally fixing warnings.
|
||||
- Centralize .NET NuGet packages versions. Thanks [@snickler](https://github.com/snickler)!
|
||||
- Separate PowerToys installer logs and MSI logs to different files.
|
||||
- Added new GPO rules to the reporting tool.
|
||||
- Move PowerToys registry entries back to HKLM to fix context menu entries not working on some configurations. (This was a hotfix for 0.67)
|
||||
|
||||
#### What is being planned for version 0.69
|
||||
|
||||
For [v0.69][github-next-release-work], we'll work on below:
|
||||
|
||||
- Allow installing without UAC.
|
||||
- New utility: [PowerToys Peek](https://github.com/microsoft/PowerToys/issues/80)
|
||||
- Stability / bug fixes
|
||||
|
||||
## PowerToys Community
|
||||
|
||||
The PowerToys team is extremely grateful to have the [support of an amazing active community][community-link]. The work you do is incredibly important. PowerToys wouldn’t be nearly what it is today without your help filing bugs, updating documentation, guiding the design, or writing features. We want to say thank you and take time to recognize your work. Month over month, you directly help make PowerToys a better piece of software.
|
||||
|
||||
## Code of Conduct
|
||||
|
||||
This project has adopted the [Microsoft Open Source Code of Conduct][oss-conduct-code].
|
||||
|
||||
## Privacy Statement
|
||||
|
||||
The application logs basic telemetry. Our Telemetry Data page (Coming Soon) has the trends from the telemetry. Please read the [Microsoft privacy statement][privacy-link] for more information.
|
||||
|
||||
[oss-CLA]: https://cla.opensource.microsoft.com
|
||||
[oss-conduct-code]: CODE_OF_CONDUCT.md
|
||||
[community-link]: COMMUNITY.md
|
||||
[github-release-link]: https://aka.ms/installPowerToys
|
||||
[microsoft-store-link]: https://aka.ms/getPowertoys
|
||||
[winget-link]: https://github.com/microsoft/winget-cli#installing-the-client
|
||||
[roadmap]: https://github.com/microsoft/PowerToys/wiki/Roadmap
|
||||
[privacy-link]: http://go.microsoft.com/fwlink/?LinkId=521839
|
||||
[vidConfOverview]: https://aka.ms/PowerToysOverview_VideoConference
|
||||
[loc-bug]: https://github.com/microsoft/PowerToys/issues/new?assignees=&labels=&template=translation_issue.md&title=
|
||||
[usingPowerToys-docs-link]: https://aka.ms/powertoys-docs
|
||||
|
||||
<!-- items that need to be updated release to release -->
|
||||
[github-next-release-work]: https://github.com/microsoft/PowerToys/issues?q=is%3Aopen+is%3Aissue+project%3Amicrosoft%2FPowerToys%2F42
|
||||
[github-current-release-work]: https://github.com/microsoft/PowerToys/issues?q=is%3Aopen+is%3Aissue+project%3Amicrosoft%2FPowerToys%2F41
|
||||
|
||||
41
SECURITY.md
Normal file
41
SECURITY.md
Normal file
@@ -0,0 +1,41 @@
|
||||
<!-- BEGIN MICROSOFT SECURITY.MD V0.0.2 BLOCK -->
|
||||
|
||||
## Security
|
||||
|
||||
Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [many more](https://opensource.microsoft.com/).
|
||||
|
||||
If you believe you have found a security vulnerability in any Microsoft-owned repository that meets Microsoft's [definition](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc751383(v=technet.10)) of a security vulnerability, please report it to us as described below.
|
||||
|
||||
## Reporting Security Issues
|
||||
|
||||
**Please do not report security vulnerabilities through public GitHub issues.**
|
||||
|
||||
Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report).
|
||||
|
||||
If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://www.microsoft.com/en-us/msrc/pgp-key-msrc).
|
||||
|
||||
You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://www.microsoft.com/msrc).
|
||||
|
||||
Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue:
|
||||
|
||||
* Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
|
||||
* Full paths of source file(s) related to the manifestation of the issue
|
||||
* The location of the affected source code (tag/branch/commit or direct URL)
|
||||
* Any special configuration required to reproduce the issue
|
||||
* Step-by-step instructions to reproduce the issue
|
||||
* Proof-of-concept or exploit code (if possible)
|
||||
* Impact of the issue, including how an attacker might exploit the issue
|
||||
|
||||
This information will help us triage your report more quickly.
|
||||
|
||||
If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://microsoft.com/msrc/bounty) page for more details about our active programs.
|
||||
|
||||
## Preferred Languages
|
||||
|
||||
We prefer all communications to be in English.
|
||||
|
||||
## Policy
|
||||
|
||||
Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://www.microsoft.com/en-us/msrc/cvd).
|
||||
|
||||
<!-- END MICROSOFT SECURITY.MD BLOCK -->
|
||||
24
SUPPORT.md
Normal file
24
SUPPORT.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# Support
|
||||
|
||||
|
||||
## How to use Microsoft PowerToys
|
||||
|
||||
For more info on [PowerToys overviews and how to use the utilities][usingPowerToys-docs-link], or any other tools and resources for [Windows development environments](https://learn.microsoft.com/windows/dev-environment/overview), head over to [learn.microsoft.com][usingPowerToys-docs-link]!
|
||||
|
||||
## How to file issues and get help
|
||||
|
||||
This project uses [GitHub Issues][gh-issue] to [track bugs][gh-bug] and [feature requests][gh-feature]. Please search the existing issues before filing new issues to avoid duplicates. For new issues, file your bug or
|
||||
feature request as a new Issue.
|
||||
|
||||
For help and questions about using this project, please look at our Wiki for using PowerToys and our [Contributor's Guide][contributor] if you want to work on PowerToys.
|
||||
|
||||
## Microsoft Support Policy
|
||||
|
||||
Support for PowerToys is limited to the resources listed above.
|
||||
|
||||
[gh-issue]: https://github.com/microsoft/PowerToys/issues/new/choose
|
||||
[gh-bug]: https://github.com/microsoft/PowerToys/issues/new?assignees=&labels=Issue-Bug&template=bug_report.md&title=
|
||||
[gh-feature]: https://github.com/microsoft/PowerToys/issues/new?assignees=&labels=&template=feature_request.md&title=
|
||||
[wiki]: https://github.com/microsoft/PowerToys/wiki
|
||||
[contributor]: https://github.com/microsoft/PowerToys/blob/main/CONTRIBUTING.md
|
||||
[usingPowerToys-docs-link]: https://aka.ms/powertoys-docs
|
||||
6
Solution.props
Normal file
6
Solution.props
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<GeneratedFilesDir>$(IntDir)Generated Files\</GeneratedFilesDir>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 273 KiB |
128
contributing.md
128
contributing.md
@@ -1,128 +0,0 @@
|
||||
# Power Toys Contributor's Guide
|
||||
|
||||
Below is our guidance for how to report issues, propose new features, and submit contributions via Pull Requests (PRs).
|
||||
|
||||
## Before you start, file an issue
|
||||
|
||||
Please follow this simple rule to help us eliminate any unnecessary wasted effort & frustration, and ensure an efficient and effective use of everyone's time - yours, ours, and other community members':
|
||||
|
||||
> 👉 If you have a question, think you've discovered an issue, would like to propose a new feature, etc., then find/file an issue **BEFORE** starting work to fix/implement it.
|
||||
|
||||
### Search existing issues first
|
||||
|
||||
Before filing a new issue, search existing open and closed issues first: It is likely someone else has found the problem you're seeing, and someone may be working on or have already contributed a fix!
|
||||
|
||||
If no existing item describes your issue/feature, great - please file a new issue:
|
||||
|
||||
### File a new Issue
|
||||
|
||||
* Don't know whether you're reporting an issue or requesting a feature? File an issue
|
||||
* Have a question that you don't see answered in docs, videos, etc.? File an issue
|
||||
* Want to know if we're planning on building a particular feature? File an issue
|
||||
* Got a great idea for a new utility or feature? File an issue/request/idea
|
||||
* Don't understand how to do something? File an issue/Community Guidance Request
|
||||
* Found an existing issue that describes yours? Great - upvote and add additional commentary / info / repro-steps / etc.
|
||||
|
||||
### Complete the template
|
||||
|
||||
**Please include as much information as possible in your issue**. The more information you provide, the more likely your issue/ask will be understood and implemented. Helpful information includes:
|
||||
|
||||
* What device you're running (inc. CPU type, memory, disk, etc.)
|
||||
* What build of Windows your device is running
|
||||
|
||||
👉 Tip: Run the following in PowerShell Core
|
||||
|
||||
```powershell
|
||||
C:\> $PSVersionTable.OS
|
||||
Microsoft Windows 10.0.18909
|
||||
```
|
||||
|
||||
... or in Windows PowerShell
|
||||
|
||||
```powershell
|
||||
C:\> $PSVersionTable.BuildVersion
|
||||
|
||||
Major Minor Build Revision
|
||||
----- ----- ----- --------
|
||||
10 0 18912 1001
|
||||
```
|
||||
|
||||
... or Cmd:
|
||||
|
||||
```cmd
|
||||
C:\> ver
|
||||
|
||||
Microsoft Windows [Version 10.0.18900.1001]
|
||||
```
|
||||
|
||||
* What tools and apps you're using (e.g. VS 2019, VSCode, etc.)
|
||||
* Don't assume we're experts in setting up YOUR environment and don't assume we are experts in YOUR workflow. Teach us to help you!
|
||||
* **We LOVE detailed repro steps!** What steps do we need to take to reproduce the issue? Assume we love to read repro steps. As much detail as you can stand is probably _barely_ enough detail for us!
|
||||
* Prefer error message text where possible or screenshots of errors if text cannot be captured
|
||||
* **If you intend to implement the fix/feature yourself then say so!** If you do not indicate otherwise we will assume that the issue is our to solve, or may label the issue as `Help-Wanted`.
|
||||
|
||||
### DO NOT post "+1" comments
|
||||
|
||||
> ⚠ DO NOT post "+1", "me too", or similar comments - they just add noise to an issue.
|
||||
|
||||
If you don't have any additional info/context to add but would like to indicate that you're affected by the issue, upvote the original issue by clicking its [+😊] button and hitting 👍 (+1) icon. This way we can actually measure how impactful an issue is.
|
||||
|
||||
---
|
||||
|
||||
## Contributing fixes / features
|
||||
|
||||
For those able & willing to help fix issues and/or implement features ...
|
||||
|
||||
### To Spec or not to Spec
|
||||
|
||||
Some issues/features may be quick and simple to describe and understand. For such scenarios, once a team member has agreed with your approach, skip ahead to the section headed "Fork, Branch, and Create your PR", below.
|
||||
|
||||
Small issues that do not require a spec will be labelled Issue-Bug or Issue-Task.
|
||||
|
||||
However, some issues/features will require careful thought & formal design before implementation. For these scenarios, we'll request that a spec is written and the associated issue will be labeled Issue-Feature.
|
||||
|
||||
Specs help collaborators discuss different approaches to solve a problem, describe how the feature will behave, how the feature will impact the user, what happens if something goes wrong, etc. Driving towards agreement in a spec, before any code is written, often results in simpler code, and less wasted effort in the long run.
|
||||
|
||||
Specs will be managed in a very similar manner as code contributions so please follow the "Fork, Branch and Create your PR" below.
|
||||
|
||||
### Writing / Contributing-to a Spec
|
||||
|
||||
To write/contribute to a spec: fork, branch and commit via PRs, as you would with any code changes.
|
||||
|
||||
Specs are written in markdown, stored under the `doc/specs` folder and named `[issue id] - [spec description].md`.
|
||||
|
||||
👉 **It is important to follow the spec templates and complete the requested information**. The available spec templates will help ensure that specs contain the minimum information & decisions necessary to permit development to begin. In particular, specs require you to confirm that you've already discussed the issue/idea with the team in an issue and that you provide the issue ID for reference.
|
||||
|
||||
Team members will be happy to help review specs and guide them to completion.
|
||||
|
||||
### Help Wanted
|
||||
|
||||
Once the team have approved an issue/spec, development can proceed. If no developers are immediately available, the spec can be parked ready for a developer to get started. Parked specs' issues will be labeled "Help Wanted". To find a list of development opportunities waiting for developer involvement, visit the Issues and filter on [the Help-Wanted label](https://github.com/microsoft/PowerToys/labels/Help-Wanted).
|
||||
|
||||
---
|
||||
|
||||
## Development
|
||||
|
||||
### Fork, Clone, Branch and Create your PR
|
||||
|
||||
Once you've discussed your proposed feature/fix/etc. with a team member, and you've agreed an approach or a spec has been written and approved, it's time to start development:
|
||||
|
||||
1. Fork the repo if you haven't already
|
||||
1. Clone your fork locally
|
||||
1. Create & push a feature branch
|
||||
1. Create a [Draft Pull Request (PR)](https://github.blog/2019-02-14-introducing-draft-pull-requests/)
|
||||
1. Work on your changes
|
||||
|
||||
### Code Review
|
||||
|
||||
When you'd like the team to take a look, (even if the work is not yet fully-complete), mark the PR as 'Ready For Review' so that the team can review your work and provide comments, suggestions, and request changes. It may take several cycles, but the end result will be solid, testable, conformant code that is safe for us to merge.
|
||||
|
||||
### Merge
|
||||
|
||||
Once your code has been reviewed and approved by the requisite number of team members, it will be merged into the master branch. Once merged, your PR will be automatically closed.
|
||||
|
||||
---
|
||||
|
||||
## Thank you
|
||||
|
||||
Thank you in advance for your contribution!
|
||||
12
deps/cpprestsdk/README.md
vendored
12
deps/cpprestsdk/README.md
vendored
@@ -1,12 +0,0 @@
|
||||
# C++ Rest SDK - JSON library
|
||||
|
||||
This JSON library is taken from the C++ REST SDK in https://github.com/microsoft/cpprestsdk
|
||||
|
||||
Based in the [v2.10.13 release](https://github.com/microsoft/cpprestsdk/tree/v2.10.13/Release), it consists of the needed files to build and use the JSON classes described in `include/cpprest/json.h`.
|
||||
|
||||
Changes made to the files in order to build in the PowerToys project:
|
||||
- Removal of `#include` references to files that are not needed.
|
||||
- `#include "pch.h"` instead of `#include "stdafx.h"` to use the PowerToys pre-compiled header.
|
||||
- `#define _NO_ASYNCRTIMP` in [`include/cpprest/details/cpprest_compat.h`](./include/cpprest/details/cpprest_compat.h) since this class will be statically linked.
|
||||
|
||||
The contents of the C++ Rest SDK license are included in [license.txt](./license.txt).
|
||||
121
deps/cpprestsdk/cpprestsdk.vcxproj
vendored
121
deps/cpprestsdk/cpprestsdk.vcxproj
vendored
@@ -1,121 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>15.0</VCProjectVersion>
|
||||
<ProjectGuid>{4E577735-DFAB-41AF-8A6E-B6E8872A2928}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>common</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
<ProjectName>cpprestsdk</ProjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<LanguageStandard>stdcpplatest</LanguageStandard>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<LanguageStandard>stdcpplatest</LanguageStandard>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="include\cpprest\asyncrt_utils.h" />
|
||||
<ClInclude Include="include\cpprest\base_uri.h" />
|
||||
<ClInclude Include="include\cpprest\details\basic_types.h" />
|
||||
<ClInclude Include="include\cpprest\details\cpprest_compat.h" />
|
||||
<ClInclude Include="include\cpprest\details\SafeInt3.hpp" />
|
||||
<ClInclude Include="include\cpprest\details\web_utilities.h" />
|
||||
<ClInclude Include="include\cpprest\json.h" />
|
||||
<ClInclude Include="include\cpprest\uri.h" />
|
||||
<ClInclude Include="include\cpprest\uri_builder.h" />
|
||||
<ClInclude Include="include\cpprest\version.h" />
|
||||
<ClInclude Include="pch.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="src\json\json.cpp" />
|
||||
<ClCompile Include="src\json\json_parsing.cpp" />
|
||||
<ClCompile Include="src\json\json_serialization.cpp" />
|
||||
<ClCompile Include="src\utilities\asyncrt_utils.cpp" />
|
||||
<ClCompile Include="src\utilities\base64.cpp" />
|
||||
<ClCompile Include="src\utilities\web_utilities.cpp" />
|
||||
<ClCompile Include="pch.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
697
deps/cpprestsdk/include/cpprest/asyncrt_utils.h
vendored
697
deps/cpprestsdk/include/cpprest/asyncrt_utils.h
vendored
@@ -1,697 +0,0 @@
|
||||
/***
|
||||
* Copyright (C) Microsoft. All rights reserved.
|
||||
* Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
|
||||
*
|
||||
* =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|
||||
*
|
||||
* Various common utilities.
|
||||
*
|
||||
* For the latest on this and related APIs, please see: https://github.com/Microsoft/cpprestsdk
|
||||
*
|
||||
* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||||
****/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "cpprest/details/basic_types.h"
|
||||
//#include "pplx/pplxtasks.h"
|
||||
#include <chrono>
|
||||
#include <cstdint>
|
||||
#include <limits.h>
|
||||
#include <locale.h>
|
||||
#include <random>
|
||||
#include <string>
|
||||
#include <system_error>
|
||||
#include <vector>
|
||||
|
||||
#ifndef _WIN32
|
||||
#include <sys/time.h>
|
||||
#if !defined(ANDROID) && !defined(__ANDROID__) && defined(HAVE_XLOCALE_H) // CodePlex 269
|
||||
/* Systems using glibc: xlocale.h has been removed from glibc 2.26
|
||||
The above include of locale.h is sufficient
|
||||
Further details: https://sourceware.org/git/?p=glibc.git;a=commit;h=f0be25b6336db7492e47d2e8e72eb8af53b5506d */
|
||||
#include <xlocale.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/// Various utilities for string conversions and date and time manipulation.
|
||||
namespace utility
|
||||
{
|
||||
// Left over from VS2010 support, remains to avoid breaking.
|
||||
typedef std::chrono::seconds seconds;
|
||||
|
||||
/// Functions for converting to/from std::chrono::seconds to xml string.
|
||||
namespace timespan
|
||||
{
|
||||
/// <summary>
|
||||
/// Converts a timespan/interval in seconds to xml duration string as specified by
|
||||
/// http://www.w3.org/TR/xmlschema-2/#duration
|
||||
/// </summary>
|
||||
_ASYNCRTIMP utility::string_t __cdecl seconds_to_xml_duration(utility::seconds numSecs);
|
||||
|
||||
/// <summary>
|
||||
/// Converts an xml duration to timespan/interval in seconds
|
||||
/// http://www.w3.org/TR/xmlschema-2/#duration
|
||||
/// </summary>
|
||||
_ASYNCRTIMP utility::seconds __cdecl xml_duration_to_seconds(const utility::string_t& timespanString);
|
||||
} // namespace timespan
|
||||
|
||||
/// Functions for Unicode string conversions.
|
||||
namespace conversions
|
||||
{
|
||||
/// <summary>
|
||||
/// Converts a UTF-16 string to a UTF-8 string.
|
||||
/// </summary>
|
||||
/// <param name="w">A two byte character UTF-16 string.</param>
|
||||
/// <returns>A single byte character UTF-8 string.</returns>
|
||||
_ASYNCRTIMP std::string __cdecl utf16_to_utf8(const utf16string& w);
|
||||
|
||||
/// <summary>
|
||||
/// Converts a UTF-8 string to a UTF-16
|
||||
/// </summary>
|
||||
/// <param name="s">A single byte character UTF-8 string.</param>
|
||||
/// <returns>A two byte character UTF-16 string.</returns>
|
||||
_ASYNCRTIMP utf16string __cdecl utf8_to_utf16(const std::string& s);
|
||||
|
||||
/// <summary>
|
||||
/// Converts a ASCII (us-ascii) string to a UTF-16 string.
|
||||
/// </summary>
|
||||
/// <param name="s">A single byte character us-ascii string.</param>
|
||||
/// <returns>A two byte character UTF-16 string.</returns>
|
||||
_ASYNCRTIMP utf16string __cdecl usascii_to_utf16(const std::string& s);
|
||||
|
||||
/// <summary>
|
||||
/// Converts a Latin1 (iso-8859-1) string to a UTF-16 string.
|
||||
/// </summary>
|
||||
/// <param name="s">A single byte character UTF-8 string.</param>
|
||||
/// <returns>A two byte character UTF-16 string.</returns>
|
||||
_ASYNCRTIMP utf16string __cdecl latin1_to_utf16(const std::string& s);
|
||||
|
||||
/// <summary>
|
||||
/// Converts a Latin1 (iso-8859-1) string to a UTF-8 string.
|
||||
/// </summary>
|
||||
/// <param name="s">A single byte character UTF-8 string.</param>
|
||||
/// <returns>A single byte character UTF-8 string.</returns>
|
||||
_ASYNCRTIMP utf8string __cdecl latin1_to_utf8(const std::string& s);
|
||||
|
||||
/// <summary>
|
||||
/// Converts to a platform dependent Unicode string type.
|
||||
/// </summary>
|
||||
/// <param name="s">A single byte character UTF-8 string.</param>
|
||||
/// <returns>A platform dependent string type.</returns>
|
||||
#ifdef _UTF16_STRINGS
|
||||
_ASYNCRTIMP utility::string_t __cdecl to_string_t(std::string&& s);
|
||||
#else
|
||||
inline utility::string_t&& to_string_t(std::string&& s) { return std::move(s); }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Converts to a platform dependent Unicode string type.
|
||||
/// </summary>
|
||||
/// <param name="s">A two byte character UTF-16 string.</param>
|
||||
/// <returns>A platform dependent string type.</returns>
|
||||
#ifdef _UTF16_STRINGS
|
||||
inline utility::string_t&& to_string_t(utf16string&& s) { return std::move(s); }
|
||||
#else
|
||||
_ASYNCRTIMP utility::string_t __cdecl to_string_t(utf16string&& s);
|
||||
#endif
|
||||
/// <summary>
|
||||
/// Converts to a platform dependent Unicode string type.
|
||||
/// </summary>
|
||||
/// <param name="s">A single byte character UTF-8 string.</param>
|
||||
/// <returns>A platform dependent string type.</returns>
|
||||
#ifdef _UTF16_STRINGS
|
||||
_ASYNCRTIMP utility::string_t __cdecl to_string_t(const std::string& s);
|
||||
#else
|
||||
inline const utility::string_t& to_string_t(const std::string& s) { return s; }
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Converts to a platform dependent Unicode string type.
|
||||
/// </summary>
|
||||
/// <param name="s">A two byte character UTF-16 string.</param>
|
||||
/// <returns>A platform dependent string type.</returns>
|
||||
#ifdef _UTF16_STRINGS
|
||||
inline const utility::string_t& to_string_t(const utf16string& s) { return s; }
|
||||
#else
|
||||
_ASYNCRTIMP utility::string_t __cdecl to_string_t(const utf16string& s);
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Converts to a UTF-16 from string.
|
||||
/// </summary>
|
||||
/// <param name="value">A single byte character UTF-8 string.</param>
|
||||
/// <returns>A two byte character UTF-16 string.</returns>
|
||||
_ASYNCRTIMP utf16string __cdecl to_utf16string(const std::string& value);
|
||||
|
||||
/// <summary>
|
||||
/// Converts to a UTF-16 from string.
|
||||
/// </summary>
|
||||
/// <param name="value">A two byte character UTF-16 string.</param>
|
||||
/// <returns>A two byte character UTF-16 string.</returns>
|
||||
inline const utf16string& to_utf16string(const utf16string& value) { return value; }
|
||||
/// <summary>
|
||||
/// Converts to a UTF-16 from string.
|
||||
/// </summary>
|
||||
/// <param name="value">A two byte character UTF-16 string.</param>
|
||||
/// <returns>A two byte character UTF-16 string.</returns>
|
||||
inline utf16string&& to_utf16string(utf16string&& value) { return std::move(value); }
|
||||
|
||||
/// <summary>
|
||||
/// Converts to a UTF-8 string.
|
||||
/// </summary>
|
||||
/// <param name="value">A single byte character UTF-8 string.</param>
|
||||
/// <returns>A single byte character UTF-8 string.</returns>
|
||||
inline std::string&& to_utf8string(std::string&& value) { return std::move(value); }
|
||||
|
||||
/// <summary>
|
||||
/// Converts to a UTF-8 string.
|
||||
/// </summary>
|
||||
/// <param name="value">A single byte character UTF-8 string.</param>
|
||||
/// <returns>A single byte character UTF-8 string.</returns>
|
||||
inline const std::string& to_utf8string(const std::string& value) { return value; }
|
||||
|
||||
/// <summary>
|
||||
/// Converts to a UTF-8 string.
|
||||
/// </summary>
|
||||
/// <param name="value">A two byte character UTF-16 string.</param>
|
||||
/// <returns>A single byte character UTF-8 string.</returns>
|
||||
_ASYNCRTIMP std::string __cdecl to_utf8string(const utf16string& value);
|
||||
|
||||
/// <summary>
|
||||
/// Encode the given byte array into a base64 string
|
||||
/// </summary>
|
||||
_ASYNCRTIMP utility::string_t __cdecl to_base64(const std::vector<unsigned char>& data);
|
||||
|
||||
/// <summary>
|
||||
/// Encode the given 8-byte integer into a base64 string
|
||||
/// </summary>
|
||||
_ASYNCRTIMP utility::string_t __cdecl to_base64(uint64_t data);
|
||||
|
||||
/// <summary>
|
||||
/// Decode the given base64 string to a byte array
|
||||
/// </summary>
|
||||
_ASYNCRTIMP std::vector<unsigned char> __cdecl from_base64(const utility::string_t& str);
|
||||
|
||||
template<typename Source>
|
||||
CASABLANCA_DEPRECATED("All locale-sensitive APIs will be removed in a future update. Use stringstreams directly if "
|
||||
"locale support is required.")
|
||||
utility::string_t print_string(const Source& val, const std::locale& loc = std::locale())
|
||||
{
|
||||
utility::ostringstream_t oss;
|
||||
oss.imbue(loc);
|
||||
oss << val;
|
||||
if (oss.bad())
|
||||
{
|
||||
throw std::bad_cast();
|
||||
}
|
||||
return oss.str();
|
||||
}
|
||||
|
||||
CASABLANCA_DEPRECATED("All locale-sensitive APIs will be removed in a future update. Use stringstreams directly if "
|
||||
"locale support is required.")
|
||||
inline utility::string_t print_string(const utility::string_t& val) { return val; }
|
||||
|
||||
namespace details
|
||||
{
|
||||
#if defined(__ANDROID__)
|
||||
template<class T>
|
||||
inline std::string to_string(const T t)
|
||||
{
|
||||
std::ostringstream os;
|
||||
os.imbue(std::locale::classic());
|
||||
os << t;
|
||||
return os.str();
|
||||
}
|
||||
#endif
|
||||
|
||||
template<class T>
|
||||
inline utility::string_t to_string_t(const T t)
|
||||
{
|
||||
#ifdef _UTF16_STRINGS
|
||||
using std::to_wstring;
|
||||
return to_wstring(t);
|
||||
#else
|
||||
#if !defined(__ANDROID__)
|
||||
using std::to_string;
|
||||
#endif
|
||||
return to_string(t);
|
||||
#endif
|
||||
}
|
||||
|
||||
template<typename Source>
|
||||
utility::string_t print_string(const Source& val)
|
||||
{
|
||||
utility::ostringstream_t oss;
|
||||
oss.imbue(std::locale::classic());
|
||||
oss << val;
|
||||
if (oss.bad())
|
||||
{
|
||||
throw std::bad_cast();
|
||||
}
|
||||
return oss.str();
|
||||
}
|
||||
|
||||
inline const utility::string_t& print_string(const utility::string_t& val) { return val; }
|
||||
|
||||
template<typename Source>
|
||||
utf8string print_utf8string(const Source& val)
|
||||
{
|
||||
return conversions::to_utf8string(print_string(val));
|
||||
}
|
||||
inline const utf8string& print_utf8string(const utf8string& val) { return val; }
|
||||
|
||||
template<typename Target>
|
||||
Target scan_string(const utility::string_t& str)
|
||||
{
|
||||
Target t;
|
||||
utility::istringstream_t iss(str);
|
||||
iss.imbue(std::locale::classic());
|
||||
iss >> t;
|
||||
if (iss.bad())
|
||||
{
|
||||
throw std::bad_cast();
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
inline const utility::string_t& scan_string(const utility::string_t& str) { return str; }
|
||||
} // namespace details
|
||||
|
||||
template<typename Target>
|
||||
CASABLANCA_DEPRECATED("All locale-sensitive APIs will be removed in a future update. Use stringstreams directly if "
|
||||
"locale support is required.")
|
||||
Target scan_string(const utility::string_t& str, const std::locale& loc = std::locale())
|
||||
{
|
||||
Target t;
|
||||
utility::istringstream_t iss(str);
|
||||
iss.imbue(loc);
|
||||
iss >> t;
|
||||
if (iss.bad())
|
||||
{
|
||||
throw std::bad_cast();
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
CASABLANCA_DEPRECATED("All locale-sensitive APIs will be removed in a future update. Use stringstreams directly if "
|
||||
"locale support is required.")
|
||||
inline utility::string_t scan_string(const utility::string_t& str) { return str; }
|
||||
} // namespace conversions
|
||||
|
||||
namespace details
|
||||
{
|
||||
/// <summary>
|
||||
/// Cross platform RAII container for setting thread local locale.
|
||||
/// </summary>
|
||||
class scoped_c_thread_locale
|
||||
{
|
||||
public:
|
||||
_ASYNCRTIMP scoped_c_thread_locale();
|
||||
_ASYNCRTIMP ~scoped_c_thread_locale();
|
||||
|
||||
#if !defined(ANDROID) && !defined(__ANDROID__) // CodePlex 269
|
||||
#ifdef _WIN32
|
||||
typedef _locale_t xplat_locale;
|
||||
#else
|
||||
typedef locale_t xplat_locale;
|
||||
#endif
|
||||
|
||||
static _ASYNCRTIMP xplat_locale __cdecl c_locale();
|
||||
#endif
|
||||
private:
|
||||
#ifdef _WIN32
|
||||
std::string m_prevLocale;
|
||||
int m_prevThreadSetting;
|
||||
#elif !(defined(ANDROID) || defined(__ANDROID__))
|
||||
locale_t m_prevLocale;
|
||||
#endif
|
||||
scoped_c_thread_locale(const scoped_c_thread_locale&);
|
||||
scoped_c_thread_locale& operator=(const scoped_c_thread_locale&);
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Our own implementation of alpha numeric instead of std::isalnum to avoid
|
||||
/// taking global lock for performance reasons.
|
||||
/// </summary>
|
||||
inline bool __cdecl is_alnum(const unsigned char uch) CPPREST_NOEXCEPT
|
||||
{ // test if uch is an alnum character
|
||||
// special casing char to avoid branches
|
||||
// clang-format off
|
||||
static CPPREST_CONSTEXPR bool is_alnum_table[UCHAR_MAX + 1] = {
|
||||
/* X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */
|
||||
/* 0X */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 1X */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 2X */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 3X */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* 0-9 */
|
||||
/* 4X */ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* A-Z */
|
||||
/* 5X */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
|
||||
/* 6X */ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* a-z */
|
||||
/* 7X */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0
|
||||
/* non-ASCII values initialized to 0 */
|
||||
};
|
||||
// clang-format on
|
||||
return (is_alnum_table[uch]);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Our own implementation of alpha numeric instead of std::isalnum to avoid
|
||||
/// taking global lock for performance reasons.
|
||||
/// </summary>
|
||||
inline bool __cdecl is_alnum(const char ch) CPPREST_NOEXCEPT { return (is_alnum(static_cast<unsigned char>(ch))); }
|
||||
|
||||
/// <summary>
|
||||
/// Our own implementation of alpha numeric instead of std::isalnum to avoid
|
||||
/// taking global lock for performance reasons.
|
||||
/// </summary>
|
||||
template<class Elem>
|
||||
inline bool __cdecl is_alnum(Elem ch) CPPREST_NOEXCEPT
|
||||
{
|
||||
// assumes 'x' == L'x' for the ASCII range
|
||||
typedef typename std::make_unsigned<Elem>::type UElem;
|
||||
const auto uch = static_cast<UElem>(ch);
|
||||
return (uch <= static_cast<UElem>('z') && is_alnum(static_cast<unsigned char>(uch)));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Simplistic implementation of make_unique. A better implementation would be based on variadic templates
|
||||
/// and therefore not be compatible with Dev10.
|
||||
/// </summary>
|
||||
template<typename _Type>
|
||||
std::unique_ptr<_Type> make_unique()
|
||||
{
|
||||
return std::unique_ptr<_Type>(new _Type());
|
||||
}
|
||||
|
||||
template<typename _Type, typename _Arg1>
|
||||
std::unique_ptr<_Type> make_unique(_Arg1&& arg1)
|
||||
{
|
||||
return std::unique_ptr<_Type>(new _Type(std::forward<_Arg1>(arg1)));
|
||||
}
|
||||
|
||||
template<typename _Type, typename _Arg1, typename _Arg2>
|
||||
std::unique_ptr<_Type> make_unique(_Arg1&& arg1, _Arg2&& arg2)
|
||||
{
|
||||
return std::unique_ptr<_Type>(new _Type(std::forward<_Arg1>(arg1), std::forward<_Arg2>(arg2)));
|
||||
}
|
||||
|
||||
template<typename _Type, typename _Arg1, typename _Arg2, typename _Arg3>
|
||||
std::unique_ptr<_Type> make_unique(_Arg1&& arg1, _Arg2&& arg2, _Arg3&& arg3)
|
||||
{
|
||||
return std::unique_ptr<_Type>(
|
||||
new _Type(std::forward<_Arg1>(arg1), std::forward<_Arg2>(arg2), std::forward<_Arg3>(arg3)));
|
||||
}
|
||||
|
||||
template<typename _Type, typename _Arg1, typename _Arg2, typename _Arg3, typename _Arg4>
|
||||
std::unique_ptr<_Type> make_unique(_Arg1&& arg1, _Arg2&& arg2, _Arg3&& arg3, _Arg4&& arg4)
|
||||
{
|
||||
return std::unique_ptr<_Type>(new _Type(
|
||||
std::forward<_Arg1>(arg1), std::forward<_Arg2>(arg2), std::forward<_Arg3>(arg3), std::forward<_Arg4>(arg4)));
|
||||
}
|
||||
|
||||
template<typename _Type, typename _Arg1, typename _Arg2, typename _Arg3, typename _Arg4, typename _Arg5>
|
||||
std::unique_ptr<_Type> make_unique(_Arg1&& arg1, _Arg2&& arg2, _Arg3&& arg3, _Arg4&& arg4, _Arg5&& arg5)
|
||||
{
|
||||
return std::unique_ptr<_Type>(new _Type(std::forward<_Arg1>(arg1),
|
||||
std::forward<_Arg2>(arg2),
|
||||
std::forward<_Arg3>(arg3),
|
||||
std::forward<_Arg4>(arg4),
|
||||
std::forward<_Arg5>(arg5)));
|
||||
}
|
||||
|
||||
template<typename _Type, typename _Arg1, typename _Arg2, typename _Arg3, typename _Arg4, typename _Arg5, typename _Arg6>
|
||||
std::unique_ptr<_Type> make_unique(_Arg1&& arg1, _Arg2&& arg2, _Arg3&& arg3, _Arg4&& arg4, _Arg5&& arg5, _Arg6&& arg6)
|
||||
{
|
||||
return std::unique_ptr<_Type>(new _Type(std::forward<_Arg1>(arg1),
|
||||
std::forward<_Arg2>(arg2),
|
||||
std::forward<_Arg3>(arg3),
|
||||
std::forward<_Arg4>(arg4),
|
||||
std::forward<_Arg5>(arg5),
|
||||
std::forward<_Arg6>(arg6)));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Cross platform utility function for performing case insensitive string equality comparison.
|
||||
/// </summary>
|
||||
/// <param name="left">First string to compare.</param>
|
||||
/// <param name="right">Second strong to compare.</param>
|
||||
/// <returns>true if the strings are equivalent, false otherwise</returns>
|
||||
_ASYNCRTIMP bool __cdecl str_iequal(const std::string& left, const std::string& right) CPPREST_NOEXCEPT;
|
||||
|
||||
/// <summary>
|
||||
/// Cross platform utility function for performing case insensitive string equality comparison.
|
||||
/// </summary>
|
||||
/// <param name="left">First string to compare.</param>
|
||||
/// <param name="right">Second strong to compare.</param>
|
||||
/// <returns>true if the strings are equivalent, false otherwise</returns>
|
||||
_ASYNCRTIMP bool __cdecl str_iequal(const std::wstring& left, const std::wstring& right) CPPREST_NOEXCEPT;
|
||||
|
||||
/// <summary>
|
||||
/// Cross platform utility function for performing case insensitive string less-than comparison.
|
||||
/// </summary>
|
||||
/// <param name="left">First string to compare.</param>
|
||||
/// <param name="right">Second strong to compare.</param>
|
||||
/// <returns>true if a lowercase view of left is lexicographically less than a lowercase view of right; otherwise,
|
||||
/// false.</returns>
|
||||
_ASYNCRTIMP bool __cdecl str_iless(const std::string& left, const std::string& right) CPPREST_NOEXCEPT;
|
||||
|
||||
/// <summary>
|
||||
/// Cross platform utility function for performing case insensitive string less-than comparison.
|
||||
/// </summary>
|
||||
/// <param name="left">First string to compare.</param>
|
||||
/// <param name="right">Second strong to compare.</param>
|
||||
/// <returns>true if a lowercase view of left is lexicographically less than a lowercase view of right; otherwise,
|
||||
/// false.</returns>
|
||||
_ASYNCRTIMP bool __cdecl str_iless(const std::wstring& left, const std::wstring& right) CPPREST_NOEXCEPT;
|
||||
|
||||
/// <summary>
|
||||
/// Convert a string to lowercase in place.
|
||||
/// </summary>
|
||||
/// <param name="target">The string to convert to lowercase.</param>
|
||||
_ASYNCRTIMP void __cdecl inplace_tolower(std::string& target) CPPREST_NOEXCEPT;
|
||||
|
||||
/// <summary>
|
||||
/// Convert a string to lowercase in place.
|
||||
/// </summary>
|
||||
/// <param name="target">The string to convert to lowercase.</param>
|
||||
_ASYNCRTIMP void __cdecl inplace_tolower(std::wstring& target) CPPREST_NOEXCEPT;
|
||||
|
||||
#ifdef _WIN32
|
||||
|
||||
/// <summary>
|
||||
/// Category error type for Windows OS errors.
|
||||
/// </summary>
|
||||
class windows_category_impl : public std::error_category
|
||||
{
|
||||
public:
|
||||
virtual const char* name() const CPPREST_NOEXCEPT { return "windows"; }
|
||||
|
||||
virtual std::string message(int errorCode) const CPPREST_NOEXCEPT;
|
||||
|
||||
virtual std::error_condition default_error_condition(int errorCode) const CPPREST_NOEXCEPT;
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Gets the one global instance of the windows error category.
|
||||
/// </summary>
|
||||
/// </returns>An error category instance.</returns>
|
||||
_ASYNCRTIMP const std::error_category& __cdecl windows_category();
|
||||
|
||||
#else
|
||||
|
||||
/// <summary>
|
||||
/// Gets the one global instance of the linux error category.
|
||||
/// </summary>
|
||||
/// </returns>An error category instance.</returns>
|
||||
_ASYNCRTIMP const std::error_category& __cdecl linux_category();
|
||||
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Gets the one global instance of the current platform's error category.
|
||||
/// </summary>
|
||||
_ASYNCRTIMP const std::error_category& __cdecl platform_category();
|
||||
|
||||
/// <summary>
|
||||
/// Creates an instance of std::system_error from a OS error code.
|
||||
/// </summary>
|
||||
inline std::system_error __cdecl create_system_error(unsigned long errorCode)
|
||||
{
|
||||
std::error_code code((int)errorCode, platform_category());
|
||||
return std::system_error(code, code.message());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a std::error_code from a OS error code.
|
||||
/// </summary>
|
||||
inline std::error_code __cdecl create_error_code(unsigned long errorCode)
|
||||
{
|
||||
return std::error_code((int)errorCode, platform_category());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates the corresponding error message from a OS error code.
|
||||
/// </summary>
|
||||
inline utility::string_t __cdecl create_error_message(unsigned long errorCode)
|
||||
{
|
||||
return utility::conversions::to_string_t(create_error_code(errorCode).message());
|
||||
}
|
||||
|
||||
} // namespace details
|
||||
|
||||
class datetime
|
||||
{
|
||||
public:
|
||||
typedef uint64_t interval_type;
|
||||
|
||||
/// <summary>
|
||||
/// Defines the supported date and time string formats.
|
||||
/// </summary>
|
||||
enum date_format
|
||||
{
|
||||
RFC_1123,
|
||||
ISO_8601
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Returns the current UTC time.
|
||||
/// </summary>
|
||||
static _ASYNCRTIMP datetime __cdecl utc_now();
|
||||
|
||||
/// <summary>
|
||||
/// An invalid UTC timestamp value.
|
||||
/// </summary>
|
||||
enum : interval_type
|
||||
{
|
||||
utc_timestamp_invalid = static_cast<interval_type>(-1)
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Returns seconds since Unix/POSIX time epoch at 01-01-1970 00:00:00.
|
||||
/// If time is before epoch, utc_timestamp_invalid is returned.
|
||||
/// </summary>
|
||||
static interval_type utc_timestamp()
|
||||
{
|
||||
const auto seconds = utc_now().to_interval() / _secondTicks;
|
||||
if (seconds >= 11644473600LL)
|
||||
{
|
||||
return seconds - 11644473600LL;
|
||||
}
|
||||
else
|
||||
{
|
||||
return utc_timestamp_invalid;
|
||||
}
|
||||
}
|
||||
|
||||
datetime() : m_interval(0) {}
|
||||
|
||||
/// <summary>
|
||||
/// Creates <c>datetime</c> from a string representing time in UTC in RFC 1123 format.
|
||||
/// </summary>
|
||||
/// <returns>Returns a <c>datetime</c> of zero if not successful.</returns>
|
||||
static _ASYNCRTIMP datetime __cdecl from_string(const utility::string_t& timestring, date_format format = RFC_1123);
|
||||
|
||||
/// <summary>
|
||||
/// Returns a string representation of the <c>datetime</c>.
|
||||
/// </summary>
|
||||
_ASYNCRTIMP utility::string_t to_string(date_format format = RFC_1123) const;
|
||||
|
||||
/// <summary>
|
||||
/// Returns the integral time value.
|
||||
/// </summary>
|
||||
interval_type to_interval() const { return m_interval; }
|
||||
|
||||
datetime operator-(interval_type value) const { return datetime(m_interval - value); }
|
||||
|
||||
datetime operator+(interval_type value) const { return datetime(m_interval + value); }
|
||||
|
||||
bool operator==(datetime dt) const { return m_interval == dt.m_interval; }
|
||||
|
||||
bool operator!=(const datetime& dt) const { return !(*this == dt); }
|
||||
|
||||
static interval_type from_milliseconds(unsigned int milliseconds) { return milliseconds * _msTicks; }
|
||||
|
||||
static interval_type from_seconds(unsigned int seconds) { return seconds * _secondTicks; }
|
||||
|
||||
static interval_type from_minutes(unsigned int minutes) { return minutes * _minuteTicks; }
|
||||
|
||||
static interval_type from_hours(unsigned int hours) { return hours * _hourTicks; }
|
||||
|
||||
static interval_type from_days(unsigned int days) { return days * _dayTicks; }
|
||||
|
||||
bool is_initialized() const { return m_interval != 0; }
|
||||
|
||||
private:
|
||||
friend int operator-(datetime t1, datetime t2);
|
||||
|
||||
static const interval_type _msTicks = static_cast<interval_type>(10000);
|
||||
static const interval_type _secondTicks = 1000 * _msTicks;
|
||||
static const interval_type _minuteTicks = 60 * _secondTicks;
|
||||
static const interval_type _hourTicks = 60 * 60 * _secondTicks;
|
||||
static const interval_type _dayTicks = 24 * 60 * 60 * _secondTicks;
|
||||
|
||||
// Private constructor. Use static methods to create an instance.
|
||||
datetime(interval_type interval) : m_interval(interval) {}
|
||||
|
||||
// Storing as hundreds of nanoseconds 10e-7, i.e. 1 here equals 100ns.
|
||||
interval_type m_interval;
|
||||
};
|
||||
|
||||
inline int operator-(datetime t1, datetime t2)
|
||||
{
|
||||
auto diff = (t1.m_interval - t2.m_interval);
|
||||
|
||||
// Round it down to seconds
|
||||
diff /= 10 * 1000 * 1000;
|
||||
|
||||
return static_cast<int>(diff);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Nonce string generator class.
|
||||
/// </summary>
|
||||
class nonce_generator
|
||||
{
|
||||
public:
|
||||
/// <summary>
|
||||
/// Define default nonce length.
|
||||
/// </summary>
|
||||
enum
|
||||
{
|
||||
default_length = 32
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Nonce generator constructor.
|
||||
/// </summary>
|
||||
/// <param name="length">Length of the generated nonce string.</param>
|
||||
nonce_generator(int length = default_length)
|
||||
: m_random(static_cast<unsigned int>(utility::datetime::utc_timestamp())), m_length(length)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generate a nonce string containing random alphanumeric characters (A-Za-z0-9).
|
||||
/// Length of the generated string is set by length().
|
||||
/// </summary>
|
||||
/// <returns>The generated nonce string.</returns>
|
||||
_ASYNCRTIMP utility::string_t generate();
|
||||
|
||||
/// <summary>
|
||||
/// Get length of generated nonce string.
|
||||
/// </summary>
|
||||
/// <returns>Nonce string length.</returns>
|
||||
int length() const { return m_length; }
|
||||
|
||||
/// <summary>
|
||||
/// Set length of the generated nonce string.
|
||||
/// </summary>
|
||||
/// <param name="length">Lenght of nonce string.</param>
|
||||
void set_length(int length) { m_length = length; }
|
||||
|
||||
private:
|
||||
std::mt19937 m_random;
|
||||
int m_length;
|
||||
};
|
||||
|
||||
} // namespace utility
|
||||
391
deps/cpprestsdk/include/cpprest/base_uri.h
vendored
391
deps/cpprestsdk/include/cpprest/base_uri.h
vendored
@@ -1,391 +0,0 @@
|
||||
/***
|
||||
* Copyright (C) Microsoft. All rights reserved.
|
||||
* Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
|
||||
*
|
||||
* =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|
||||
*
|
||||
* Protocol independent support for URIs.
|
||||
*
|
||||
* For the latest on this and related APIs, please see: https://github.com/Microsoft/cpprestsdk
|
||||
*
|
||||
* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||||
****/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "cpprest/asyncrt_utils.h"
|
||||
#include "cpprest/details/basic_types.h"
|
||||
#include <map>
|
||||
#include <string>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
namespace web
|
||||
{
|
||||
namespace details
|
||||
{
|
||||
struct uri_components
|
||||
{
|
||||
uri_components() : m_path(_XPLATSTR("/")), m_port(-1) {}
|
||||
|
||||
uri_components(const uri_components&) = default;
|
||||
uri_components& operator=(const uri_components&) = default;
|
||||
|
||||
// This is for VS2013 compatibility -- replace with '= default' when VS2013 is completely dropped.
|
||||
uri_components(uri_components&& other) CPPREST_NOEXCEPT : m_scheme(std::move(other.m_scheme)),
|
||||
m_host(std::move(other.m_host)),
|
||||
m_user_info(std::move(other.m_user_info)),
|
||||
m_path(std::move(other.m_path)),
|
||||
m_query(std::move(other.m_query)),
|
||||
m_fragment(std::move(other.m_fragment)),
|
||||
m_port(other.m_port)
|
||||
{
|
||||
}
|
||||
|
||||
// This is for VS2013 compatibility -- replace with '= default' when VS2013 is completely dropped.
|
||||
uri_components& operator=(uri_components&& other) CPPREST_NOEXCEPT
|
||||
{
|
||||
if (this != &other)
|
||||
{
|
||||
m_scheme = std::move(other.m_scheme);
|
||||
m_host = std::move(other.m_host);
|
||||
m_user_info = std::move(other.m_user_info);
|
||||
m_path = std::move(other.m_path);
|
||||
m_query = std::move(other.m_query);
|
||||
m_fragment = std::move(other.m_fragment);
|
||||
m_port = other.m_port;
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
_ASYNCRTIMP utility::string_t join();
|
||||
|
||||
utility::string_t m_scheme;
|
||||
utility::string_t m_host;
|
||||
utility::string_t m_user_info;
|
||||
utility::string_t m_path;
|
||||
utility::string_t m_query;
|
||||
utility::string_t m_fragment;
|
||||
int m_port;
|
||||
};
|
||||
} // namespace details
|
||||
|
||||
/// <summary>
|
||||
/// A single exception type to represent errors in parsing, encoding, and decoding URIs.
|
||||
/// </summary>
|
||||
class uri_exception : public std::exception
|
||||
{
|
||||
public:
|
||||
uri_exception(std::string msg) : m_msg(std::move(msg)) {}
|
||||
|
||||
~uri_exception() CPPREST_NOEXCEPT {}
|
||||
|
||||
const char* what() const CPPREST_NOEXCEPT { return m_msg.c_str(); }
|
||||
|
||||
private:
|
||||
std::string m_msg;
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// A flexible, protocol independent URI implementation.
|
||||
///
|
||||
/// URI instances are immutable. Querying the various fields on an empty URI will return empty strings. Querying
|
||||
/// various diagnostic members on an empty URI will return false.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This implementation accepts both URIs ('http://msn.com/path') and URI relative-references
|
||||
/// ('/path?query#frag').
|
||||
///
|
||||
/// This implementation does not provide any scheme-specific handling -- an example of this
|
||||
/// would be the following: 'http://path1/path'. This is a valid URI, but it's not a valid
|
||||
/// http-uri -- that is, it's syntactically correct but does not conform to the requirements
|
||||
/// of the http scheme (http requires a host).
|
||||
/// We could provide this by allowing a pluggable 'scheme' policy-class, which would provide
|
||||
/// extra capability for validating and canonicalizing a URI according to scheme, and would
|
||||
/// introduce a layer of type-safety for URIs of differing schemes, and thus differing semantics.
|
||||
///
|
||||
/// One issue with implementing a scheme-independent URI facility is that of comparing for equality.
|
||||
/// For instance, these URIs are considered equal 'http://msn.com', 'http://msn.com:80'. That is --
|
||||
/// the 'default' port can be either omitted or explicit. Since we don't have a way to map a scheme
|
||||
/// to it's default port, we don't have a way to know these are equal. This is just one of a class of
|
||||
/// issues with regard to scheme-specific behavior.
|
||||
/// </remarks>
|
||||
class uri
|
||||
{
|
||||
public:
|
||||
/// <summary>
|
||||
/// The various components of a URI. This enum is used to indicate which
|
||||
/// URI component is being encoded to the encode_uri_component. This allows
|
||||
/// specific encoding to be performed.
|
||||
///
|
||||
/// Scheme and port don't allow '%' so they don't need to be encoded.
|
||||
/// </summary>
|
||||
class components
|
||||
{
|
||||
public:
|
||||
enum component
|
||||
{
|
||||
user_info,
|
||||
host,
|
||||
path,
|
||||
query,
|
||||
fragment,
|
||||
full_uri
|
||||
};
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Encodes a URI component according to RFC 3986.
|
||||
/// Note if a full URI is specified instead of an individual URI component all
|
||||
/// characters not in the unreserved set are escaped.
|
||||
/// </summary>
|
||||
/// <param name="raw">The URI as a string.</param>
|
||||
/// <returns>The encoded string.</returns>
|
||||
_ASYNCRTIMP static utility::string_t __cdecl encode_uri(const utility::string_t& raw,
|
||||
uri::components::component = components::full_uri);
|
||||
|
||||
/// <summary>
|
||||
/// Encodes a string by converting all characters except for RFC 3986 unreserved characters to their
|
||||
/// hexadecimal representation.
|
||||
/// </summary>
|
||||
/// <returns>The encoded string.</returns>
|
||||
_ASYNCRTIMP static utility::string_t __cdecl encode_data_string(const utility::string_t& data);
|
||||
|
||||
/// <summary>
|
||||
/// Decodes an encoded string.
|
||||
/// </summary>
|
||||
/// <param name="encoded">The URI as a string.</param>
|
||||
/// <returns>The decoded string.</returns>
|
||||
_ASYNCRTIMP static utility::string_t __cdecl decode(const utility::string_t& encoded);
|
||||
|
||||
/// <summary>
|
||||
/// Splits a path into its hierarchical components.
|
||||
/// </summary>
|
||||
/// <param name="path">The path as a string</param>
|
||||
/// <returns>A <c>std::vector<utility::string_t></c> containing the segments in the path.</returns>
|
||||
_ASYNCRTIMP static std::vector<utility::string_t> __cdecl split_path(const utility::string_t& path);
|
||||
|
||||
/// <summary>
|
||||
/// Splits a query into its key-value components.
|
||||
/// </summary>
|
||||
/// <param name="query">The query string</param>
|
||||
/// <returns>A <c>std::map<utility::string_t, utility::string_t></c> containing the key-value components of
|
||||
/// the query.</returns>
|
||||
_ASYNCRTIMP static std::map<utility::string_t, utility::string_t> __cdecl split_query(
|
||||
const utility::string_t& query);
|
||||
|
||||
/// <summary>
|
||||
/// Validates a string as a URI.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This function accepts both uris ('http://msn.com') and uri relative-references ('path1/path2?query').
|
||||
/// </remarks>
|
||||
/// <param name="uri_string">The URI string to be validated.</param>
|
||||
/// <returns><c>true</c> if the given string represents a valid URI, <c>false</c> otherwise.</returns>
|
||||
_ASYNCRTIMP static bool __cdecl validate(const utility::string_t& uri_string);
|
||||
|
||||
/// <summary>
|
||||
/// Creates an empty uri
|
||||
/// </summary>
|
||||
uri() : m_uri(_XPLATSTR("/")) {}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a URI from the given encoded string. This will throw an exception if the string
|
||||
/// does not contain a valid URI. Use uri::validate if processing user-input.
|
||||
/// </summary>
|
||||
/// <param name="uri_string">A pointer to an encoded string to create the URI instance.</param>
|
||||
_ASYNCRTIMP uri(const utility::char_t* uri_string);
|
||||
|
||||
/// <summary>
|
||||
/// Creates a URI from the given encoded string. This will throw an exception if the string
|
||||
/// does not contain a valid URI. Use uri::validate if processing user-input.
|
||||
/// </summary>
|
||||
/// <param name="uri_string">An encoded URI string to create the URI instance.</param>
|
||||
_ASYNCRTIMP uri(const utility::string_t& uri_string);
|
||||
|
||||
/// <summary>
|
||||
/// Copy constructor.
|
||||
/// </summary>
|
||||
uri(const uri&) = default;
|
||||
|
||||
/// <summary>
|
||||
/// Copy assignment operator.
|
||||
/// </summary>
|
||||
uri& operator=(const uri&) = default;
|
||||
|
||||
/// <summary>
|
||||
/// Move constructor.
|
||||
/// </summary>
|
||||
// This is for VS2013 compatibility -- replace with '= default' when VS2013 is completely dropped.
|
||||
uri(uri&& other) CPPREST_NOEXCEPT : m_uri(std::move(other.m_uri)), m_components(std::move(other.m_components)) {}
|
||||
|
||||
/// <summary>
|
||||
/// Move assignment operator
|
||||
/// </summary>
|
||||
// This is for VS2013 compatibility -- replace with '= default' when VS2013 is completely dropped.
|
||||
uri& operator=(uri&& other) CPPREST_NOEXCEPT
|
||||
{
|
||||
if (this != &other)
|
||||
{
|
||||
m_uri = std::move(other.m_uri);
|
||||
m_components = std::move(other.m_components);
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the scheme component of the URI as an encoded string.
|
||||
/// </summary>
|
||||
/// <returns>The URI scheme as a string.</returns>
|
||||
const utility::string_t& scheme() const { return m_components.m_scheme; }
|
||||
|
||||
/// <summary>
|
||||
/// Get the user information component of the URI as an encoded string.
|
||||
/// </summary>
|
||||
/// <returns>The URI user information as a string.</returns>
|
||||
const utility::string_t& user_info() const { return m_components.m_user_info; }
|
||||
|
||||
/// <summary>
|
||||
/// Get the host component of the URI as an encoded string.
|
||||
/// </summary>
|
||||
/// <returns>The URI host as a string.</returns>
|
||||
const utility::string_t& host() const { return m_components.m_host; }
|
||||
|
||||
/// <summary>
|
||||
/// Get the port component of the URI. Returns -1 if no port is specified.
|
||||
/// </summary>
|
||||
/// <returns>The URI port as an integer.</returns>
|
||||
int port() const { return m_components.m_port; }
|
||||
|
||||
/// <summary>
|
||||
/// Get the path component of the URI as an encoded string.
|
||||
/// </summary>
|
||||
/// <returns>The URI path as a string.</returns>
|
||||
const utility::string_t& path() const { return m_components.m_path; }
|
||||
|
||||
/// <summary>
|
||||
/// Get the query component of the URI as an encoded string.
|
||||
/// </summary>
|
||||
/// <returns>The URI query as a string.</returns>
|
||||
const utility::string_t& query() const { return m_components.m_query; }
|
||||
|
||||
/// <summary>
|
||||
/// Get the fragment component of the URI as an encoded string.
|
||||
/// </summary>
|
||||
/// <returns>The URI fragment as a string.</returns>
|
||||
const utility::string_t& fragment() const { return m_components.m_fragment; }
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new uri object with the same authority portion as this one, omitting the resource and query portions.
|
||||
/// </summary>
|
||||
/// <returns>The new uri object with the same authority.</returns>
|
||||
_ASYNCRTIMP uri authority() const;
|
||||
|
||||
/// <summary>
|
||||
/// Gets the path, query, and fragment portion of this uri, which may be empty.
|
||||
/// </summary>
|
||||
/// <returns>The new URI object with the path, query and fragment portion of this URI.</returns>
|
||||
_ASYNCRTIMP uri resource() const;
|
||||
|
||||
/// <summary>
|
||||
/// An empty URI specifies no components, and serves as a default value
|
||||
/// </summary>
|
||||
bool is_empty() const { return this->m_uri.empty() || this->m_uri == _XPLATSTR("/"); }
|
||||
|
||||
/// <summary>
|
||||
/// A loopback URI is one which refers to a hostname or ip address with meaning only on the local machine.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Examples include "localhost", or ip addresses in the loopback range (127.0.0.0/24).
|
||||
/// </remarks>
|
||||
/// <returns><c>true</c> if this URI references the local host, <c>false</c> otherwise.</returns>
|
||||
bool is_host_loopback() const
|
||||
{
|
||||
return !is_empty() &&
|
||||
((host() == _XPLATSTR("localhost")) || (host().size() > 4 && host().substr(0, 4) == _XPLATSTR("127.")));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A wildcard URI is one which refers to all hostnames that resolve to the local machine (using the * or +)
|
||||
/// </summary>
|
||||
/// <example>
|
||||
/// http://*:80
|
||||
/// </example>
|
||||
bool is_host_wildcard() const
|
||||
{
|
||||
return !is_empty() && (this->host() == _XPLATSTR("*") || this->host() == _XPLATSTR("+"));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A portable URI is one with a hostname that can be resolved globally (used from another machine).
|
||||
/// </summary>
|
||||
/// <returns><c>true</c> if this URI can be resolved globally (used from another machine), <c>false</c>
|
||||
/// otherwise.</returns> <remarks> The hostname "localhost" is a reserved name that is guaranteed to resolve to the
|
||||
/// local machine, and cannot be used for inter-machine communication. Likewise the hostnames "*" and "+" on Windows
|
||||
/// represent wildcards, and do not map to a resolvable address.
|
||||
/// </remarks>
|
||||
bool is_host_portable() const { return !(is_empty() || is_host_loopback() || is_host_wildcard()); }
|
||||
|
||||
/// <summary>
|
||||
/// A default port is one where the port is unspecified, and will be determined by the operating system.
|
||||
/// The choice of default port may be dictated by the scheme (http -> 80) or not.
|
||||
/// </summary>
|
||||
/// <returns><c>true</c> if this URI instance has a default port, <c>false</c> otherwise.</returns>
|
||||
bool is_port_default() const { return !is_empty() && this->port() == 0; }
|
||||
|
||||
/// <summary>
|
||||
/// An "authority" URI is one with only a scheme, optional userinfo, hostname, and (optional) port.
|
||||
/// </summary>
|
||||
/// <returns><c>true</c> if this is an "authority" URI, <c>false</c> otherwise.</returns>
|
||||
bool is_authority() const { return !is_empty() && is_path_empty() && query().empty() && fragment().empty(); }
|
||||
|
||||
/// <summary>
|
||||
/// Returns whether the other URI has the same authority as this one
|
||||
/// </summary>
|
||||
/// <param name="other">The URI to compare the authority with.</param>
|
||||
/// <returns><c>true</c> if both the URI's have the same authority, <c>false</c> otherwise.</returns>
|
||||
bool has_same_authority(const uri& other) const { return !is_empty() && this->authority() == other.authority(); }
|
||||
|
||||
/// <summary>
|
||||
/// Returns whether the path portion of this URI is empty
|
||||
/// </summary>
|
||||
/// <returns><c>true</c> if the path portion of this URI is empty, <c>false</c> otherwise.</returns>
|
||||
bool is_path_empty() const { return path().empty() || path() == _XPLATSTR("/"); }
|
||||
|
||||
/// <summary>
|
||||
/// Returns the full (encoded) URI as a string.
|
||||
/// </summary>
|
||||
/// <returns>The full encoded URI string.</returns>
|
||||
utility::string_t to_string() const { return m_uri; }
|
||||
|
||||
/// <summary>
|
||||
/// Returns an URI resolved against <c>this</c> as the base URI
|
||||
/// according to RFC3986, Section 5 (https://tools.ietf.org/html/rfc3986#section-5).
|
||||
/// </summary>
|
||||
/// <param name="relativeUri">The relative URI to be resolved against <c>this</c> as base.</param>
|
||||
/// <returns>The new resolved URI string.</returns>
|
||||
_ASYNCRTIMP utility::string_t resolve_uri(const utility::string_t& relativeUri) const;
|
||||
|
||||
_ASYNCRTIMP bool operator==(const uri& other) const;
|
||||
|
||||
bool operator<(const uri& other) const { return m_uri < other.m_uri; }
|
||||
|
||||
bool operator!=(const uri& other) const { return !(this->operator==(other)); }
|
||||
|
||||
private:
|
||||
friend class uri_builder;
|
||||
|
||||
/// <summary>
|
||||
/// Creates a URI from the given URI components.
|
||||
/// </summary>
|
||||
/// <param name="components">A URI components object to create the URI instance.</param>
|
||||
_ASYNCRTIMP uri(const details::uri_components& components);
|
||||
|
||||
// Used by uri_builder
|
||||
static utility::string_t __cdecl encode_query_impl(const utf8string& raw);
|
||||
|
||||
utility::string_t m_uri;
|
||||
details::uri_components m_components;
|
||||
};
|
||||
|
||||
} // namespace web
|
||||
7482
deps/cpprestsdk/include/cpprest/details/SafeInt3.hpp
vendored
7482
deps/cpprestsdk/include/cpprest/details/SafeInt3.hpp
vendored
File diff suppressed because it is too large
Load Diff
@@ -1,131 +0,0 @@
|
||||
/***
|
||||
* Copyright (C) Microsoft. All rights reserved.
|
||||
* Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
|
||||
*
|
||||
* =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|
||||
*
|
||||
* Platform-dependent type definitions
|
||||
*
|
||||
* For the latest on this and related APIs, please see: https://github.com/Microsoft/cpprestsdk
|
||||
*
|
||||
* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||||
****/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "cpprest/details/cpprest_compat.h"
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
|
||||
#ifndef _WIN32
|
||||
#ifndef __STDC_LIMIT_MACROS
|
||||
#define __STDC_LIMIT_MACROS
|
||||
#endif
|
||||
#include <stdint.h>
|
||||
#else
|
||||
#include <cstdint>
|
||||
#endif
|
||||
|
||||
#include "cpprest/details/SafeInt3.hpp"
|
||||
|
||||
namespace utility
|
||||
{
|
||||
#ifdef _WIN32
|
||||
#define _UTF16_STRINGS
|
||||
#endif
|
||||
|
||||
// We should be using a 64-bit size type for most situations that do
|
||||
// not involve specifying the size of a memory allocation or buffer.
|
||||
typedef uint64_t size64_t;
|
||||
|
||||
#ifndef _WIN32
|
||||
typedef uint32_t HRESULT; // Needed for PPLX
|
||||
#endif
|
||||
|
||||
#ifdef _UTF16_STRINGS
|
||||
//
|
||||
// On Windows, all strings are wide
|
||||
//
|
||||
typedef wchar_t char_t;
|
||||
typedef std::wstring string_t;
|
||||
#define _XPLATSTR(x) L##x
|
||||
typedef std::wostringstream ostringstream_t;
|
||||
typedef std::wofstream ofstream_t;
|
||||
typedef std::wostream ostream_t;
|
||||
typedef std::wistream istream_t;
|
||||
typedef std::wifstream ifstream_t;
|
||||
typedef std::wistringstream istringstream_t;
|
||||
typedef std::wstringstream stringstream_t;
|
||||
#define ucout std::wcout
|
||||
#define ucin std::wcin
|
||||
#define ucerr std::wcerr
|
||||
#else
|
||||
//
|
||||
// On POSIX platforms, all strings are narrow
|
||||
//
|
||||
typedef char char_t;
|
||||
typedef std::string string_t;
|
||||
#define _XPLATSTR(x) x
|
||||
typedef std::ostringstream ostringstream_t;
|
||||
typedef std::ofstream ofstream_t;
|
||||
typedef std::ostream ostream_t;
|
||||
typedef std::istream istream_t;
|
||||
typedef std::ifstream ifstream_t;
|
||||
typedef std::istringstream istringstream_t;
|
||||
typedef std::stringstream stringstream_t;
|
||||
#define ucout std::cout
|
||||
#define ucin std::cin
|
||||
#define ucerr std::cerr
|
||||
#endif // endif _UTF16_STRINGS
|
||||
|
||||
#ifndef _TURN_OFF_PLATFORM_STRING
|
||||
// The 'U' macro can be used to create a string or character literal of the platform type, i.e. utility::char_t.
|
||||
// If you are using a library causing conflicts with 'U' macro, it can be turned off by defining the macro
|
||||
// '_TURN_OFF_PLATFORM_STRING' before including the C++ REST SDK header files, and e.g. use '_XPLATSTR' instead.
|
||||
#define U(x) _XPLATSTR(x)
|
||||
#endif // !_TURN_OFF_PLATFORM_STRING
|
||||
|
||||
} // namespace utility
|
||||
|
||||
typedef char utf8char;
|
||||
typedef std::string utf8string;
|
||||
typedef std::stringstream utf8stringstream;
|
||||
typedef std::ostringstream utf8ostringstream;
|
||||
typedef std::ostream utf8ostream;
|
||||
typedef std::istream utf8istream;
|
||||
typedef std::istringstream utf8istringstream;
|
||||
|
||||
#ifdef _UTF16_STRINGS
|
||||
typedef wchar_t utf16char;
|
||||
typedef std::wstring utf16string;
|
||||
typedef std::wstringstream utf16stringstream;
|
||||
typedef std::wostringstream utf16ostringstream;
|
||||
typedef std::wostream utf16ostream;
|
||||
typedef std::wistream utf16istream;
|
||||
typedef std::wistringstream utf16istringstream;
|
||||
#else
|
||||
typedef char16_t utf16char;
|
||||
typedef std::u16string utf16string;
|
||||
typedef std::basic_stringstream<utf16char> utf16stringstream;
|
||||
typedef std::basic_ostringstream<utf16char> utf16ostringstream;
|
||||
typedef std::basic_ostream<utf16char> utf16ostream;
|
||||
typedef std::basic_istream<utf16char> utf16istream;
|
||||
typedef std::basic_istringstream<utf16char> utf16istringstream;
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32)
|
||||
// Include on everything except Windows Desktop ARM, unless explicitly excluded.
|
||||
#if !defined(CPPREST_EXCLUDE_WEBSOCKETS)
|
||||
#if defined(WINAPI_FAMILY)
|
||||
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && defined(_M_ARM)
|
||||
#define CPPREST_EXCLUDE_WEBSOCKETS
|
||||
#endif
|
||||
#else
|
||||
#if defined(_M_ARM)
|
||||
#define CPPREST_EXCLUDE_WEBSOCKETS
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
@@ -1,91 +0,0 @@
|
||||
/***
|
||||
* Copyright (C) Microsoft. All rights reserved.
|
||||
* Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
|
||||
*
|
||||
* =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|
||||
*
|
||||
* Standard macros and definitions.
|
||||
* This header has minimal dependency on windows headers and is safe for use in the public API
|
||||
*
|
||||
* For the latest on this and related APIs, please see: https://github.com/Microsoft/cpprestsdk
|
||||
*
|
||||
* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||||
****/
|
||||
|
||||
#pragma once
|
||||
|
||||
#if defined(_WIN32)
|
||||
|
||||
#if _MSC_VER >= 1900
|
||||
#define CPPREST_NOEXCEPT noexcept
|
||||
#define CPPREST_CONSTEXPR constexpr
|
||||
#else
|
||||
#define CPPREST_NOEXCEPT
|
||||
#define CPPREST_CONSTEXPR const
|
||||
#endif // _MSC_VER >= 1900
|
||||
|
||||
#define CASABLANCA_UNREFERENCED_PARAMETER(x) (x)
|
||||
|
||||
#include <sal.h>
|
||||
|
||||
#else // ^^^ _WIN32 ^^^ // vvv !_WIN32 vvv
|
||||
|
||||
#define __declspec(x) __attribute__((x))
|
||||
#define dllimport
|
||||
#define novtable /* no novtable equivalent */
|
||||
#define __assume(x) \
|
||||
do \
|
||||
{ \
|
||||
if (!(x)) __builtin_unreachable(); \
|
||||
} while (false)
|
||||
#define CASABLANCA_UNREFERENCED_PARAMETER(x) (void)x
|
||||
#define CPPREST_NOEXCEPT noexcept
|
||||
#define CPPREST_CONSTEXPR constexpr
|
||||
|
||||
#include <assert.h>
|
||||
#define _ASSERTE(x) assert(x)
|
||||
|
||||
// No SAL on non Windows platforms
|
||||
#include "cpprest/details/nosal.h"
|
||||
|
||||
#if !defined(__cdecl)
|
||||
#if defined(cdecl)
|
||||
#define __cdecl __attribute__((cdecl))
|
||||
#else // ^^^ defined cdecl ^^^ // vvv !defined cdecl vvv
|
||||
#define __cdecl
|
||||
#endif // defined cdecl
|
||||
#endif // not defined __cdecl
|
||||
|
||||
#if defined(__ANDROID__)
|
||||
// This is needed to disable the use of __thread inside the boost library.
|
||||
// Android does not support thread local storage -- if boost is included
|
||||
// without this macro defined, it will create references to __tls_get_addr
|
||||
// which (while able to link) will not be available at runtime and prevent
|
||||
// the .so from loading.
|
||||
#if not defined BOOST_ASIO_DISABLE_THREAD_KEYWORD_EXTENSION
|
||||
#define BOOST_ASIO_DISABLE_THREAD_KEYWORD_EXTENSION
|
||||
#endif // not defined BOOST_ASIO_DISABLE_THREAD_KEYWORD_EXTENSION
|
||||
#endif // defined(__ANDROID__)
|
||||
|
||||
#ifdef __clang__
|
||||
#include <cstdio>
|
||||
#endif // __clang__
|
||||
#endif // _WIN32
|
||||
|
||||
#define _NO_ASYNCRTIMP
|
||||
|
||||
#ifdef _NO_ASYNCRTIMP
|
||||
#define _ASYNCRTIMP
|
||||
#else // ^^^ _NO_ASYNCRTIMP ^^^ // vvv !_NO_ASYNCRTIMP vvv
|
||||
#ifdef _ASYNCRT_EXPORT
|
||||
#define _ASYNCRTIMP __declspec(dllexport)
|
||||
#else // ^^^ _ASYNCRT_EXPORT ^^^ // vvv !_ASYNCRT_EXPORT vvv
|
||||
#define _ASYNCRTIMP __declspec(dllimport)
|
||||
#endif // _ASYNCRT_EXPORT
|
||||
#endif // _NO_ASYNCRTIMP
|
||||
|
||||
#ifdef CASABLANCA_DEPRECATION_NO_WARNINGS
|
||||
#define CASABLANCA_DEPRECATED(x)
|
||||
#else
|
||||
#define CASABLANCA_DEPRECATED(x) __declspec(deprecated(x))
|
||||
#endif // CASABLANCA_DEPRECATION_NO_WARNINGS
|
||||
@@ -1,223 +0,0 @@
|
||||
/***
|
||||
* Copyright (C) Microsoft. All rights reserved.
|
||||
* Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
|
||||
*
|
||||
* =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|
||||
*
|
||||
* utility classes used by the different web:: clients
|
||||
*
|
||||
* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||||
****/
|
||||
#pragma once
|
||||
|
||||
#include "cpprest/asyncrt_utils.h"
|
||||
#include "cpprest/uri.h"
|
||||
|
||||
namespace web
|
||||
{
|
||||
namespace details
|
||||
{
|
||||
class zero_memory_deleter
|
||||
{
|
||||
public:
|
||||
_ASYNCRTIMP void operator()(::utility::string_t* data) const;
|
||||
};
|
||||
typedef std::unique_ptr<::utility::string_t, zero_memory_deleter> plaintext_string;
|
||||
|
||||
#if defined(_WIN32) && !defined(CPPREST_TARGET_XP)
|
||||
#if defined(__cplusplus_winrt)
|
||||
class winrt_encryption
|
||||
{
|
||||
public:
|
||||
winrt_encryption() {}
|
||||
_ASYNCRTIMP winrt_encryption(const std::wstring& data);
|
||||
_ASYNCRTIMP plaintext_string decrypt() const;
|
||||
|
||||
private:
|
||||
::pplx::task<Windows::Storage::Streams::IBuffer ^> m_buffer;
|
||||
};
|
||||
#else
|
||||
class win32_encryption
|
||||
{
|
||||
public:
|
||||
win32_encryption() {}
|
||||
_ASYNCRTIMP win32_encryption(const std::wstring& data);
|
||||
_ASYNCRTIMP ~win32_encryption();
|
||||
_ASYNCRTIMP plaintext_string decrypt() const;
|
||||
|
||||
private:
|
||||
std::vector<char> m_buffer;
|
||||
size_t m_numCharacters;
|
||||
};
|
||||
#endif
|
||||
#endif
|
||||
} // namespace details
|
||||
|
||||
/// <summary>
|
||||
/// Represents a set of user credentials (user name and password) to be used
|
||||
/// for authentication.
|
||||
/// </summary>
|
||||
class credentials
|
||||
{
|
||||
public:
|
||||
/// <summary>
|
||||
/// Constructs an empty set of credentials without a user name or password.
|
||||
/// </summary>
|
||||
credentials() {}
|
||||
|
||||
/// <summary>
|
||||
/// Constructs credentials from given user name and password.
|
||||
/// </summary>
|
||||
/// <param name="username">User name as a string.</param>
|
||||
/// <param name="password">Password as a string.</param>
|
||||
credentials(utility::string_t username, const utility::string_t& password)
|
||||
: m_username(std::move(username)), m_password(password)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The user name associated with the credentials.
|
||||
/// </summary>
|
||||
/// <returns>A string containing the user name.</returns>
|
||||
const utility::string_t& username() const { return m_username; }
|
||||
|
||||
/// <summary>
|
||||
/// The password for the user name associated with the credentials.
|
||||
/// </summary>
|
||||
/// <returns>A string containing the password.</returns>
|
||||
CASABLANCA_DEPRECATED(
|
||||
"This API is deprecated for security reasons to avoid unnecessary password copies stored in plaintext.")
|
||||
utility::string_t password() const
|
||||
{
|
||||
#if defined(_WIN32) && !defined(CPPREST_TARGET_XP)
|
||||
return utility::string_t(*m_password.decrypt());
|
||||
#else
|
||||
return m_password;
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Checks if credentials have been set
|
||||
/// </summary>
|
||||
/// <returns><c>true</c> if user name and password is set, <c>false</c> otherwise.</returns>
|
||||
bool is_set() const { return !m_username.empty(); }
|
||||
|
||||
details::plaintext_string _internal_decrypt() const
|
||||
{
|
||||
// Encryption APIs not supported on XP
|
||||
#if defined(_WIN32) && !defined(CPPREST_TARGET_XP)
|
||||
return m_password.decrypt();
|
||||
#else
|
||||
return details::plaintext_string(new ::utility::string_t(m_password));
|
||||
#endif
|
||||
}
|
||||
|
||||
private:
|
||||
::utility::string_t m_username;
|
||||
|
||||
#if defined(_WIN32) && !defined(CPPREST_TARGET_XP)
|
||||
#if defined(__cplusplus_winrt)
|
||||
details::winrt_encryption m_password;
|
||||
#else
|
||||
details::win32_encryption m_password;
|
||||
#endif
|
||||
#else
|
||||
::utility::string_t m_password;
|
||||
#endif
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// web_proxy represents the concept of the web proxy, which can be auto-discovered,
|
||||
/// disabled, or specified explicitly by the user.
|
||||
/// </summary>
|
||||
class web_proxy
|
||||
{
|
||||
enum web_proxy_mode_internal
|
||||
{
|
||||
use_default_,
|
||||
use_auto_discovery_,
|
||||
disabled_,
|
||||
user_provided_
|
||||
};
|
||||
|
||||
public:
|
||||
enum web_proxy_mode
|
||||
{
|
||||
use_default = use_default_,
|
||||
use_auto_discovery = use_auto_discovery_,
|
||||
disabled = disabled_
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Constructs a proxy with the default settings.
|
||||
/// </summary>
|
||||
web_proxy() : m_address(_XPLATSTR("")), m_mode(use_default_) {}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a proxy with specified mode.
|
||||
/// </summary>
|
||||
/// <param name="mode">Mode to use.</param>
|
||||
web_proxy(web_proxy_mode mode) : m_address(_XPLATSTR("")), m_mode(static_cast<web_proxy_mode_internal>(mode)) {}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a proxy explicitly with provided address.
|
||||
/// </summary>
|
||||
/// <param name="address">Proxy URI to use.</param>
|
||||
web_proxy(uri address) : m_address(address), m_mode(user_provided_) {}
|
||||
|
||||
/// <summary>
|
||||
/// Gets this proxy's URI address. Returns an empty URI if not explicitly set by user.
|
||||
/// </summary>
|
||||
/// <returns>A reference to this proxy's URI.</returns>
|
||||
const uri& address() const { return m_address; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the credentials used for authentication with this proxy.
|
||||
/// </summary>
|
||||
/// <returns>Credentials to for this proxy.</returns>
|
||||
const web::credentials& credentials() const { return m_credentials; }
|
||||
|
||||
/// <summary>
|
||||
/// Sets the credentials to use for authentication with this proxy.
|
||||
/// </summary>
|
||||
/// <param name="cred">Credentials to use for this proxy.</param>
|
||||
void set_credentials(web::credentials cred)
|
||||
{
|
||||
if (m_mode == disabled_)
|
||||
{
|
||||
throw std::invalid_argument("Cannot attach credentials to a disabled proxy");
|
||||
}
|
||||
m_credentials = std::move(cred);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Checks if this proxy was constructed with default settings.
|
||||
/// </summary>
|
||||
/// <returns>True if default, false otherwise.</param>
|
||||
bool is_default() const { return m_mode == use_default_; }
|
||||
|
||||
/// <summary>
|
||||
/// Checks if using a proxy is disabled.
|
||||
/// </summary>
|
||||
/// <returns>True if disabled, false otherwise.</returns>
|
||||
bool is_disabled() const { return m_mode == disabled_; }
|
||||
|
||||
/// <summary>
|
||||
/// Checks if the auto discovery protocol, WPAD, is to be used.
|
||||
/// </summary>
|
||||
/// <returns>True if auto discovery enabled, false otherwise.</returns>
|
||||
bool is_auto_discovery() const { return m_mode == use_auto_discovery_; }
|
||||
|
||||
/// <summary>
|
||||
/// Checks if a proxy address is explicitly specified by the user.
|
||||
/// </summary>
|
||||
/// <returns>True if a proxy address was explicitly specified, false otherwise.</returns>
|
||||
bool is_specified() const { return m_mode == user_provided_; }
|
||||
|
||||
private:
|
||||
web::uri m_address;
|
||||
web_proxy_mode_internal m_mode;
|
||||
web::credentials m_credentials;
|
||||
};
|
||||
|
||||
} // namespace web
|
||||
1786
deps/cpprestsdk/include/cpprest/json.h
vendored
1786
deps/cpprestsdk/include/cpprest/json.h
vendored
File diff suppressed because it is too large
Load Diff
21
deps/cpprestsdk/include/cpprest/uri.h
vendored
21
deps/cpprestsdk/include/cpprest/uri.h
vendored
@@ -1,21 +0,0 @@
|
||||
/***
|
||||
* Copyright (C) Microsoft. All rights reserved.
|
||||
* Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
|
||||
*
|
||||
* =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|
||||
*
|
||||
* Protocol independent support for URIs.
|
||||
*
|
||||
* For the latest on this and related APIs, please see: https://github.com/Microsoft/cpprestsdk
|
||||
*
|
||||
* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||||
****/
|
||||
#pragma once
|
||||
|
||||
#ifndef CASA_URI_H
|
||||
#define CASA_URI_H
|
||||
|
||||
#include "cpprest/base_uri.h"
|
||||
#include "cpprest/uri_builder.h"
|
||||
|
||||
#endif
|
||||
295
deps/cpprestsdk/include/cpprest/uri_builder.h
vendored
295
deps/cpprestsdk/include/cpprest/uri_builder.h
vendored
@@ -1,295 +0,0 @@
|
||||
/***
|
||||
* Copyright (C) Microsoft. All rights reserved.
|
||||
* Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
|
||||
*
|
||||
* =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|
||||
*
|
||||
* Builder style class for creating URIs.
|
||||
*
|
||||
* For the latest on this and related APIs, please see: https://github.com/Microsoft/cpprestsdk
|
||||
*
|
||||
* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||||
****/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "cpprest/base_uri.h"
|
||||
#include <string>
|
||||
|
||||
namespace web
|
||||
{
|
||||
/// <summary>
|
||||
/// Builder for constructing URIs incrementally.
|
||||
/// </summary>
|
||||
class uri_builder
|
||||
{
|
||||
public:
|
||||
/// <summary>
|
||||
/// Creates a builder with an initially empty URI.
|
||||
/// </summary>
|
||||
uri_builder() = default;
|
||||
|
||||
/// <summary>
|
||||
/// Creates a builder with a existing URI object.
|
||||
/// </summary>
|
||||
/// <param name="uri_str">Encoded string containing the URI.</param>
|
||||
uri_builder(const uri& uri_str) : m_uri(uri_str.m_components) {}
|
||||
|
||||
/// <summary>
|
||||
/// Get the scheme component of the URI as an encoded string.
|
||||
/// </summary>
|
||||
/// <returns>The URI scheme as a string.</returns>
|
||||
const utility::string_t& scheme() const { return m_uri.m_scheme; }
|
||||
|
||||
/// <summary>
|
||||
/// Get the user information component of the URI as an encoded string.
|
||||
/// </summary>
|
||||
/// <returns>The URI user information as a string.</returns>
|
||||
const utility::string_t& user_info() const { return m_uri.m_user_info; }
|
||||
|
||||
/// <summary>
|
||||
/// Get the host component of the URI as an encoded string.
|
||||
/// </summary>
|
||||
/// <returns>The URI host as a string.</returns>
|
||||
const utility::string_t& host() const { return m_uri.m_host; }
|
||||
|
||||
/// <summary>
|
||||
/// Get the port component of the URI. Returns -1 if no port is specified.
|
||||
/// </summary>
|
||||
/// <returns>The URI port as an integer.</returns>
|
||||
int port() const { return m_uri.m_port; }
|
||||
|
||||
/// <summary>
|
||||
/// Get the path component of the URI as an encoded string.
|
||||
/// </summary>
|
||||
/// <returns>The URI path as a string.</returns>
|
||||
const utility::string_t& path() const { return m_uri.m_path; }
|
||||
|
||||
/// <summary>
|
||||
/// Get the query component of the URI as an encoded string.
|
||||
/// </summary>
|
||||
/// <returns>The URI query as a string.</returns>
|
||||
const utility::string_t& query() const { return m_uri.m_query; }
|
||||
|
||||
/// <summary>
|
||||
/// Get the fragment component of the URI as an encoded string.
|
||||
/// </summary>
|
||||
/// <returns>The URI fragment as a string.</returns>
|
||||
const utility::string_t& fragment() const { return m_uri.m_fragment; }
|
||||
|
||||
/// <summary>
|
||||
/// Set the scheme of the URI.
|
||||
/// </summary>
|
||||
/// <param name="scheme">Uri scheme.</param>
|
||||
/// <returns>A reference to this <c>uri_builder</c> to support chaining.</returns>
|
||||
uri_builder& set_scheme(const utility::string_t& scheme)
|
||||
{
|
||||
m_uri.m_scheme = scheme;
|
||||
return *this;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set the user info component of the URI.
|
||||
/// </summary>
|
||||
/// <param name="user_info">User info as a decoded string.</param>
|
||||
/// <param name="do_encoding">Specify whether to apply URI encoding to the given string.</param>
|
||||
/// <returns>A reference to this <c>uri_builder</c> to support chaining.</returns>
|
||||
uri_builder& set_user_info(const utility::string_t& user_info, bool do_encoding = false)
|
||||
{
|
||||
if (do_encoding)
|
||||
{
|
||||
m_uri.m_user_info = uri::encode_uri(user_info, uri::components::user_info);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_uri.m_user_info = user_info;
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set the host component of the URI.
|
||||
/// </summary>
|
||||
/// <param name="host">Host as a decoded string.</param>
|
||||
/// <param name="do_encoding">Specify whether to apply URI encoding to the given string.</param>
|
||||
/// <returns>A reference to this <c>uri_builder</c> to support chaining.</returns>
|
||||
uri_builder& set_host(const utility::string_t& host, bool do_encoding = false)
|
||||
{
|
||||
if (do_encoding)
|
||||
{
|
||||
m_uri.m_host = uri::encode_uri(host, uri::components::host);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_uri.m_host = host;
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set the port component of the URI.
|
||||
/// </summary>
|
||||
/// <param name="port">Port as an integer.</param>
|
||||
/// <returns>A reference to this <c>uri_builder</c> to support chaining.</returns>
|
||||
uri_builder& set_port(int port)
|
||||
{
|
||||
m_uri.m_port = port;
|
||||
return *this;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set the port component of the URI.
|
||||
/// </summary>
|
||||
/// <param name="port">Port as a string.</param>
|
||||
/// <returns>A reference to this <c>uri_builder</c> to support chaining.</returns>
|
||||
/// <remarks>When string can't be converted to an integer the port is left unchanged.</remarks>
|
||||
_ASYNCRTIMP uri_builder& set_port(const utility::string_t& port);
|
||||
|
||||
/// <summary>
|
||||
/// Set the path component of the URI.
|
||||
/// </summary>
|
||||
/// <param name="path">Path as a decoded string.</param>
|
||||
/// <param name="do_encoding">Specify whether to apply URI encoding to the given string.</param>
|
||||
/// <returns>A reference to this <c>uri_builder</c> to support chaining.</returns>
|
||||
uri_builder& set_path(const utility::string_t& path, bool do_encoding = false)
|
||||
{
|
||||
if (do_encoding)
|
||||
{
|
||||
m_uri.m_path = uri::encode_uri(path, uri::components::path);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_uri.m_path = path;
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set the query component of the URI.
|
||||
/// </summary>
|
||||
/// <param name="query">Query as a decoded string.</param>
|
||||
/// <param name="do_encoding">Specify whether apply URI encoding to the given string.</param>
|
||||
/// <returns>A reference to this <c>uri_builder</c> to support chaining.</returns>
|
||||
uri_builder& set_query(const utility::string_t& query, bool do_encoding = false)
|
||||
{
|
||||
if (do_encoding)
|
||||
{
|
||||
m_uri.m_query = uri::encode_uri(query, uri::components::query);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_uri.m_query = query;
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set the fragment component of the URI.
|
||||
/// </summary>
|
||||
/// <param name="fragment">Fragment as a decoded string.</param>
|
||||
/// <param name="do_encoding">Specify whether to apply URI encoding to the given string.</param>
|
||||
/// <returns>A reference to this <c>uri_builder</c> to support chaining.</returns>
|
||||
uri_builder& set_fragment(const utility::string_t& fragment, bool do_encoding = false)
|
||||
{
|
||||
if (do_encoding)
|
||||
{
|
||||
m_uri.m_fragment = uri::encode_uri(fragment, uri::components::fragment);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_uri.m_fragment = fragment;
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Clears all components of the underlying URI in this uri_builder.
|
||||
/// </summary>
|
||||
void clear() { m_uri = details::uri_components(); }
|
||||
|
||||
/// <summary>
|
||||
/// Appends another path to the path of this uri_builder.
|
||||
/// </summary>
|
||||
/// <param name="path">Path to append as a already encoded string.</param>
|
||||
/// <param name="do_encoding">Specify whether to apply URI encoding to the given string.</param>
|
||||
/// <returns>A reference to this uri_builder to support chaining.</returns>
|
||||
_ASYNCRTIMP uri_builder& append_path(const utility::string_t& path, bool do_encoding = false);
|
||||
|
||||
/// <summary>
|
||||
/// Appends the raw contents of the path argument to the path of this uri_builder with no separator de-duplication.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// The path argument is appended after adding a '/' separator without regards to the contents of path. If an empty
|
||||
/// string is provided, this function will immediately return without changes to the stored path value. For example:
|
||||
/// if the current contents are "/abc" and path="/xyz", the result will be "/abc//xyz".
|
||||
/// </remarks>
|
||||
/// <param name="path">Path to append as a already encoded string.</param>
|
||||
/// <param name="do_encoding">Specify whether to apply URI encoding to the given string.</param>
|
||||
/// <returns>A reference to this uri_builder to support chaining.</returns>
|
||||
_ASYNCRTIMP uri_builder& append_path_raw(const utility::string_t& path, bool do_encoding = false);
|
||||
|
||||
/// <summary>
|
||||
/// Appends another query to the query of this uri_builder.
|
||||
/// </summary>
|
||||
/// <param name="query">Query to append as a decoded string.</param>
|
||||
/// <param name="do_encoding">Specify whether to apply URI encoding to the given string.</param>
|
||||
/// <returns>A reference to this uri_builder to support chaining.</returns>
|
||||
_ASYNCRTIMP uri_builder& append_query(const utility::string_t& query, bool do_encoding = false);
|
||||
|
||||
/// <summary>
|
||||
/// Appends an relative uri (Path, Query and fragment) at the end of the current uri.
|
||||
/// </summary>
|
||||
/// <param name="relative_uri">The relative uri to append.</param>
|
||||
/// <returns>A reference to this uri_builder to support chaining.</returns>
|
||||
_ASYNCRTIMP uri_builder& append(const uri& relative_uri);
|
||||
|
||||
/// <summary>
|
||||
/// Appends another query to the query of this uri_builder, encoding it first. This overload is useful when building
|
||||
/// a query segment of the form "element=10", where the right hand side of the query is stored as a type other than
|
||||
/// a string, for instance, an integral type.
|
||||
/// </summary>
|
||||
/// <param name="name">The name portion of the query string</param>
|
||||
/// <param name="value">The value portion of the query string</param>
|
||||
/// <returns>A reference to this uri_builder to support chaining.</returns>
|
||||
template<typename T>
|
||||
uri_builder& append_query(const utility::string_t& name, const T& value, bool do_encoding = true)
|
||||
{
|
||||
if (do_encoding)
|
||||
append_query_encode_impl(name, utility::conversions::details::print_utf8string(value));
|
||||
else
|
||||
append_query_no_encode_impl(name, utility::conversions::details::print_string(value));
|
||||
return *this;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Combine and validate the URI components into a encoded string. An exception will be thrown if the URI is
|
||||
/// invalid.
|
||||
/// </summary>
|
||||
/// <returns>The created URI as a string.</returns>
|
||||
_ASYNCRTIMP utility::string_t to_string() const;
|
||||
|
||||
/// <summary>
|
||||
/// Combine and validate the URI components into a URI class instance. An exception will be thrown if the URI is
|
||||
/// invalid.
|
||||
/// </summary>
|
||||
/// <returns>The create URI as a URI class instance.</returns>
|
||||
_ASYNCRTIMP uri to_uri() const;
|
||||
|
||||
/// <summary>
|
||||
/// Validate the generated URI from all existing components of this uri_builder.
|
||||
/// </summary>
|
||||
/// <returns>Whether the URI is valid.</returns>
|
||||
_ASYNCRTIMP bool is_valid();
|
||||
|
||||
private:
|
||||
_ASYNCRTIMP void append_query_encode_impl(const utility::string_t& name, const utf8string& value);
|
||||
_ASYNCRTIMP void append_query_no_encode_impl(const utility::string_t& name, const utility::string_t& value);
|
||||
|
||||
details::uri_components m_uri;
|
||||
};
|
||||
} // namespace web
|
||||
10
deps/cpprestsdk/include/cpprest/version.h
vendored
10
deps/cpprestsdk/include/cpprest/version.h
vendored
@@ -1,10 +0,0 @@
|
||||
/***
|
||||
* Copyright (C) Microsoft. All rights reserved.
|
||||
* Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
|
||||
*
|
||||
*/
|
||||
#define CPPREST_VERSION_MINOR 10
|
||||
#define CPPREST_VERSION_MAJOR 2
|
||||
#define CPPREST_VERSION_REVISION 13
|
||||
|
||||
#define CPPREST_VERSION (CPPREST_VERSION_MAJOR * 100000 + CPPREST_VERSION_MINOR * 100 + CPPREST_VERSION_REVISION)
|
||||
34
deps/cpprestsdk/pch.h
vendored
34
deps/cpprestsdk/pch.h
vendored
@@ -1,34 +0,0 @@
|
||||
#include <winrt/base.h>
|
||||
#include <Windows.h>
|
||||
#include <dxgi1_3.h>
|
||||
#include <d3d11_2.h>
|
||||
#include <d2d1_3.h>
|
||||
#include <d2d1_3helper.h>
|
||||
#include <d2d1helper.h>
|
||||
#include <dwrite.h>
|
||||
#include <dcomp.h>
|
||||
#include <dwmapi.h>
|
||||
#include <Shobjidl.h>
|
||||
#include <Shlwapi.h>
|
||||
#include <string>
|
||||
#include <algorithm>
|
||||
#include <chrono>
|
||||
#include <mutex>
|
||||
#include <thread>
|
||||
#include <functional>
|
||||
#include <condition_variable>
|
||||
#include <stdexcept>
|
||||
#include <tuple>
|
||||
#include <unordered_set>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
// cpprestsdk headers
|
||||
#include "cpprest/details/basic_types.h"
|
||||
#include "cpprest/details/cpprest_compat.h"
|
||||
#include "cpprest/version.h"
|
||||
// json
|
||||
#include "cpprest/json.h"
|
||||
// utilities
|
||||
#include "cpprest/asyncrt_utils.h"
|
||||
#include "cpprest/details/web_utilities.h"
|
||||
475
deps/cpprestsdk/src/json/json.cpp
vendored
475
deps/cpprestsdk/src/json/json.cpp
vendored
@@ -1,475 +0,0 @@
|
||||
/***
|
||||
* Copyright (C) Microsoft. All rights reserved.
|
||||
* Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
|
||||
*
|
||||
* =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|
||||
*
|
||||
* HTTP Library: JSON parser and writer
|
||||
*
|
||||
* For the latest on this and related APIs, please see: https://github.com/Microsoft/cpprestsdk
|
||||
*
|
||||
* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||||
****/
|
||||
|
||||
#include "pch.h"
|
||||
|
||||
using namespace web;
|
||||
|
||||
bool json::details::g_keep_json_object_unsorted = false;
|
||||
void json::keep_object_element_order(bool keep_order) { json::details::g_keep_json_object_unsorted = keep_order; }
|
||||
|
||||
utility::ostream_t& web::json::operator<<(utility::ostream_t& os, const web::json::value& val)
|
||||
{
|
||||
val.serialize(os);
|
||||
return os;
|
||||
}
|
||||
|
||||
utility::istream_t& web::json::operator>>(utility::istream_t& is, json::value& val)
|
||||
{
|
||||
val = json::value::parse(is);
|
||||
return is;
|
||||
}
|
||||
|
||||
web::json::value::value()
|
||||
: m_value(utility::details::make_unique<web::json::details::_Null>())
|
||||
#ifdef ENABLE_JSON_VALUE_VISUALIZER
|
||||
, m_kind(value::Null)
|
||||
#endif
|
||||
{
|
||||
}
|
||||
|
||||
web::json::value::value(int32_t value)
|
||||
: m_value(utility::details::make_unique<web::json::details::_Number>(value))
|
||||
#ifdef ENABLE_JSON_VALUE_VISUALIZER
|
||||
, m_kind(value::Number)
|
||||
#endif
|
||||
{
|
||||
}
|
||||
|
||||
web::json::value::value(uint32_t value)
|
||||
: m_value(utility::details::make_unique<web::json::details::_Number>(value))
|
||||
#ifdef ENABLE_JSON_VALUE_VISUALIZER
|
||||
, m_kind(value::Number)
|
||||
#endif
|
||||
{
|
||||
}
|
||||
|
||||
web::json::value::value(int64_t value)
|
||||
: m_value(utility::details::make_unique<web::json::details::_Number>(value))
|
||||
#ifdef ENABLE_JSON_VALUE_VISUALIZER
|
||||
, m_kind(value::Number)
|
||||
#endif
|
||||
{
|
||||
}
|
||||
|
||||
web::json::value::value(uint64_t value)
|
||||
: m_value(utility::details::make_unique<web::json::details::_Number>(value))
|
||||
#ifdef ENABLE_JSON_VALUE_VISUALIZER
|
||||
, m_kind(value::Number)
|
||||
#endif
|
||||
{
|
||||
}
|
||||
|
||||
web::json::value::value(double value)
|
||||
: m_value(utility::details::make_unique<web::json::details::_Number>(value))
|
||||
#ifdef ENABLE_JSON_VALUE_VISUALIZER
|
||||
, m_kind(value::Number)
|
||||
#endif
|
||||
{
|
||||
}
|
||||
|
||||
web::json::value::value(bool value)
|
||||
: m_value(utility::details::make_unique<web::json::details::_Boolean>(value))
|
||||
#ifdef ENABLE_JSON_VALUE_VISUALIZER
|
||||
, m_kind(value::Boolean)
|
||||
#endif
|
||||
{
|
||||
}
|
||||
|
||||
web::json::value::value(utility::string_t value)
|
||||
: m_value(utility::details::make_unique<web::json::details::_String>(std::move(value)))
|
||||
#ifdef ENABLE_JSON_VALUE_VISUALIZER
|
||||
, m_kind(value::String)
|
||||
#endif
|
||||
{
|
||||
}
|
||||
|
||||
web::json::value::value(utility::string_t value, bool has_escape_chars)
|
||||
: m_value(utility::details::make_unique<web::json::details::_String>(std::move(value), has_escape_chars))
|
||||
#ifdef ENABLE_JSON_VALUE_VISUALIZER
|
||||
, m_kind(value::String)
|
||||
#endif
|
||||
{
|
||||
}
|
||||
|
||||
web::json::value::value(const utility::char_t* value)
|
||||
: m_value(utility::details::make_unique<web::json::details::_String>(value))
|
||||
#ifdef ENABLE_JSON_VALUE_VISUALIZER
|
||||
, m_kind(value::String)
|
||||
#endif
|
||||
{
|
||||
}
|
||||
|
||||
web::json::value::value(const utility::char_t* value, bool has_escape_chars)
|
||||
: m_value(utility::details::make_unique<web::json::details::_String>(utility::string_t(value), has_escape_chars))
|
||||
#ifdef ENABLE_JSON_VALUE_VISUALIZER
|
||||
, m_kind(value::String)
|
||||
#endif
|
||||
{
|
||||
}
|
||||
|
||||
web::json::value::value(const value& other)
|
||||
: m_value(other.m_value->_copy_value())
|
||||
#ifdef ENABLE_JSON_VALUE_VISUALIZER
|
||||
, m_kind(other.m_kind)
|
||||
#endif
|
||||
{
|
||||
}
|
||||
|
||||
web::json::value& web::json::value::operator=(const value& other)
|
||||
{
|
||||
if (this != &other)
|
||||
{
|
||||
m_value = std::unique_ptr<details::_Value>(other.m_value->_copy_value());
|
||||
#ifdef ENABLE_JSON_VALUE_VISUALIZER
|
||||
m_kind = other.m_kind;
|
||||
#endif
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
web::json::value::value(value&& other) CPPREST_NOEXCEPT : m_value(std::move(other.m_value))
|
||||
#ifdef ENABLE_JSON_VALUE_VISUALIZER
|
||||
,
|
||||
m_kind(other.m_kind)
|
||||
#endif
|
||||
{
|
||||
}
|
||||
|
||||
web::json::value& web::json::value::operator=(web::json::value&& other) CPPREST_NOEXCEPT
|
||||
{
|
||||
if (this != &other)
|
||||
{
|
||||
m_value.swap(other.m_value);
|
||||
#ifdef ENABLE_JSON_VALUE_VISUALIZER
|
||||
m_kind = other.m_kind;
|
||||
#endif
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
web::json::value web::json::value::null() { return web::json::value(); }
|
||||
|
||||
web::json::value web::json::value::number(double value) { return web::json::value(value); }
|
||||
|
||||
web::json::value web::json::value::number(int32_t value) { return web::json::value(value); }
|
||||
|
||||
web::json::value web::json::value::number(uint32_t value) { return web::json::value(value); }
|
||||
|
||||
web::json::value web::json::value::number(int64_t value) { return web::json::value(value); }
|
||||
|
||||
web::json::value web::json::value::number(uint64_t value) { return web::json::value(value); }
|
||||
|
||||
web::json::value web::json::value::boolean(bool value) { return web::json::value(value); }
|
||||
|
||||
web::json::value web::json::value::string(utility::string_t value)
|
||||
{
|
||||
std::unique_ptr<details::_Value> ptr = utility::details::make_unique<details::_String>(std::move(value));
|
||||
return web::json::value(std::move(ptr)
|
||||
#ifdef ENABLE_JSON_VALUE_VISUALIZER
|
||||
,
|
||||
value::String
|
||||
#endif
|
||||
);
|
||||
}
|
||||
|
||||
web::json::value web::json::value::string(utility::string_t value, bool has_escape_chars)
|
||||
{
|
||||
std::unique_ptr<details::_Value> ptr =
|
||||
utility::details::make_unique<details::_String>(std::move(value), has_escape_chars);
|
||||
return web::json::value(std::move(ptr)
|
||||
#ifdef ENABLE_JSON_VALUE_VISUALIZER
|
||||
,
|
||||
value::String
|
||||
#endif
|
||||
);
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
web::json::value web::json::value::string(const std::string& value)
|
||||
{
|
||||
std::unique_ptr<details::_Value> ptr =
|
||||
utility::details::make_unique<details::_String>(utility::conversions::to_utf16string(value));
|
||||
return web::json::value(std::move(ptr)
|
||||
#ifdef ENABLE_JSON_VALUE_VISUALIZER
|
||||
,
|
||||
value::String
|
||||
#endif
|
||||
);
|
||||
}
|
||||
#endif
|
||||
|
||||
web::json::value web::json::value::object(bool keep_order)
|
||||
{
|
||||
std::unique_ptr<details::_Value> ptr = utility::details::make_unique<details::_Object>(keep_order);
|
||||
return web::json::value(std::move(ptr)
|
||||
#ifdef ENABLE_JSON_VALUE_VISUALIZER
|
||||
,
|
||||
value::Object
|
||||
#endif
|
||||
);
|
||||
}
|
||||
|
||||
web::json::value web::json::value::object(std::vector<std::pair<::utility::string_t, value>> fields, bool keep_order)
|
||||
{
|
||||
std::unique_ptr<details::_Value> ptr =
|
||||
utility::details::make_unique<details::_Object>(std::move(fields), keep_order);
|
||||
return web::json::value(std::move(ptr)
|
||||
#ifdef ENABLE_JSON_VALUE_VISUALIZER
|
||||
,
|
||||
value::Object
|
||||
#endif
|
||||
);
|
||||
}
|
||||
|
||||
web::json::value web::json::value::array()
|
||||
{
|
||||
std::unique_ptr<details::_Value> ptr = utility::details::make_unique<details::_Array>();
|
||||
return web::json::value(std::move(ptr)
|
||||
#ifdef ENABLE_JSON_VALUE_VISUALIZER
|
||||
,
|
||||
value::Array
|
||||
#endif
|
||||
);
|
||||
}
|
||||
|
||||
web::json::value web::json::value::array(size_t size)
|
||||
{
|
||||
std::unique_ptr<details::_Value> ptr = utility::details::make_unique<details::_Array>(size);
|
||||
return web::json::value(std::move(ptr)
|
||||
#ifdef ENABLE_JSON_VALUE_VISUALIZER
|
||||
,
|
||||
value::Array
|
||||
#endif
|
||||
);
|
||||
}
|
||||
|
||||
web::json::value web::json::value::array(std::vector<value> elements)
|
||||
{
|
||||
std::unique_ptr<details::_Value> ptr = utility::details::make_unique<details::_Array>(std::move(elements));
|
||||
return web::json::value(std::move(ptr)
|
||||
#ifdef ENABLE_JSON_VALUE_VISUALIZER
|
||||
,
|
||||
value::Array
|
||||
#endif
|
||||
);
|
||||
}
|
||||
|
||||
const web::json::number& web::json::value::as_number() const { return m_value->as_number(); }
|
||||
|
||||
double web::json::value::as_double() const { return m_value->as_double(); }
|
||||
|
||||
int web::json::value::as_integer() const { return m_value->as_integer(); }
|
||||
|
||||
bool web::json::value::as_bool() const { return m_value->as_bool(); }
|
||||
|
||||
json::array& web::json::value::as_array() { return m_value->as_array(); }
|
||||
|
||||
const json::array& web::json::value::as_array() const { return m_value->as_array(); }
|
||||
|
||||
json::object& web::json::value::as_object() { return m_value->as_object(); }
|
||||
|
||||
const json::object& web::json::value::as_object() const { return m_value->as_object(); }
|
||||
|
||||
bool web::json::number::is_int32() const
|
||||
{
|
||||
switch (m_type)
|
||||
{
|
||||
case signed_type:
|
||||
return m_intval >= (std::numeric_limits<int32_t>::min)() && m_intval <= (std::numeric_limits<int32_t>::max)();
|
||||
case unsigned_type: return m_uintval <= (std::numeric_limits<int32_t>::max)();
|
||||
case double_type:
|
||||
default: return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool web::json::number::is_uint32() const
|
||||
{
|
||||
switch (m_type)
|
||||
{
|
||||
case signed_type: return m_intval >= 0 && m_intval <= (std::numeric_limits<uint32_t>::max)();
|
||||
case unsigned_type: return m_uintval <= (std::numeric_limits<uint32_t>::max)();
|
||||
case double_type:
|
||||
default: return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool web::json::number::is_int64() const
|
||||
{
|
||||
switch (m_type)
|
||||
{
|
||||
case signed_type: return true;
|
||||
case unsigned_type: return m_uintval <= static_cast<uint64_t>((std::numeric_limits<int64_t>::max)());
|
||||
case double_type:
|
||||
default: return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool web::json::details::_String::has_escape_chars(const _String& str)
|
||||
{
|
||||
return std::any_of(std::begin(str.m_string), std::end(str.m_string), [](utility::string_t::value_type const x) {
|
||||
if (x <= 31)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (x == '"')
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (x == '\\')
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
web::json::value::value_type json::value::type() const { return m_value->type(); }
|
||||
|
||||
bool json::value::is_integer() const
|
||||
{
|
||||
if (!is_number())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return m_value->is_integer();
|
||||
}
|
||||
|
||||
bool json::value::is_double() const
|
||||
{
|
||||
if (!is_number())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return m_value->is_double();
|
||||
}
|
||||
|
||||
json::value& web::json::details::_Object::index(const utility::string_t& key) { return m_object[key]; }
|
||||
|
||||
bool web::json::details::_Object::has_field(const utility::string_t& key) const
|
||||
{
|
||||
return m_object.find(key) != m_object.end();
|
||||
}
|
||||
|
||||
bool web::json::value::has_number_field(const utility::string_t& key) const
|
||||
{
|
||||
return has_field(key) && at(key).is_number();
|
||||
}
|
||||
|
||||
bool web::json::value::has_integer_field(const utility::string_t& key) const
|
||||
{
|
||||
return has_field(key) && at(key).is_integer();
|
||||
}
|
||||
|
||||
bool web::json::value::has_double_field(const utility::string_t& key) const
|
||||
{
|
||||
return has_field(key) && at(key).is_double();
|
||||
}
|
||||
|
||||
bool web::json::value::has_boolean_field(const utility::string_t& key) const
|
||||
{
|
||||
return has_field(key) && at(key).is_boolean();
|
||||
}
|
||||
|
||||
bool web::json::value::has_string_field(const utility::string_t& key) const
|
||||
{
|
||||
return has_field(key) && at(key).is_string();
|
||||
}
|
||||
|
||||
bool web::json::value::has_array_field(const utility::string_t& key) const
|
||||
{
|
||||
return has_field(key) && at(key).is_array();
|
||||
}
|
||||
|
||||
bool web::json::value::has_object_field(const utility::string_t& key) const
|
||||
{
|
||||
return has_field(key) && at(key).is_object();
|
||||
}
|
||||
|
||||
utility::string_t json::value::to_string() const
|
||||
{
|
||||
#ifndef _WIN32
|
||||
utility::details::scoped_c_thread_locale locale;
|
||||
#endif
|
||||
return m_value->to_string();
|
||||
}
|
||||
|
||||
bool json::value::operator==(const json::value& other) const
|
||||
{
|
||||
if (this->m_value.get() == other.m_value.get()) return true;
|
||||
if (this->type() != other.type()) return false;
|
||||
|
||||
switch (this->type())
|
||||
{
|
||||
case Null: return true;
|
||||
case Number: return this->as_number() == other.as_number();
|
||||
case Boolean: return this->as_bool() == other.as_bool();
|
||||
case String: return this->as_string() == other.as_string();
|
||||
case Object:
|
||||
return static_cast<const json::details::_Object*>(this->m_value.get())
|
||||
->is_equal(static_cast<const json::details::_Object*>(other.m_value.get()));
|
||||
case Array:
|
||||
return static_cast<const json::details::_Array*>(this->m_value.get())
|
||||
->is_equal(static_cast<const json::details::_Array*>(other.m_value.get()));
|
||||
}
|
||||
__assume(0);
|
||||
}
|
||||
|
||||
void web::json::value::erase(size_t index) { return this->as_array().erase(index); }
|
||||
|
||||
void web::json::value::erase(const utility::string_t& key) { return this->as_object().erase(key); }
|
||||
|
||||
// at() overloads
|
||||
web::json::value& web::json::value::at(size_t index) { return this->as_array().at(index); }
|
||||
|
||||
const web::json::value& web::json::value::at(size_t index) const { return this->as_array().at(index); }
|
||||
|
||||
web::json::value& web::json::value::at(const utility::string_t& key) { return this->as_object().at(key); }
|
||||
|
||||
const web::json::value& web::json::value::at(const utility::string_t& key) const { return this->as_object().at(key); }
|
||||
|
||||
web::json::value& web::json::value::operator[](const utility::string_t& key)
|
||||
{
|
||||
if (this->is_null())
|
||||
{
|
||||
m_value.reset(new web::json::details::_Object(details::g_keep_json_object_unsorted));
|
||||
#ifdef ENABLE_JSON_VALUE_VISUALIZER
|
||||
m_kind = value::Object;
|
||||
#endif
|
||||
}
|
||||
return m_value->index(key);
|
||||
}
|
||||
|
||||
web::json::value& web::json::value::operator[](size_t index)
|
||||
{
|
||||
if (this->is_null())
|
||||
{
|
||||
m_value.reset(new web::json::details::_Array());
|
||||
#ifdef ENABLE_JSON_VALUE_VISUALIZER
|
||||
m_kind = value::Array;
|
||||
#endif
|
||||
}
|
||||
return m_value->index(index);
|
||||
}
|
||||
|
||||
// Remove once VS 2013 is no longer supported.
|
||||
#if defined(_WIN32) && _MSC_VER < 1900
|
||||
static web::json::details::json_error_category_impl instance;
|
||||
#endif
|
||||
const web::json::details::json_error_category_impl& web::json::details::json_error_category()
|
||||
{
|
||||
#if !defined(_WIN32) || _MSC_VER >= 1900
|
||||
static web::json::details::json_error_category_impl instance;
|
||||
#endif
|
||||
return instance;
|
||||
}
|
||||
1279
deps/cpprestsdk/src/json/json_parsing.cpp
vendored
1279
deps/cpprestsdk/src/json/json_parsing.cpp
vendored
File diff suppressed because it is too large
Load Diff
254
deps/cpprestsdk/src/json/json_serialization.cpp
vendored
254
deps/cpprestsdk/src/json/json_serialization.cpp
vendored
@@ -1,254 +0,0 @@
|
||||
/***
|
||||
* Copyright (C) Microsoft. All rights reserved.
|
||||
* Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
|
||||
*
|
||||
* =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|
||||
*
|
||||
* HTTP Library: JSON parser and writer
|
||||
*
|
||||
* For the latest on this and related APIs, please see: https://github.com/Microsoft/cpprestsdk
|
||||
*
|
||||
* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||||
****/
|
||||
|
||||
#include "pch.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#ifndef _WIN32
|
||||
#define __STDC_FORMAT_MACROS
|
||||
#include <inttypes.h>
|
||||
#endif
|
||||
|
||||
using namespace web;
|
||||
using namespace web::json;
|
||||
using namespace utility;
|
||||
using namespace utility::conversions;
|
||||
|
||||
//
|
||||
// JSON Serialization
|
||||
//
|
||||
|
||||
#ifdef _WIN32
|
||||
void web::json::value::serialize(std::ostream& stream) const
|
||||
{
|
||||
// This has better performance than writing directly to stream.
|
||||
std::string str;
|
||||
m_value->serialize_impl(str);
|
||||
stream << str;
|
||||
}
|
||||
void web::json::value::format(std::basic_string<wchar_t>& string) const { m_value->format(string); }
|
||||
#endif
|
||||
|
||||
void web::json::value::serialize(utility::ostream_t& stream) const
|
||||
{
|
||||
#ifndef _WIN32
|
||||
utility::details::scoped_c_thread_locale locale;
|
||||
#endif
|
||||
|
||||
// This has better performance than writing directly to stream.
|
||||
utility::string_t str;
|
||||
m_value->serialize_impl(str);
|
||||
stream << str;
|
||||
}
|
||||
|
||||
void web::json::value::format(std::basic_string<char>& string) const { m_value->format(string); }
|
||||
|
||||
template<typename CharType>
|
||||
void web::json::details::append_escape_string(std::basic_string<CharType>& str,
|
||||
const std::basic_string<CharType>& escaped)
|
||||
{
|
||||
for (const auto& ch : escaped)
|
||||
{
|
||||
switch (ch)
|
||||
{
|
||||
case '\"':
|
||||
str += '\\';
|
||||
str += '\"';
|
||||
break;
|
||||
case '\\':
|
||||
str += '\\';
|
||||
str += '\\';
|
||||
break;
|
||||
case '\b':
|
||||
str += '\\';
|
||||
str += 'b';
|
||||
break;
|
||||
case '\f':
|
||||
str += '\\';
|
||||
str += 'f';
|
||||
break;
|
||||
case '\r':
|
||||
str += '\\';
|
||||
str += 'r';
|
||||
break;
|
||||
case '\n':
|
||||
str += '\\';
|
||||
str += 'n';
|
||||
break;
|
||||
case '\t':
|
||||
str += '\\';
|
||||
str += 't';
|
||||
break;
|
||||
default:
|
||||
|
||||
// If a control character then must unicode escaped.
|
||||
if (ch >= 0 && ch <= 0x1F)
|
||||
{
|
||||
static const std::array<CharType, 16> intToHex = {
|
||||
{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}};
|
||||
str += '\\';
|
||||
str += 'u';
|
||||
str += '0';
|
||||
str += '0';
|
||||
str += intToHex[(ch & 0xF0) >> 4];
|
||||
str += intToHex[ch & 0x0F];
|
||||
}
|
||||
else
|
||||
{
|
||||
str += ch;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void web::json::details::format_string(const utility::string_t& key, utility::string_t& str)
|
||||
{
|
||||
str.push_back('"');
|
||||
append_escape_string(str, key);
|
||||
str.push_back('"');
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
void web::json::details::format_string(const utility::string_t& key, std::string& str)
|
||||
{
|
||||
str.push_back('"');
|
||||
append_escape_string(str, utility::conversions::to_utf8string(key));
|
||||
str.push_back('"');
|
||||
}
|
||||
#endif
|
||||
|
||||
void web::json::details::_String::format(std::basic_string<char>& str) const
|
||||
{
|
||||
str.push_back('"');
|
||||
|
||||
if (m_has_escape_char)
|
||||
{
|
||||
append_escape_string(str, utility::conversions::to_utf8string(m_string));
|
||||
}
|
||||
else
|
||||
{
|
||||
str.append(utility::conversions::to_utf8string(m_string));
|
||||
}
|
||||
|
||||
str.push_back('"');
|
||||
}
|
||||
|
||||
void web::json::details::_Number::format(std::basic_string<char>& stream) const
|
||||
{
|
||||
if (m_number.m_type != number::type::double_type)
|
||||
{
|
||||
// #digits + 1 to avoid loss + 1 for the sign + 1 for null terminator.
|
||||
const size_t tempSize = std::numeric_limits<uint64_t>::digits10 + 3;
|
||||
char tempBuffer[tempSize];
|
||||
|
||||
#ifdef _WIN32
|
||||
// This can be improved performance-wise if we implement our own routine
|
||||
if (m_number.m_type == number::type::signed_type)
|
||||
_i64toa_s(m_number.m_intval, tempBuffer, tempSize, 10);
|
||||
else
|
||||
_ui64toa_s(m_number.m_uintval, tempBuffer, tempSize, 10);
|
||||
|
||||
const auto numChars = strnlen_s(tempBuffer, tempSize);
|
||||
#else
|
||||
int numChars;
|
||||
if (m_number.m_type == number::type::signed_type)
|
||||
numChars = snprintf(tempBuffer, tempSize, "%" PRId64, m_number.m_intval);
|
||||
else
|
||||
numChars = snprintf(tempBuffer, tempSize, "%" PRIu64, m_number.m_uintval);
|
||||
#endif
|
||||
stream.append(tempBuffer, numChars);
|
||||
}
|
||||
else
|
||||
{
|
||||
// #digits + 2 to avoid loss + 1 for the sign + 1 for decimal point + 5 for exponent (e+xxx) + 1 for null
|
||||
// terminator
|
||||
const size_t tempSize = std::numeric_limits<double>::digits10 + 10;
|
||||
char tempBuffer[tempSize];
|
||||
#ifdef _WIN32
|
||||
const auto numChars = _sprintf_s_l(tempBuffer,
|
||||
tempSize,
|
||||
"%.*g",
|
||||
utility::details::scoped_c_thread_locale::c_locale(),
|
||||
std::numeric_limits<double>::digits10 + 2,
|
||||
m_number.m_value);
|
||||
#else
|
||||
const auto numChars =
|
||||
snprintf(tempBuffer, tempSize, "%.*g", std::numeric_limits<double>::digits10 + 2, m_number.m_value);
|
||||
#endif
|
||||
stream.append(tempBuffer, numChars);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
|
||||
void web::json::details::_String::format(std::basic_string<wchar_t>& str) const
|
||||
{
|
||||
str.push_back(L'"');
|
||||
|
||||
if (m_has_escape_char)
|
||||
{
|
||||
append_escape_string(str, m_string);
|
||||
}
|
||||
else
|
||||
{
|
||||
str.append(m_string);
|
||||
}
|
||||
|
||||
str.push_back(L'"');
|
||||
}
|
||||
|
||||
void web::json::details::_Number::format(std::basic_string<wchar_t>& stream) const
|
||||
{
|
||||
if (m_number.m_type != number::type::double_type)
|
||||
{
|
||||
// #digits + 1 to avoid loss + 1 for the sign + 1 for null terminator.
|
||||
const size_t tempSize = std::numeric_limits<uint64_t>::digits10 + 3;
|
||||
wchar_t tempBuffer[tempSize];
|
||||
|
||||
if (m_number.m_type == number::type::signed_type)
|
||||
_i64tow_s(m_number.m_intval, tempBuffer, tempSize, 10);
|
||||
else
|
||||
_ui64tow_s(m_number.m_uintval, tempBuffer, tempSize, 10);
|
||||
|
||||
stream.append(tempBuffer, wcsnlen_s(tempBuffer, tempSize));
|
||||
}
|
||||
else
|
||||
{
|
||||
// #digits + 2 to avoid loss + 1 for the sign + 1 for decimal point + 5 for exponent (e+xxx) + 1 for null
|
||||
// terminator
|
||||
const size_t tempSize = std::numeric_limits<double>::digits10 + 10;
|
||||
wchar_t tempBuffer[tempSize];
|
||||
const int numChars = _swprintf_s_l(tempBuffer,
|
||||
tempSize,
|
||||
L"%.*g",
|
||||
utility::details::scoped_c_thread_locale::c_locale(),
|
||||
std::numeric_limits<double>::digits10 + 2,
|
||||
m_number.m_value);
|
||||
stream.append(tempBuffer, numChars);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
const utility::string_t& web::json::details::_String::as_string() const { return m_string; }
|
||||
|
||||
const utility::string_t& web::json::value::as_string() const { return m_value->as_string(); }
|
||||
|
||||
utility::string_t json::value::serialize() const
|
||||
{
|
||||
#ifndef _WIN32
|
||||
utility::details::scoped_c_thread_locale locale;
|
||||
#endif
|
||||
return m_value->to_string();
|
||||
}
|
||||
1490
deps/cpprestsdk/src/utilities/asyncrt_utils.cpp
vendored
1490
deps/cpprestsdk/src/utilities/asyncrt_utils.cpp
vendored
File diff suppressed because it is too large
Load Diff
260
deps/cpprestsdk/src/utilities/base64.cpp
vendored
260
deps/cpprestsdk/src/utilities/base64.cpp
vendored
@@ -1,260 +0,0 @@
|
||||
/***
|
||||
* Copyright (C) Microsoft. All rights reserved.
|
||||
* Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
|
||||
*
|
||||
* =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|
||||
*
|
||||
* For the latest on this and related APIs, please see: https://github.com/Microsoft/cpprestsdk
|
||||
*
|
||||
* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||||
****/
|
||||
#include "pch.h"
|
||||
|
||||
using namespace web;
|
||||
using namespace utility;
|
||||
|
||||
std::vector<unsigned char> _from_base64(const utility::string_t& str);
|
||||
utility::string_t _to_base64(const unsigned char* ptr, size_t size);
|
||||
|
||||
std::vector<unsigned char> __cdecl conversions::from_base64(const utility::string_t& str) { return _from_base64(str); }
|
||||
|
||||
utility::string_t __cdecl conversions::to_base64(const std::vector<unsigned char>& input)
|
||||
{
|
||||
if (input.size() == 0)
|
||||
{
|
||||
// return empty string
|
||||
return utility::string_t();
|
||||
}
|
||||
|
||||
return _to_base64(&input[0], input.size());
|
||||
}
|
||||
|
||||
utility::string_t __cdecl conversions::to_base64(uint64_t input)
|
||||
{
|
||||
return _to_base64(reinterpret_cast<const unsigned char*>(&input), sizeof(input));
|
||||
}
|
||||
|
||||
static const char* _base64_enctbl = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||
const std::array<unsigned char, 128> _base64_dectbl = {
|
||||
{255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
||||
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 62,
|
||||
255, 255, 255, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 255, 255, 255, 254, 255, 255, 255, 0,
|
||||
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
|
||||
23, 24, 25, 255, 255, 255, 255, 255, 255, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
|
||||
39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 255, 255, 255, 255, 255}};
|
||||
|
||||
struct _triple_byte
|
||||
{
|
||||
unsigned char _1_1 : 2;
|
||||
unsigned char _0 : 6;
|
||||
unsigned char _2_1 : 4;
|
||||
unsigned char _1_2 : 4;
|
||||
unsigned char _3 : 6;
|
||||
unsigned char _2_2 : 2;
|
||||
};
|
||||
|
||||
struct _double_byte
|
||||
{
|
||||
unsigned char _1_1 : 2;
|
||||
unsigned char _0 : 6;
|
||||
unsigned char _2_1 : 4;
|
||||
unsigned char _1_2 : 4;
|
||||
};
|
||||
|
||||
struct _single_byte
|
||||
{
|
||||
unsigned char _1_1 : 2;
|
||||
unsigned char _0 : 6;
|
||||
};
|
||||
|
||||
//
|
||||
// A note on the implementation of BASE64 encoding and decoding:
|
||||
//
|
||||
// This is a fairly basic and naive implementation; there is probably a lot of room for
|
||||
// performance improvement, as well as for adding options such as support for URI-safe base64,
|
||||
// ignoring CRLF, relaxed validation rules, etc. The decoder is currently pretty strict.
|
||||
//
|
||||
|
||||
#ifdef __GNUC__
|
||||
// gcc is concerned about the bitfield uses in the code, something we simply need to ignore.
|
||||
#pragma GCC diagnostic ignored "-Wconversion"
|
||||
#endif
|
||||
std::vector<unsigned char> _from_base64(const utility::string_t& input)
|
||||
{
|
||||
std::vector<unsigned char> result;
|
||||
|
||||
if (input.empty()) return result;
|
||||
|
||||
size_t padding = 0;
|
||||
|
||||
// Validation
|
||||
{
|
||||
auto size = input.size();
|
||||
|
||||
if ((size % 4) != 0)
|
||||
{
|
||||
throw std::runtime_error("length of base64 string is not an even multiple of 4");
|
||||
}
|
||||
|
||||
for (auto iter = input.begin(); iter != input.end(); ++iter, --size)
|
||||
{
|
||||
const size_t ch_sz = static_cast<size_t>(*iter);
|
||||
if (ch_sz >= _base64_dectbl.size() || _base64_dectbl[ch_sz] == 255)
|
||||
{
|
||||
throw std::runtime_error("invalid character found in base64 string");
|
||||
}
|
||||
if (_base64_dectbl[ch_sz] == 254)
|
||||
{
|
||||
padding++;
|
||||
// padding only at the end
|
||||
if (size > 2)
|
||||
{
|
||||
throw std::runtime_error("invalid padding character found in base64 string");
|
||||
}
|
||||
if (size == 2)
|
||||
{
|
||||
const size_t ch2_sz = static_cast<size_t>(*(iter + 1));
|
||||
if (ch2_sz >= _base64_dectbl.size() || _base64_dectbl[ch2_sz] != 254)
|
||||
{
|
||||
throw std::runtime_error("invalid padding character found in base64 string");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
auto size = input.size();
|
||||
const char_t* ptr = &input[0];
|
||||
|
||||
auto outsz = (size / 4) * 3;
|
||||
outsz -= padding;
|
||||
|
||||
result.resize(outsz);
|
||||
|
||||
size_t idx = 0;
|
||||
for (; size > 4; ++idx)
|
||||
{
|
||||
unsigned char target[3];
|
||||
memset(target, 0, sizeof(target));
|
||||
_triple_byte* record = reinterpret_cast<_triple_byte*>(target);
|
||||
|
||||
unsigned char val0 = _base64_dectbl[ptr[0]];
|
||||
unsigned char val1 = _base64_dectbl[ptr[1]];
|
||||
unsigned char val2 = _base64_dectbl[ptr[2]];
|
||||
unsigned char val3 = _base64_dectbl[ptr[3]];
|
||||
|
||||
record->_0 = val0;
|
||||
record->_1_1 = val1 >> 4;
|
||||
result[idx] = target[0];
|
||||
|
||||
record->_1_2 = val1 & 0xF;
|
||||
record->_2_1 = val2 >> 2;
|
||||
result[++idx] = target[1];
|
||||
|
||||
record->_2_2 = val2 & 0x3;
|
||||
record->_3 = val3 & 0x3F;
|
||||
result[++idx] = target[2];
|
||||
|
||||
ptr += 4;
|
||||
size -= 4;
|
||||
}
|
||||
|
||||
// Handle the last four bytes separately, to avoid having the conditional statements
|
||||
// in all the iterations (a performance issue).
|
||||
|
||||
{
|
||||
unsigned char target[3];
|
||||
memset(target, 0, sizeof(target));
|
||||
_triple_byte* record = reinterpret_cast<_triple_byte*>(target);
|
||||
|
||||
unsigned char val0 = _base64_dectbl[ptr[0]];
|
||||
unsigned char val1 = _base64_dectbl[ptr[1]];
|
||||
unsigned char val2 = _base64_dectbl[ptr[2]];
|
||||
unsigned char val3 = _base64_dectbl[ptr[3]];
|
||||
|
||||
record->_0 = val0;
|
||||
record->_1_1 = val1 >> 4;
|
||||
result[idx] = target[0];
|
||||
|
||||
record->_1_2 = val1 & 0xF;
|
||||
if (val2 != 254)
|
||||
{
|
||||
record->_2_1 = val2 >> 2;
|
||||
result[++idx] = target[1];
|
||||
}
|
||||
else
|
||||
{
|
||||
// There shouldn't be any information (ones) in the unused bits,
|
||||
if (record->_1_2 != 0)
|
||||
{
|
||||
throw std::runtime_error("Invalid end of base64 string");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
record->_2_2 = val2 & 0x3;
|
||||
if (val3 != 254)
|
||||
{
|
||||
record->_3 = val3 & 0x3F;
|
||||
result[++idx] = target[2];
|
||||
}
|
||||
else
|
||||
{
|
||||
// There shouldn't be any information (ones) in the unused bits.
|
||||
if (record->_2_2 != 0)
|
||||
{
|
||||
throw std::runtime_error("Invalid end of base64 string");
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
utility::string_t _to_base64(const unsigned char* ptr, size_t size)
|
||||
{
|
||||
utility::string_t result;
|
||||
|
||||
for (; size >= 3;)
|
||||
{
|
||||
const _triple_byte* record = reinterpret_cast<const _triple_byte*>(ptr);
|
||||
unsigned char idx0 = record->_0;
|
||||
unsigned char idx1 = (record->_1_1 << 4) | record->_1_2;
|
||||
unsigned char idx2 = (record->_2_1 << 2) | record->_2_2;
|
||||
unsigned char idx3 = record->_3;
|
||||
result.push_back(char_t(_base64_enctbl[idx0]));
|
||||
result.push_back(char_t(_base64_enctbl[idx1]));
|
||||
result.push_back(char_t(_base64_enctbl[idx2]));
|
||||
result.push_back(char_t(_base64_enctbl[idx3]));
|
||||
size -= 3;
|
||||
ptr += 3;
|
||||
}
|
||||
switch (size)
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
const _single_byte* record = reinterpret_cast<const _single_byte*>(ptr);
|
||||
unsigned char idx0 = record->_0;
|
||||
unsigned char idx1 = (record->_1_1 << 4);
|
||||
result.push_back(char_t(_base64_enctbl[idx0]));
|
||||
result.push_back(char_t(_base64_enctbl[idx1]));
|
||||
result.push_back('=');
|
||||
result.push_back('=');
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
const _double_byte* record = reinterpret_cast<const _double_byte*>(ptr);
|
||||
unsigned char idx0 = record->_0;
|
||||
unsigned char idx1 = (record->_1_1 << 4) | record->_1_2;
|
||||
unsigned char idx2 = (record->_2_1 << 2);
|
||||
result.push_back(char_t(_base64_enctbl[idx0]));
|
||||
result.push_back(char_t(_base64_enctbl[idx1]));
|
||||
result.push_back(char_t(_base64_enctbl[idx2]));
|
||||
result.push_back('=');
|
||||
break;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
157
deps/cpprestsdk/src/utilities/web_utilities.cpp
vendored
157
deps/cpprestsdk/src/utilities/web_utilities.cpp
vendored
@@ -1,157 +0,0 @@
|
||||
/***
|
||||
* Copyright (C) Microsoft. All rights reserved.
|
||||
* Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
|
||||
*
|
||||
* =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|
||||
*
|
||||
* Credential and proxy utilities.
|
||||
*
|
||||
* For the latest on this and related APIs, please see: https://github.com/Microsoft/cpprestsdk
|
||||
*
|
||||
* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
||||
****/
|
||||
|
||||
#include "pch.h"
|
||||
|
||||
#include <assert.h>
|
||||
|
||||
#if defined(_WIN32) && !defined(__cplusplus_winrt)
|
||||
#include <Wincrypt.h>
|
||||
#endif
|
||||
|
||||
#if defined(__cplusplus_winrt)
|
||||
#include <robuffer.h>
|
||||
#endif
|
||||
|
||||
namespace web
|
||||
{
|
||||
namespace details
|
||||
{
|
||||
#if defined(_WIN32) && !defined(CPPREST_TARGET_XP)
|
||||
#if defined(__cplusplus_winrt)
|
||||
|
||||
// Helper function to zero out memory of an IBuffer.
|
||||
void winrt_secure_zero_buffer(Windows::Storage::Streams::IBuffer ^ buffer)
|
||||
{
|
||||
Microsoft::WRL::ComPtr<IInspectable> bufferInspectable(reinterpret_cast<IInspectable*>(buffer));
|
||||
Microsoft::WRL::ComPtr<Windows::Storage::Streams::IBufferByteAccess> bufferByteAccess;
|
||||
bufferInspectable.As(&bufferByteAccess);
|
||||
|
||||
// This shouldn't happen but if can't get access to the raw bytes for some reason
|
||||
// then we can't zero out.
|
||||
byte* rawBytes;
|
||||
if (bufferByteAccess->Buffer(&rawBytes) == S_OK)
|
||||
{
|
||||
SecureZeroMemory(rawBytes, buffer->Length);
|
||||
}
|
||||
}
|
||||
|
||||
winrt_encryption::winrt_encryption(const std::wstring& data)
|
||||
{
|
||||
auto provider = ref new Windows::Security::Cryptography::DataProtection::DataProtectionProvider(
|
||||
ref new Platform::String(L"Local=user"));
|
||||
|
||||
// Create buffer containing plain text password.
|
||||
Platform::ArrayReference<unsigned char> arrayref(
|
||||
reinterpret_cast<unsigned char*>(const_cast<std::wstring::value_type*>(data.c_str())),
|
||||
static_cast<unsigned int>(data.size()) * sizeof(std::wstring::value_type));
|
||||
Windows::Storage::Streams::IBuffer ^ plaintext =
|
||||
Windows::Security::Cryptography::CryptographicBuffer::CreateFromByteArray(arrayref);
|
||||
m_buffer = pplx::create_task(provider->ProtectAsync(plaintext));
|
||||
m_buffer.then(
|
||||
[plaintext](pplx::task<Windows::Storage::Streams::IBuffer ^>) { winrt_secure_zero_buffer(plaintext); });
|
||||
}
|
||||
|
||||
plaintext_string winrt_encryption::decrypt() const
|
||||
{
|
||||
// To fully guarantee asynchrony would require significant impact on existing code. This code path
|
||||
// is never run on a user's thread and is only done once when setting up a connection.
|
||||
auto encrypted = m_buffer.get();
|
||||
auto provider = ref new Windows::Security::Cryptography::DataProtection::DataProtectionProvider();
|
||||
auto plaintext = pplx::create_task(provider->UnprotectAsync(encrypted)).get();
|
||||
|
||||
// Get access to raw bytes in plain text buffer.
|
||||
Microsoft::WRL::ComPtr<IInspectable> bufferInspectable(reinterpret_cast<IInspectable*>(plaintext));
|
||||
Microsoft::WRL::ComPtr<Windows::Storage::Streams::IBufferByteAccess> bufferByteAccess;
|
||||
bufferInspectable.As(&bufferByteAccess);
|
||||
byte* rawPlaintext;
|
||||
const auto& result = bufferByteAccess->Buffer(&rawPlaintext);
|
||||
if (result != S_OK)
|
||||
{
|
||||
throw ::utility::details::create_system_error(result);
|
||||
}
|
||||
|
||||
// Construct string and zero out memory from plain text buffer.
|
||||
auto data = plaintext_string(
|
||||
new std::wstring(reinterpret_cast<const std::wstring::value_type*>(rawPlaintext), plaintext->Length / 2));
|
||||
SecureZeroMemory(rawPlaintext, plaintext->Length);
|
||||
return std::move(data);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
win32_encryption::win32_encryption(const std::wstring& data) : m_numCharacters(data.size())
|
||||
{
|
||||
// Early return because CryptProtectMemory crashes with empty string
|
||||
if (m_numCharacters == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (data.size() > (std::numeric_limits<DWORD>::max)() / sizeof(wchar_t))
|
||||
{
|
||||
throw std::length_error("Encryption string too long");
|
||||
}
|
||||
|
||||
const auto dataSizeDword = static_cast<DWORD>(data.size() * sizeof(wchar_t));
|
||||
|
||||
// Round up dataSizeDword to be a multiple of CRYPTPROTECTMEMORY_BLOCK_SIZE
|
||||
static_assert(CRYPTPROTECTMEMORY_BLOCK_SIZE == 16, "Power of 2 assumptions in this bit masking violated");
|
||||
const auto mask = static_cast<DWORD>(CRYPTPROTECTMEMORY_BLOCK_SIZE - 1u);
|
||||
const auto dataNumBytes = (dataSizeDword & ~mask) + ((dataSizeDword & mask) != 0) * CRYPTPROTECTMEMORY_BLOCK_SIZE;
|
||||
assert((dataNumBytes % CRYPTPROTECTMEMORY_BLOCK_SIZE) == 0);
|
||||
assert(dataNumBytes >= dataSizeDword);
|
||||
m_buffer.resize(dataNumBytes);
|
||||
memcpy_s(m_buffer.data(), m_buffer.size(), data.c_str(), dataNumBytes);
|
||||
if (!CryptProtectMemory(m_buffer.data(), dataNumBytes, CRYPTPROTECTMEMORY_SAME_PROCESS))
|
||||
{
|
||||
throw ::utility::details::create_system_error(GetLastError());
|
||||
}
|
||||
}
|
||||
|
||||
win32_encryption::~win32_encryption() { SecureZeroMemory(m_buffer.data(), m_buffer.size()); }
|
||||
|
||||
plaintext_string win32_encryption::decrypt() const
|
||||
{
|
||||
// Copy the buffer and decrypt to avoid having to re-encrypt.
|
||||
auto result = plaintext_string(new std::wstring(reinterpret_cast<const std::wstring::value_type*>(m_buffer.data()),
|
||||
m_buffer.size() / sizeof(wchar_t)));
|
||||
auto& data = *result;
|
||||
if (!m_buffer.empty())
|
||||
{
|
||||
if (!CryptUnprotectMemory(&data[0], static_cast<DWORD>(m_buffer.size()), CRYPTPROTECTMEMORY_SAME_PROCESS))
|
||||
{
|
||||
throw ::utility::details::create_system_error(GetLastError());
|
||||
}
|
||||
|
||||
assert(m_numCharacters <= m_buffer.size());
|
||||
SecureZeroMemory(&data[m_numCharacters], data.size() - m_numCharacters);
|
||||
data.erase(m_numCharacters);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
void zero_memory_deleter::operator()(::utility::string_t* data) const
|
||||
{
|
||||
CASABLANCA_UNREFERENCED_PARAMETER(data);
|
||||
#if defined(_WIN32)
|
||||
SecureZeroMemory(&(*data)[0], data->size() * sizeof(::utility::string_t::value_type));
|
||||
delete data;
|
||||
#endif
|
||||
}
|
||||
} // namespace details
|
||||
|
||||
} // namespace web
|
||||
1
deps/cziplib
vendored
Submodule
1
deps/cziplib
vendored
Submodule
Submodule deps/cziplib added at 7a57414261
1
deps/expected-lite
vendored
Submodule
1
deps/expected-lite
vendored
Submodule
Submodule deps/expected-lite added at 95b9cb015f
7
deps/expected.props
vendored
Normal file
7
deps/expected.props
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
<Project>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)expected-lite\include\nonstd\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
</Project>
|
||||
1
deps/spdlog
vendored
Submodule
1
deps/spdlog
vendored
Submodule
Submodule deps/spdlog added at 616866fcf4
8
deps/spdlog.props
vendored
Normal file
8
deps/spdlog.props
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<Project>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)spdlog\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>SPDLOG_WCHAR_TO_UTF8_SUPPORT;SPDLOG_COMPILED_LIB;SPDLOG_WCHAR_FILENAMES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
</Project>
|
||||
@@ -1,26 +0,0 @@
|
||||
# Code Organization
|
||||
|
||||
## Rules
|
||||
|
||||
- **Follow the pattern of what you already see in the code**
|
||||
- Try to package new ideas/components into libraries that have nicely defined interfaces
|
||||
- Package new ideas into classes or refactor existing ideas into a class as you extend
|
||||
|
||||
## Code Overview
|
||||
|
||||
General project organization:
|
||||
|
||||
#### The [`deps`](/deps) folder
|
||||
Contains other projects that PowerToys uses as dependencies.
|
||||
|
||||
#### The [`doc`](/doc) folder
|
||||
Documentation for the project, including a [coding guide](/doc/coding) and [design docs](/doc/specs).
|
||||
|
||||
#### The [`installer`](/installer) folder
|
||||
Contains the source code of the PowerToys installer.
|
||||
|
||||
#### The [`src`](/src) folder
|
||||
Contains the source code of the PowerToys runner and of all of the PowerToys modules. **This is where the most of the magic happens.**
|
||||
|
||||
#### The [`tools`](/tools) folder
|
||||
Various tools used by PowerToys. Includes the Visual Studio 2019 project template for new PowerToys.
|
||||
@@ -1,5 +0,0 @@
|
||||
# Coding Style
|
||||
|
||||
## Philosophy
|
||||
1. If it's inserting something into the existing classes/functions, try to follow the existing style as closely as possible.
|
||||
1. If it's brand new code or refactoring a complete class or area of the code, please follow as Modern C++ of a style as you can and reference the [C++ Core Guidelines](https://github.com/isocpp/CppCoreGuidelines) as much as you possibly can.
|
||||
47
doc/devdocs/akaLinks.md
Normal file
47
doc/devdocs/akaLinks.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# Full list of aka links
|
||||
|
||||
| ShortUrl | TargetUrl |
|
||||
|----------|----------|
|
||||
| getpowertoys | ms-windows-store://pdp/?productid=XP89DCGQ3K6VLD |
|
||||
| installpowertoys | https://github.com/microsoft/PowerToys/releases/latest |
|
||||
| powertoys-license | https://github.com/microsoft/PowerToys/blob/main/LICENSE |
|
||||
| powertoys | https://github.com/microsoft/PowerToys |
|
||||
| PowerToysAppCompat | https://github.com/microsoft/PowerToys/wiki/Application-Compatibility |
|
||||
| powerToysCannotRemapKeys | https://learn.microsoft.com/windows/powertoys/keyboard-manager#keys-that-cannot-be-remapped |
|
||||
| powerToysColorPickerImageSmall | https://github.com/microsoft/PowerToys/wiki/images/overview/ColorPicker_small.png |
|
||||
| powerToysColorPickerSettingImage | https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/overview/ColorPicker_large.png |
|
||||
| powertoysDetectedElevatedHelp | https://learn.microsoft.com/windows/powertoys/administrator |
|
||||
| powertoys-docs | https://learn.microsoft.com/windows/powertoys |
|
||||
| powerToysFancyZoneImageSmall | https://github.com/microsoft/PowerToys/wiki/images/overview/FancyZones_small.png |
|
||||
| powerToysFancyZoneSettingImage | https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/overview/FancyZones_large.png |
|
||||
| powerToysGiveFeedback | https://github.com/microsoft/PowerToys/issues |
|
||||
| powerToysImageResizerImageSmall | https://github.com/microsoft/PowerToys/wiki/images/overview/ImageResizer_small.png |
|
||||
| powerToysImageResizerSettingImage | https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/overview/ImageResizer_large.png |
|
||||
| powerToysKBMImageSmall | https://github.com/microsoft/PowerToys/wiki/images/overview/KBM_small.png |
|
||||
| powerToysKBMSettingImage | https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/overview/KBM_large.png |
|
||||
| PowerToysOverview | https://learn.microsoft.com/windows/powertoys/ |
|
||||
| PowerToysOverview_ColorPicker | https://learn.microsoft.com/windows/powertoys/color-picker |
|
||||
| PowerToysOverview_FancyZones | https://learn.microsoft.com/windows/powertoys/fancyzones |
|
||||
| PowerToysOverview_FileExplorerAddOns | https://learn.microsoft.com/windows/powertoys/file-explorer |
|
||||
| PowerToysOverview_ImageResizer | https://learn.microsoft.com/windows/powertoys/image-resizer |
|
||||
| PowerToysOverview_KeyboardManager | https://learn.microsoft.com/windows/powertoys/keyboard-manager |
|
||||
| PowerToysOverview_MouseUtilities | https://learn.microsoft.com/windows/powertoys/mouse-utilities |
|
||||
| PowerToysOverview_PowerRename | https://learn.microsoft.com/windows/powertoys/powerrename |
|
||||
| PowerToysOverview_PowerToysRun | https://learn.microsoft.com/windows/powertoys/run |
|
||||
| PowerToysOverview_ShortcutGuide | https://learn.microsoft.com/windows/powertoys/shortcut-guide |
|
||||
| PowerToysOverview_VideoConference | https://learn.microsoft.com/windows/powertoys/video-conference-mute |
|
||||
| powerToysPowerLauncherImageSmall | https://github.com/microsoft/PowerToys/wiki/images/overview/PowerLauncher_small.png |
|
||||
| powerToysPowerLauncherSettingImage | https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/overview/PowerLauncher_large.png |
|
||||
| powerToysPowerPreviewImageSmall | https://github.com/microsoft/PowerToys/wiki/images/overview/PowerPreview_small.png |
|
||||
| powerToysPowerPreviewSettingImage | https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/overview/PowerPreview_large.png |
|
||||
| powerToysPowerRenameImageSmall | https://github.com/microsoft/PowerToys/wiki/images/overview/PowerRename_small.png |
|
||||
| powerToysPowerRenameSettingImage | https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/overview/PowerRename_large.png |
|
||||
| powerToysPTImageSmall | https://github.com/microsoft/PowerToys/wiki/images/overview/PT_small.png |
|
||||
| powerToysPTSettingImage | https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/overview/PT_large.png |
|
||||
| powerToysReportBug | https://github.com/microsoft/PowerToys/issues/new?assignees=&labels=Issue-Bug%2CTriage-Needed&template=bug_report.yml&title= |
|
||||
| powerToysRequestFeature | https://github.com/microsoft/PowerToys/issues/new?assignees=&labels=&template=feature_request.md&title= |
|
||||
| powerToysShortcutGuideImageSmall | https://github.com/microsoft/PowerToys/wiki/images/overview/ShortcutGuide_small.png |
|
||||
| powerToysShortcutGuideSettingImage | https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/overview/ShortcutGuide_large.png |
|
||||
| powerToysVideoConferenceImageSmall | https://github.com/microsoft/PowerToys/wiki/images/overview/VideoConference_small.png |
|
||||
| powerToysVideoConferenceSettingImage | https://github.com/microsoft/PowerToys/wiki/images/overview/VideoConference_large.png |
|
||||
| powertoyswiki | https://github.com/microsoft/PowerToys/wiki |
|
||||
100
doc/devdocs/common.md
Normal file
100
doc/devdocs/common.md
Normal file
@@ -0,0 +1,100 @@
|
||||
# Classes and structures
|
||||
|
||||
#### class Animation: [header](/src/common/animation.h) [source](/src/common/animation.cpp)
|
||||
Animation helper class with two easing-in animations: linear and exponential.
|
||||
|
||||
#### class AsyncMessageQueue: [header](/src/common/async_message_queue.h)
|
||||
Header-only asynchronous message queue. Used by `TwoWayPipeMessageIPC`.
|
||||
|
||||
#### class TwoWayPipeMessageIPC: [header](/src/common/two_way_pipe_message_ipc.h)
|
||||
Header-only asynchronous IPC messaging class. Used by the runner to communicate with the settings window.
|
||||
|
||||
#### class DPIAware: [header](/src/common/dpi_aware.h) [source](/src/common/dpi_aware.cpp)
|
||||
Helper class for creating DPI-aware applications.
|
||||
|
||||
#### struct MonitorInfo: [header](/src/common/monitors.h) [source](/src/common/monitors.cpp)
|
||||
Class for obtaining information about physical displays connected to the machine.
|
||||
|
||||
#### class Settings, class PowerToyValues, class CustomActionObject: [header](/src/common/settings_objects.h) [source](/src/common/settings_objects.cpp)
|
||||
Classes used to define settings screens for the PowerToys modules.
|
||||
|
||||
#### class Tasklist: [header](/src/common/tasklist_positions.h) [source](/src/common/tasklist_positions.cpp)
|
||||
Class that can detect the position of the windows buttons on the taskbar. It also detects which window will react to pressing `WinKey + number`.
|
||||
|
||||
#### struct WindowsColors: [header](/src/common/windows_colors.h) [source](/src/common/windows_colors.cpp)
|
||||
Class for detecting the current Windows color scheme.
|
||||
|
||||
# Helpers
|
||||
|
||||
#### Common helpers: [header](/src/common/common.h) [source](/src/common/common.cpp)
|
||||
Various helper functions.
|
||||
|
||||
#### Settings helpers: [header](/src/common/settings_helpers.h)
|
||||
Helper methods for the settings.
|
||||
|
||||
#### Start visible helper: [header](/src/common/start_visible.h) [source](/src/common/start_visible.cpp)
|
||||
Contains function to test if the Start menu is visible.
|
||||
|
||||
# Toast Notifications
|
||||
|
||||
#### Notifications API [header](/src/common/notifications.h) [source](/src/common/notifications.cpp)
|
||||
To use UWP-style toast notifications, simply include the header and call one of these functions:
|
||||
|
||||
```cpp
|
||||
void show_toast(std::wstring_view message); // #1
|
||||
|
||||
void show_toast_background_activated( // #2
|
||||
std::wstring_view message,
|
||||
std::wstring_view background_handler_id,
|
||||
std::vector<std::wstring_view> button_labels);
|
||||
```
|
||||
We might add more functions in the future if the need arises, e.g. `show_toast_xml` which will accept raw XML for rich customization.
|
||||
|
||||
Description:
|
||||
- `#1` is for sending simple notifications without any callbacks or buttons
|
||||
- `#2` is capable of showing a toast with multiple buttons and background activation
|
||||
- `message` is a plain-text argument
|
||||
|
||||
Implement a toast activation handler/callback as a function in [handler_functions.cpp](/src/common/notifications_winrt/handler_functions.cpp) and register its `background_handler_id` via `handlers_map`, e.g.:
|
||||
|
||||
```cpp
|
||||
// Your .cpp where you'd like to show a toast
|
||||
|
||||
#include <common/notifications.h>
|
||||
|
||||
void some_func() {
|
||||
// ...
|
||||
notifications::show_toast_background_activated(
|
||||
L"Toast message!", // text displayed in a toast
|
||||
L"awesome_toast", // activation handler id
|
||||
{L"Press me!", L"Also could press me!", L"I'm here to be pressed!"} // buttons in a toast
|
||||
);
|
||||
```
|
||||
|
||||
```cpp
|
||||
// handler_functions.cpp
|
||||
void awesome_toast_handler(IBackgroundTaskInstance, const size_t button_id)
|
||||
{
|
||||
switch(button_id)
|
||||
{
|
||||
case 0:
|
||||
// handle "Press me!" button click
|
||||
case 1:
|
||||
// handle "Also could press me!" button click
|
||||
case 2:
|
||||
// handle "I'm here to be pressed!" button click
|
||||
}
|
||||
}
|
||||
|
||||
namespace
|
||||
{
|
||||
const std::unordered_map<std::wstring_view, handler_function_t> handlers_map = {
|
||||
// ...other handlers...
|
||||
{L"awesome_toast", awesome_toast_handler}
|
||||
};}
|
||||
|
||||
```
|
||||
|
||||
Note: since _background activation_ implies that your toast handler will be invoked in a separate process, you can't share data directly from within a handler and your PT process. Also, since PT is currently a Desktop Bridge app, _foreground activation_ is [handled the same as background](https://learn.microsoft.com/windows/uwp/design/shell/tiles-and-notifications/send-local-toast-desktop-cpp-wrl#foreground-vs-background-activation), therefore we don't make a dedicated API for it. You can read more on the rationale of the current design [here](https://github.com/microsoft/PowerToys/pull/1178#issue-368768337).
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user