Bug 15625 - Many qsort() comparison functions are non-transitive, which can lead to out-of-bounds access in some circumstances
Summary: Many qsort() comparison functions are non-transitive, which can lead to out-o...
Status: RESOLVED FIXED
Alias: None
Product: Samba 4.1 and newer
Classification: Unclassified
Component: Other (show other bugs)
Version: unspecified
Hardware: All All
: P5 normal (vote)
Target Milestone: ---
Assignee: Jule Anger
QA Contact: Samba QA Contact
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-04-10 03:53 UTC by Douglas Bagnall
Modified: 2024-06-19 14:34 UTC (History)
2 users (show)

See Also:


Attachments
patches for 4.20. (102.71 KB, patch)
2024-05-08 03:19 UTC, Douglas Bagnall
dbagnall: ci-passed+
Details
patches for 4.19 (103.03 KB, patch)
2024-05-08 03:54 UTC, Douglas Bagnall
no flags Details
backport to 4.17 in case anyone wants it (100.14 KB, patch)
2024-05-08 03:55 UTC, Douglas Bagnall
no flags Details
patches for 4.20 (v2) (103.93 KB, patch)
2024-06-05 04:19 UTC, Douglas Bagnall
abartlet: review+
Details
patches for 4.19 (v2) (104.25 KB, patch)
2024-06-05 04:19 UTC, Douglas Bagnall
abartlet: review+
Details
backport to 4.17 (v2) (101.36 KB, patch)
2024-06-05 04:20 UTC, Douglas Bagnall
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Douglas Bagnall 2024-04-10 03:53:15 UTC
See https://www.openwall.com/lists/oss-security/2024/01/30/7

A non-transitive comparison (that is, one where you might see A > B and B > C, but A <= C), can also make the sort disordered, which might have other bad effects.

A common cause is
 
    return a - b;

where a and b are the size of an int or bigger and could overflow.

There are several patches that will reference this bug.
Comment 1 Samba QA Contact 2024-04-10 23:59:14 UTC
This bug was referenced in samba master:

73e4f6026ad04b73074b413bd8c838ca48ffde7f
8b6a584170eeb5082a188879be88e5f414b0be81
5ab93f48c575db1a3c5a707258cc44f707a5eeb0
de1b94f79ea8694ecdddab4b455d539caa7e77e2
5150b318f4894a8036b2a394c446afd513f8cb60
75e51bd99b7a029afd98b55283eddad835319ed6
a6d76d6ee9f7cfcabe2c20b872b8b1cb598928a6
623adcf4aae00ac06e82d98a75ce4644890501e6
ee4ebcccd7d9d89dda59615b3653df2632fb1a5d
09c98ff1263eb05933f1956e201655dd41e28a0c
ac0a8cd92ca4497bfcfad30e2b4d47547b582b92
dda0bb6fc71bae91f3158f69462cb79fdad210fb
a512759d7b216cacc0a780b3304549b7945f919c
f788a399996a73b2aa206ec2b15f5943b06660e0
d4ce8231f986a359dc657cd1a6b416270a53c7d3
675fdeee3d6570fdf5a055890dc3386a8db5fd88
f07ae6990702f8806c0c815454b80a5596b7219a
4a9d274d43b1adac113419c649bbf530d180229d
3414a894ad6640fa8e282d650b1cc5319991545f
6159b098cf35a8043682bfd4c4ea17ef0da6e8ee
997b72d79e651ddbc20e67006ae176229528dc6f
f78b964cd81db11097e78099c0699f571f20e126
838c68470299045c5b1c9bdbd527edbeedebf2d6
e1519c3667841ce27b15983eae378799ef9936f7
5c36bc82415b246fccec9eae693da82b7aa45b81
21a071e4864dd739840c2ad4adb0c71ec33f8427
cb94202c1cf990e871ee2e8e43c577a0e4b9ee6f
4641a97151783c2ae825582e91b4676d66dcb713
dd4a0c276813b2c8516061110a7e580aa9afcf40
ed3ab87bdb0f6c6a9ea6323ed240fe267220b759
42ead213484840121ce6bc0db22941ea0a019105
66d47537e42caa528c7fab670d9c35d27c513cce
d8b97649ef4d3ccaf53878021be0e2d4824b982c
a197be2003d7e248b1e1294f4ad5473f48762bce
5e99262aaf5fc6601f3859c8b060b680b11bf6ea
31101a9fa1503be9d8137e42466f57d85136a156
e35d54fd4d381df67ab9b4f8390e2109b2142678
81598b42455d6758941da532c668b6d4e969cc40
Comment 2 Samba QA Contact 2024-04-23 02:38:04 UTC
This bug was referenced in samba master:

d785c1991c922150bab38c36cef3a799448ac304
d4e69734c65ade0bbb398447012513a7f27e98bd
531f31df99341b2cb1afc42538022451ca771983
5fe488d515a8bb719bdeafb8b64d8479732b5ac8
9b73235d4957a487fbb3214fdfda6461a2cf0b21
8b2605a5d9cc14f9e6ddf2db704cdca2f523d74e
386216d4a158d8bafb0879a0a753da096a939b93
8317a6173646d425dc99e08bbf3d6086b0086bc5
75682e397b9cf22d04a5d80252554c6b2e376793
acaa1323d0337ae9339dfff9f856ea54725a86ac
7ba6fcb93656e5e88e1d5bcd6002747aa64f0a3a
31c322874b8b65518cec945e05a42fd014e6390b
7be535315a5eed5d5b7eaea025ecf9f55e772e8e
6229feab74a734190c302ee9b1cc36960669743d
6722e80d1b3a252a1ed714be4a35185cd99971e3
db963b1674ede357d4edba578e0e0372dcb2f287
11d5a809325369b48d14023adf109e418bb1c7af
70356592563bf758dbe509413445b77bb0d7da14
341b8fb60e291ad598fafd7a09a75e9b249de07f
7280c8e53f463108fe3de443ce63572dde689a30
a75c98ad688415aec8afc617a759ba90cfd9f23b
Comment 3 Samba QA Contact 2024-05-08 00:27:04 UTC
This bug was referenced in samba master:

af7654331fb6a2d9cc41cf5bdffa74c81ff4ffee
5335f122fb551231a02a58f88f6a0aa23b5e02cb
827b0c39ed0497407bfcfc5683735a165b1b0f0a
f81b7c7eb206a447d799a25cc2da26304dc7567a
e2051eebd492a419f840280336eb242d0b4a26ac
Comment 4 Douglas Bagnall 2024-05-08 03:19:50 UTC
Created attachment 18297 [details]
patches for 4.20.
Comment 5 Douglas Bagnall 2024-05-08 03:54:08 UTC
Created attachment 18298 [details]
patches for 4.19
Comment 6 Douglas Bagnall 2024-05-08 03:55:33 UTC
Created attachment 18299 [details]
backport to 4.17 in case anyone wants it
Comment 7 Douglas Bagnall 2024-05-08 05:38:12 UTC
Comment on attachment 18297 [details]
patches for 4.20.

CI for 4.20 passed https://gitlab.com/samba-team/devel/samba/-/pipelines/1282592514
Comment 8 Samba QA Contact 2024-05-22 05:27:04 UTC
This bug was referenced in samba master:

5abeb724d74af2b861f2ee6bc27762bb5bf07bca
Comment 9 Douglas Bagnall 2024-06-05 04:19:15 UTC
Created attachment 18323 [details]
patches for 4.20 (v2)

Adding an extra fix-up patch from 5abeb724d74af2b861f2ee6bc27762bb5bf07bca
Comment 10 Douglas Bagnall 2024-06-05 04:19:54 UTC
Created attachment 18324 [details]
patches for 4.19 (v2)
Comment 11 Douglas Bagnall 2024-06-05 04:20:58 UTC
Created attachment 18325 [details]
backport to 4.17 (v2)
Comment 12 Andrew Bartlett 2024-06-10 08:58:15 UTC
Comment on attachment 18323 [details]
patches for 4.20 (v2)

I carefully re-generated a patch set from master via the indicated commits in the comment here and compared that with this patch.
Comment 13 Jule Anger 2024-06-10 13:24:28 UTC
Pushed to autobuild-v4-{20,19}-test.
Comment 14 Samba QA Contact 2024-06-10 14:41:12 UTC
This bug was referenced in samba v4-19-test:

241ebc607b22ef37002664ac1701971233e4bcff
22d8332e1b94d7ba218b8a0f6387fa712ae045e9
d386c57d68b4e219d9bb853ee4c8ce07d2f00c19
20a8eaa8b868633cb276cdc37e5b34680730ef20
8a706fa32be6d1a123327d24aa6ea81650631541
6c9119371cdfd43a0112cec8513bed9c897ee0ed
25e97cd7dba404f78fed6625b86fb366a1efb1da
792f8d40e1cfe45dce9b6ddbe095d28aec8861d5
ea27699bcd235b050858acb7aadd5e6d48ded398
1a45f172070abb7b400574f27d6c0cd49008b0de
5082378df180ea8a59ea55db6a06b765a1fd23cd
6b08f2ed860531a98e17615e28c01426030aef73
3f8063530d2c298520f90b260e5c69c8d6709c93
59f6652aeee622e8df51f56758ea823d351dec3f
388b11b6dc1218165900cd098fb525a2f059a687
120479e4e02cecf047d969f1209398e02f69ec1f
2557ab2301400fe7cf963a8685790e8ab311c9b2
74befdb138780b23ba2409d7f48ca6c250b2499f
12c6c305fb1ed940bc94a89124747d41420e4343
5847e53de2f8b3fbd6b748d016870338f9718db6
c85cb252af0d3100625860fe3b2504a5f88dac76
9de4a5d3bbc31e23c570afce98c8c0092d92fe8c
ad50158af0516fe53b4d76ae59304ed813b4b00f
fe804401b9b165e5c6423f00f78372067af43e90
b2dbe57c977595714f8ae6c7d21b3c55b8e649c9
23d792875f987f8f93a2e9a23dc64cfefcb91f70
60c318fc66b8c0fa790359a5428c9c135e99591c
b7f581fb61fbeb52937cbfedc6093a021cea35ba
6b07ce82a588d8e246f8f51cef6ab56d5424d772
622bf82fb32796d5d5e80c0cd419ea4adec60b72
f14a1370f480ad3e37145351746753b489be369d
0f8e25b897f84a9f62a1be7f65a7f97b4eb9d718
91dd502401077543fc1d0f5a53a8f0468811f7f2
30f0a2fb131a873b0981a51a7b6bdaa008e5009b
26e08f8fc7d3ef4d27a4e021a71d14b735318d78
32f4e0c7f5a679555a242a7240d584ada30cd7c3
075aae1d1a079ee0060a8faf94214bfc76d3408d
d4477eab44ac6d41a0d5fd61a77c89e77adaaed0
71d2c9093cf1fe60c8571a235b025f90919287dc
87a6fe0058af72f4b5f4f6e9d907059666fe9b08
867dce05d217ccf45e9bc74fdd2b2dae7d710fb3
aa255148bbb848b23b6fce107a3e1658e238496c
13645e1131bd912cd7ece9a1f740c0f10b617e76
f58d857d722bb22c1fb714ac3c0b3e3482c53217
069e651d4b840a8fcd4a553a81f67ed223c78712
16288b40eb9eb597db2816d8a77a4a140b92960d
4066451f6e889f409f9e6411ad417872bb8a234a
c1819217c0a46a80dc18f16744783746ac1b7be2
f0f9598d5d10a75858d8f3dc326eb210625ba9a8
9314eaaba91310503130878938a637c232b54ba4
24d362e62d4393c133cddad0b4109eb8b4a01d85
5bf176b56924f6c309978ae8cc812787bc19228c
108f687cf222c6a7235d006bedd31214acc99962
fae4e0b16aadb03bf4e0b4dcddfe315c206be3be
2b3416384aef3ca975be71fac1d9281e70ac5547
96f3db39522e837711783a7955ce3e1b728ce97d
5c5c652db7cd74a96237d3fc778349d5454651be
50bfb065e0155960e43bb603990e4aca414fbf27
ca905ccbf1e426dd04debb14c10e40db4ee4e42f
92daa0a7801f70515e429520ba894423e6a35535
2a53574e07e2265e7b60dab3130b8e73d914777d
ae8eb3d2b0908524f8f8284d5095274db243d778
00000382d17c868f467814d2856858d5066f0ec9
123f458dda64c2bec7d8ce272e87a93ec6890f41
d4f9272b7e9ebf51c82f22b9c877cf37ed66218a
Comment 15 Samba QA Contact 2024-06-10 14:44:22 UTC
This bug was referenced in samba v4-20-test:

c206d3d20c82d860ffe911025b8a5255f32858d6
3a840553cfbf97ef434626afb657dd4b8ef16b2d
b46af17050b78c19327fea537cd6d45fa89c4e3d
9e19cc171172e2fbbae6448087babbe60f744f09
1b8ccbf031beecdb3824134dabcab296b9525a68
696cca23e3edbf1e89fdf0af978ca0461c632321
3071a4af9a5a6095b73b997448fef03cf3e1c7b7
f94b87da1be55dac076ef9a137da151412d943f8
51fa8c0168e1bca4fdd0c2bde995593088c45199
be4965c69c8475b657503e52d394a2f3a7b4d1f9
767344ee5128025f3af6f89e935240dd344a1855
94b574cde1228563614df287c7de810deab2bac0
d18a62836c0821983ff8f9b7001475210c9bc813
eb8fd60e10c54926fb49bb665fed85dbe3536ee7
10c0087dac85477b8ead2511cb563598200edbe1
64d55301410f8e60e54910dd03a4c9a58df1bb0e
77b78b453306a2176acd0b7d33f45aa51456c084
f9a7ded26d139c630150d2e048082eb7901f81a6
ccd94628b5805ac126dd7b716c2f70ba7e098b7f
6a0daf6818b5c92b57b987334a5fc31a256c7afb
1c6f16cdca9cd82a99642efead738cb355f2d534
4fa00be308350ea581084fab6f1da437ca0d3308
f7e192e82f757c7c1cd3755f74b9be73c207a7d7
7990f5a28415ad6ce8422f570f3a8a604bc91bac
e0468b5a9edec8208a492f5260812981686071b5
c95b73014d3e3081e4288e4acc5a177475ce0b69
bd548a92d42e73e89cfed4666f6e186d2606bc91
886818f5abbaa63e154f5b63dc92880c1ad678be
395050286724371f9f78e5c420016351d6ef3229
c6ed9351f818ea79cb545ad3d1e27a6f065803b4
a326992c07d0a4764d8249a07c9b089fbde53aa0
7acee3ae13a8b65b4f0d590113cfd6307c6da53c
20648aaf7fe9114b5c2440c6d353713b0e473137
27becb5a7fcb7c2fc0d5c2779e9fb427a5fbaeaa
48494283a66aba0d9d0e4ecd0f98e0c221019cf1
e3f491e31932dc9d37ac683c4b84d2e0d85fec9b
4d6f0ad643ca66435dc62d94d283301eee46b10b
faed55f4f880f0cc566b185463c7e3b6e8e76bdd
5f52991b93140fec7476d49e8f9719f8d42b617a
a0a83539c304734f615954181a28a83111e0d87d
f3b6ec046a01260c8fabf331fcb06391afef6d31
f61aabdb1a3d0f7bfefe067f1baa2318f85cc3a5
94f38553adfbaaaa1ea00f32d4cce423726c8912
6893310bd793c4f403991cfa58eba5f5364b9067
29b17d296c01a19b842efb7ad5adeed45ae26227
835594dea0e93e3df012ecb56ff27bfb6ba544ed
2f6c5b6603fa06d467ea7037432bfa493b8d4cf7
1d527c49df549f325ef977db8d591d6eacbb52d2
de865f6c8b7a704467dadd901777304c2203fd3a
d2aaed5d96900b116b69bebb7e6ce856130856d0
8f0490150b4e713c37ee20cf72595da420d24842
dcf393af595d92392382bddea6901e0998016ecb
da5c625e6411d9a4ffe780a55dff3fca60857cf5
956bff1dc63afccebc78b1ac5edc3a66034496ce
ae770139f258adfeb98b4758b722c0b1dc6aff6a
d819b21464ca13a5349de31d182250ecde3d8175
586c0f3dd00486777529b44c28ba8f7815ee8e24
3d62269dfbf15b82b9bc67d82ce0241c77483765
7d295cb6fe51fa95794d681ca77af5f3a9e8d0f9
21a01b3bad469daf28ce389b1555154eef9c664d
7ae866c6ffab54001d9d52b29edaac91d79e5f26
d12f3cced612ccdb1a387544d989de25118d7e4c
3f9d9f83448c71cf5453dd63434efc98a36d4cfa
e21251926bada4af23c5df0dab9e94e9cd30f0b8
50d4451bd4bf98dc8c0c2ee6a9d9ffeb78788d0c
Comment 16 Jule Anger 2024-06-10 14:47:14 UTC
Closing out bug report.

Thanks!
Comment 17 Samba QA Contact 2024-06-10 15:31:30 UTC
This bug was referenced in samba v4-19-stable (Release samba-4.19.7):

241ebc607b22ef37002664ac1701971233e4bcff
22d8332e1b94d7ba218b8a0f6387fa712ae045e9
d386c57d68b4e219d9bb853ee4c8ce07d2f00c19
20a8eaa8b868633cb276cdc37e5b34680730ef20
8a706fa32be6d1a123327d24aa6ea81650631541
6c9119371cdfd43a0112cec8513bed9c897ee0ed
25e97cd7dba404f78fed6625b86fb366a1efb1da
792f8d40e1cfe45dce9b6ddbe095d28aec8861d5
ea27699bcd235b050858acb7aadd5e6d48ded398
1a45f172070abb7b400574f27d6c0cd49008b0de
5082378df180ea8a59ea55db6a06b765a1fd23cd
6b08f2ed860531a98e17615e28c01426030aef73
3f8063530d2c298520f90b260e5c69c8d6709c93
59f6652aeee622e8df51f56758ea823d351dec3f
388b11b6dc1218165900cd098fb525a2f059a687
120479e4e02cecf047d969f1209398e02f69ec1f
2557ab2301400fe7cf963a8685790e8ab311c9b2
74befdb138780b23ba2409d7f48ca6c250b2499f
12c6c305fb1ed940bc94a89124747d41420e4343
5847e53de2f8b3fbd6b748d016870338f9718db6
c85cb252af0d3100625860fe3b2504a5f88dac76
9de4a5d3bbc31e23c570afce98c8c0092d92fe8c
ad50158af0516fe53b4d76ae59304ed813b4b00f
fe804401b9b165e5c6423f00f78372067af43e90
b2dbe57c977595714f8ae6c7d21b3c55b8e649c9
23d792875f987f8f93a2e9a23dc64cfefcb91f70
60c318fc66b8c0fa790359a5428c9c135e99591c
b7f581fb61fbeb52937cbfedc6093a021cea35ba
6b07ce82a588d8e246f8f51cef6ab56d5424d772
622bf82fb32796d5d5e80c0cd419ea4adec60b72
f14a1370f480ad3e37145351746753b489be369d
0f8e25b897f84a9f62a1be7f65a7f97b4eb9d718
91dd502401077543fc1d0f5a53a8f0468811f7f2
30f0a2fb131a873b0981a51a7b6bdaa008e5009b
26e08f8fc7d3ef4d27a4e021a71d14b735318d78
32f4e0c7f5a679555a242a7240d584ada30cd7c3
075aae1d1a079ee0060a8faf94214bfc76d3408d
d4477eab44ac6d41a0d5fd61a77c89e77adaaed0
71d2c9093cf1fe60c8571a235b025f90919287dc
87a6fe0058af72f4b5f4f6e9d907059666fe9b08
867dce05d217ccf45e9bc74fdd2b2dae7d710fb3
aa255148bbb848b23b6fce107a3e1658e238496c
13645e1131bd912cd7ece9a1f740c0f10b617e76
f58d857d722bb22c1fb714ac3c0b3e3482c53217
069e651d4b840a8fcd4a553a81f67ed223c78712
16288b40eb9eb597db2816d8a77a4a140b92960d
4066451f6e889f409f9e6411ad417872bb8a234a
c1819217c0a46a80dc18f16744783746ac1b7be2
f0f9598d5d10a75858d8f3dc326eb210625ba9a8
9314eaaba91310503130878938a637c232b54ba4
24d362e62d4393c133cddad0b4109eb8b4a01d85
5bf176b56924f6c309978ae8cc812787bc19228c
108f687cf222c6a7235d006bedd31214acc99962
fae4e0b16aadb03bf4e0b4dcddfe315c206be3be
2b3416384aef3ca975be71fac1d9281e70ac5547
96f3db39522e837711783a7955ce3e1b728ce97d
5c5c652db7cd74a96237d3fc778349d5454651be
50bfb065e0155960e43bb603990e4aca414fbf27
ca905ccbf1e426dd04debb14c10e40db4ee4e42f
92daa0a7801f70515e429520ba894423e6a35535
2a53574e07e2265e7b60dab3130b8e73d914777d
ae8eb3d2b0908524f8f8284d5095274db243d778
00000382d17c868f467814d2856858d5066f0ec9
123f458dda64c2bec7d8ce272e87a93ec6890f41
d4f9272b7e9ebf51c82f22b9c877cf37ed66218a
Comment 18 Samba QA Contact 2024-06-19 14:34:52 UTC
This bug was referenced in samba v4-20-stable (Release samba-4.20.2):

c206d3d20c82d860ffe911025b8a5255f32858d6
3a840553cfbf97ef434626afb657dd4b8ef16b2d
b46af17050b78c19327fea537cd6d45fa89c4e3d
9e19cc171172e2fbbae6448087babbe60f744f09
1b8ccbf031beecdb3824134dabcab296b9525a68
696cca23e3edbf1e89fdf0af978ca0461c632321
3071a4af9a5a6095b73b997448fef03cf3e1c7b7
f94b87da1be55dac076ef9a137da151412d943f8
51fa8c0168e1bca4fdd0c2bde995593088c45199
be4965c69c8475b657503e52d394a2f3a7b4d1f9
767344ee5128025f3af6f89e935240dd344a1855
94b574cde1228563614df287c7de810deab2bac0
d18a62836c0821983ff8f9b7001475210c9bc813
eb8fd60e10c54926fb49bb665fed85dbe3536ee7
10c0087dac85477b8ead2511cb563598200edbe1
64d55301410f8e60e54910dd03a4c9a58df1bb0e
77b78b453306a2176acd0b7d33f45aa51456c084
f9a7ded26d139c630150d2e048082eb7901f81a6
ccd94628b5805ac126dd7b716c2f70ba7e098b7f
6a0daf6818b5c92b57b987334a5fc31a256c7afb
1c6f16cdca9cd82a99642efead738cb355f2d534
4fa00be308350ea581084fab6f1da437ca0d3308
f7e192e82f757c7c1cd3755f74b9be73c207a7d7
7990f5a28415ad6ce8422f570f3a8a604bc91bac
e0468b5a9edec8208a492f5260812981686071b5
c95b73014d3e3081e4288e4acc5a177475ce0b69
bd548a92d42e73e89cfed4666f6e186d2606bc91
886818f5abbaa63e154f5b63dc92880c1ad678be
395050286724371f9f78e5c420016351d6ef3229
c6ed9351f818ea79cb545ad3d1e27a6f065803b4
a326992c07d0a4764d8249a07c9b089fbde53aa0
7acee3ae13a8b65b4f0d590113cfd6307c6da53c
20648aaf7fe9114b5c2440c6d353713b0e473137
27becb5a7fcb7c2fc0d5c2779e9fb427a5fbaeaa
48494283a66aba0d9d0e4ecd0f98e0c221019cf1
e3f491e31932dc9d37ac683c4b84d2e0d85fec9b
4d6f0ad643ca66435dc62d94d283301eee46b10b
faed55f4f880f0cc566b185463c7e3b6e8e76bdd
5f52991b93140fec7476d49e8f9719f8d42b617a
a0a83539c304734f615954181a28a83111e0d87d
f3b6ec046a01260c8fabf331fcb06391afef6d31
f61aabdb1a3d0f7bfefe067f1baa2318f85cc3a5
94f38553adfbaaaa1ea00f32d4cce423726c8912
6893310bd793c4f403991cfa58eba5f5364b9067
29b17d296c01a19b842efb7ad5adeed45ae26227
835594dea0e93e3df012ecb56ff27bfb6ba544ed
2f6c5b6603fa06d467ea7037432bfa493b8d4cf7
1d527c49df549f325ef977db8d591d6eacbb52d2
de865f6c8b7a704467dadd901777304c2203fd3a
d2aaed5d96900b116b69bebb7e6ce856130856d0
8f0490150b4e713c37ee20cf72595da420d24842
dcf393af595d92392382bddea6901e0998016ecb
da5c625e6411d9a4ffe780a55dff3fca60857cf5
956bff1dc63afccebc78b1ac5edc3a66034496ce
ae770139f258adfeb98b4758b722c0b1dc6aff6a
d819b21464ca13a5349de31d182250ecde3d8175
586c0f3dd00486777529b44c28ba8f7815ee8e24
3d62269dfbf15b82b9bc67d82ce0241c77483765
7d295cb6fe51fa95794d681ca77af5f3a9e8d0f9
21a01b3bad469daf28ce389b1555154eef9c664d
7ae866c6ffab54001d9d52b29edaac91d79e5f26
d12f3cced612ccdb1a387544d989de25118d7e4c
3f9d9f83448c71cf5453dd63434efc98a36d4cfa
e21251926bada4af23c5df0dab9e94e9cd30f0b8
50d4451bd4bf98dc8c0c2ee6a9d9ffeb78788d0c