Skip to content

Preserve merge markers and measure the driver's historical effect - #256

Merged
kixelated merged 4 commits into
mainfrom
quest/m1/resolve-tuning
Oct 28, 2026
Merged

kixelated merged 4 commits into
mainfrom
quest/m1/resolve-tuning

Conversation

@kixelated

@kixelated kixelated commented Oct 28, 2026 •

Copy link
Copy Markdown
Collaborator

Git supplies custom merge-driver labels and marker sizes, but unresolved quest conflicts previously used fixed ours/base/theirs labels and seven-character markers. Pass %L, %X, %S, and %Y through the CLI and merge-file, retaining the same metadata in the missing/older-quest fallback. Real Git regressions compare the result byte-for-byte with native diff3 output, including a quoted branch name and 13-character markers.

Measurement method and limitation

The original plan reports 280 merges, 128 conflicted, and 29 quest-only, but its recorded plan and kixelated/quest#219 contain no merge SHA list or ref snapshot; that exact sample could not be recovered. As a research-method implementation choice, use the pinned broader replacement below. These results do not reproduce the original sample and are not directly comparable to its 128/29 counts. No acceptance threshold or general claim about other repositories follows from them. The goal of measuring the driver's real effect and preserving native marker metadata is complete; the quest and its links are removed.

Reproducible replacement measurement

Read-only history from moq-dev/moq, replayed only in this checkout's private .tmp/moq-replay.git. Select all two-parent merges reachable from the cloned local heads, committed from 2026-09-23T00:00:00-07:00 through 2026-10-23T09:11:00-07:00, whose second parent is on the first-parent chain of main snapshot bea4214598a6b3b2419dd59ce7f8ea44837ca3f8. This intentionally broader selector includes historical mainline ancestry under its former branch name. It does not select cases to reach 280. No further exclusions.

Measurement Merges
Selected 1,108
Native Git conflicts 642
Native conflicts only in quest/ 220
Quest-only conflicts fully resolved by driver 111
Quest-only conflicts remaining 109

Git 2.55.0; replay each recorded merge's first and second parent with git merge-tree --write-tree --name-only --no-messages -z. Disable global/system config and attributes; override quest/** merge=text for native baseline and quest/** merge=quest for the driver. Replay the driver for all 363 cases with any native quest conflict. The binary is built from this implementation, SHA256 16fa3aaaf945501e80d0783369beed1bf5ca91573c2f7ccba5599819fa08b268. All 111 fully resolved merges came from the quest-only group. Counts measure mechanical conflict resolution, not semantic equivalence to historical manual resolutions.

Remaining shapes include prose conflicts (for example, competing summary sentences in 0b253f9e8537731b7c797e9805439824a24d5986, quest/m1/release-audit/README.md) and modify/delete conflicts (verified Git messages for b717778ef17a88f7c254f28b6821db5be50ddf39, quest/m0/release-backports/README.md and quest/m0/release-fixed-delay.md). Across the 109 remaining merges, 96 path occurrences contain text conflict markers and 89 do not. No new resolution heuristic is introduced.

Validation and implementation choices

  • Pinned Nix just install, just check, and just test passed; focused resolve suite: 24 tests passed. quest check --base origin/main: 59 documents pass.
  • Replay, helper, results, full corpus records and ref snapshot are retained under this checkout's .tmp/; result SHA256: b59ca524712a2b11e574c079a9ddfe07b265ad28b632ee956ba546b390a0a317; ref snapshot SHA256: af7091697cedeee5f562f96e84f48796d22022af01385f070fb0119c82d10b87.
  • Ancestor %S is included so diff3 matches native Git. Git shell-quotes the label substitutions; integration regressions cover apostrophes. Labels containing line breaks fail before modifying input, avoiding a parser falsely treating a conflict as clean.
  • Preserve existing configured drivers. README documents clearing an old quest-generated local entry to register the new command. If an older quest accepts help resolve but rejects the new flags, fallback uses native merge-file.
Exact replacement corpus — 1,108 merge SHAs, in replay order
e2813ad90cc01036eb242fa7581ad8f7a35fefb6
208d4be53abe0e0990f599cf618bccbc7974cd29
c0f5a2d5a6756c2c16c7f4e277ac481280eff3b1
10b50f0e63d2f53a652b75fff65556d324ce07c4
b717778ef17a88f7c254f28b6821db5be50ddf39
63a933e5d816b5465e21f47314e04b4680199641
c055670ac3b1c5cfe9a4462b3ef4c89c741c9456
a642755c65470a1b4fe322b6fac5a7dcace7d51b
8b7a8d6f63a6c55296ec810f955463ca8ad78245
d53ed8c4e60fd6907b071d4db4f216ec73c09866
9f840f32185ce90194492d98b72aa185fa58cae5
498613e9bc1643f7084e8791fa3c5c48fd98399e
a69f1aaedaeb7d72844af0b90788217463330152
cc941bab0d3c821e84b0636392e50c6b2cf1a19c
1bc79141331849b2fc63e9942013f7905127641a
eb09198425afceef99d9f6806a33ea2555f753c1
bca38c781b55813eb2720ae163f41be98ddac25b
9e4d91405791a91729a46ab97647b23317fb3dcb
eef615f9623223515f1855b0c305cfcc715fdd0a
eb0f08bec2ce12d1ebd540aa3ce33e0fff5575d4
f7c08f3fe51a33028fc26deb7d981b95649cc169
8dbaf41291533e1e1e53db0ee479a58c87c160ed
5f8dba43dd217b012ac6513125b6e3827ac7d3a8
b60b1be0780693416ac4818d23a944c1b5a55ae3
d1a5b3a6913f4ffd93ed53c1aeace4093f26902f
2caf7d308eb3c421ae8ba690ffa69daad3419302
2f198abfe15f3564c31fdc06a6f9f5e432d47c2b
98a74306e4589a68b7a32870f1fcaf29e562de01
0055d9fa120a016a3e23410af0f18329a0d608f7
98f916d71b926c701e83410c17387211172a5af1
b8f6cebef2c16a141bfa8e0b1b7d00b614895fb4
ddc9717df2c12fadb3e31d9644f946aa9ac4c123
ea015eb74b60097eece9d404b3c110c9cfa34131
e62e4ccab31f5180137e7cec3dd3a030b88e5331
89b433169e9e4627e82ad42a53acc1c775a90be0
d18c77a4baf6325246ebcdccd0d5ef2b312d4171
d1f2e287ff718acaceecf320069a1a7309848239
4cd212c797fe4579b2eaa8938bcb03942a7a84ac
6cabefae52be978cdc35da5d7cd4b783fe0e527a
688e28d8a485a013166ce1bab85758c49c53b0f6
c604df4b71728bc1038d7b6b29d6bd1346952add
a8f37e692327197d4789145f6cceb18a0aa12d02
f54a1a2f33e8059fa5c108abb7a2138705b3beee
a8994adae121b932fadc6817d8ced8d94a47d7d5
0b253f9e8537731b7c797e9805439824a24d5986
94f7f94b01f5121f0ead146a34ec0a2fc10962ac
2881aa3fce51906971e016f452bd1f5f2d63a0a9
f7a57456ffab1f1592d8853bf31ba10a3daf08e0
4e0ac3594a3b5226862ce48ebda5bf3b7de1cf95
d8fa5b1a1428f27eb5ada8652236bbba7713f6b3
0a5e9774a3a25fbfa5b0a03c3c7cffc7c5ad33c3
a034d4a5a5a0d248835ce2aaa5643209287a1770
8d36519001269aaa8f6299ef3193e5ef528e7a9e
430e62f0566a5f39a2fbbb501d96a5011cf3e823
254012e450bb4c8f70cb68ed958d56a272ebd1f6
50a1c00e4f3fc3287f6987aebc33241a87c4f616
ee06c310188233c4d5c5aac11f90950ce935cf76
f15fae935c42b3c11ecf3c60653faf1947c3a218
9cf5ec83c82f6a3b7cd872bbfd20223bfd4927d8
3c6385d0c1fc79f651064db1c8dbd957b3e11e48
dfc997d25151c86d49ea37faf175a6f45c7170c0
53cd844fcc5f81b68460bb3e30792fd1eca411e1
9ebaa75b473ac6e012b7c6e985ec142259f6a96d
17033d1918cd6ce9b9bb9f81b62d7c91784f0b02
83fea78305375639df2839bf60040ad4236d7518
713edd02c38a716e6c31e0087177df05eaff1a84
3edf5e6efbeb04e620a1510894bc47e101149e87
da92a16709ef4fce209bd254b5538a85c4d3a6d5
0d6ff1e24b691ac87f530d42799e1c4557c86f35
ff2a96097054f120b98b2dc8418e8c5127b87fc9
ce63eb09fa708f5734bccd539c9af825a2dd65d4
c52c113a4163d91f535fdd77400f820a98d04393
ac9db2f9a38055bba8673ac2239321613cbd3f65
587a5d13a3f8cf29ac92f060d96555257430b1f7
acd048c7a1c1d1e55cb198c0150028f2b83d7a14
886c713d1315d340254f95cd3a4bf49bebb2c4a4
99d893b1cff517f197c75ac6a142ab1b637c1dc3
3473558467c40a55a433416e6166ed8873a75e05
3ce4b54c394d594e210c779ab4dd40853bf4bb8f
80209ed281189a88ca6cde27204f6d8a01bf782b
39f76f2e857e7e6ad42e45b0c7095a259ed3862a
8335b35750805458cb153e0733f211ced56fa315
44f962711d0606fd117efd6c8f306b44c299e19c
93e0547dda45e5c262600f614c8c185963a15496
e339b5d1dd263efc77585224c47598734560c004
0c6f44d54aaff53e0074028677c8cf3f0698167e
8711acd14e6f8568c389b68d26744c0a9da10575
ebb0a9c3bd32b66b167ab11e507af692de85c5ad
c547ade9c3bd86229600ad12c58fa00744270164
59b8dda9e44b807003573b64901c3d5370d96557
0efea2fe227dfcf5b3e190ceb99f1024d4920f56
3286e29af9ec42e8478c5aca186756260d870616
39cad537fffbca8119e325200b8cda356a16595b
a209e74a760fbb007961f79b1ffbd5d0c40f0fd0
12537bc2d9b69b14c2d161fd6245873905690eeb
c7c19a33cf78febb0c2fb7c1b2d4f6ba8992fb84
3af228ff1e122504a144e9a03cd6397a0bfba06c
20696491cc96b7e2bd6990dc92917cb2213303db
7f831eb9d23cdfad500cd52ecfb4cdf728a50efa
eeef47c0af350a8245236554572d1f84a118410d
aa02293ac859406f20683a136756565ae2f9ad0f
43ad1b92bb732cd9a61d620ba8fed3933baffcb9
4a5350a6899b63cda5f92bfb54b7842bdbcb14e7
23a7e64f432d6b6a06f96b8d768a46c55d5a8aac
afe497f5cc75e3124ae4cf0bc73b9e0fe4aef175
29c5f29ea9181f4d67204f6a1752f665616a709b
e7963644dc8975af8471f84496df6559a64c6306
3eadbcf2582670d8002aa5b617db9f395a14cb83
5390b65f1f2f82d87ef54813bfd68386843b5212
dfeb22bedf9cd56fd03a7d788b901eab5c3be57c
3d3cc1cfab1d8122a7f37e6653de4d9bf374871d
a2f876f50f4c36d2744315f369442928fb9e65b3
7de8028331b79131a391daed2cf35674b063e458
3cc16e6117efdeb6a925f807c1ab4ff88e2ae6ec
b263d15f8c5c4d055d9812f533482196372c70f4
b794237717b065dce4a7466ce5fe0291f7c39296
f54985a8fcbca1cb0519f465eb4f8181e881efe4
efd0977e95f0f9738e2ed0a26ed1d7d619b1f493
07efff06ecddc5f1805703e0e2e0b6f5e37c62a4
6a5f5749891b6b8ff0adfab2c1a7c934a07bc0b7
1a2a50ef64961ad77c859e483eecea4997b50cc5
86958950f4cea17f2b9bde328748ac8febbde2dd
d305b2624f0e9f6144e6f588079b86dec790668e
7d8d75c531a088c2c5f63700720d18fbc63c0aaf
80a8e55f6893267b0b9d5fd81d6c4ccd605b1725
c2013d9472f789c5a853b2dd5ff1ef9563514961
720731bfcf2d03a0e3d36d7aa6f87de85f733387
c582d41fbac039870fe49c2a0af14bbfb5a2b79a
18b43ead115a88e39afc89d20d81a58b26b8df6f
6a4f35bedcf410d4a929d4b94cf40b4c895dd330
32c7c7fa78ebaf7fe921919bb1ef7d06547881d6
221209c7e2d510d3d16aa0fd4f5640c0173ab8a2
41fb2c65ca3a8ef1300e5d8f267d07081c3243a0
5d652450a98b73f6e0c6bd14ea6392f515cbada0
993e7d489e58355ed30325ef26299da297e2a837
b1fa5fecea66393635cbe946037a9ac2be6dd4fc
621169045393dab602e09289978816d8c2ee6fbf
7bc98695698f6526d93dc74bb77cd95eb8d080e7
3a2e6d92efa0786025f3d91f1196d436fafeb520
3861c1caa3ae428212a50456cb5f236b7802d489
e6df222b7e7d92b0aeaae19b301d11f79c59042e
6a863cf9bf3d30c53eb8d56f41b1327da67b147d
38f3909f597c9138f0da150a65d14c78abbea5b6
70c51554a2532eeed0d20af880ff2629ed909967
bab4cba7117f322528f91f5850a156b9b8aabe25
5c87652ce632f3bfe685b4e4ad1472128d4de1f1
9b4ff7a315f2de3bdb75b0270db345131e670794
7cd0723673f70832cc8bbc74df1f1217963ef30f
39124dbb46615da1a79b13239ae0f93e6ed66a78
888b228cf1e9cdab19c0eb5b81f49b35bf01fac4
6e390942017b94a3458b2239689beb850af4e95e
f9394c2b2c4dbfe42c5e1aaa5bd59da59192f062
ed1debaf7306633361c554cbf6be7f01bbe44cb3
e2bfc69c8c9872cc543493693b9508c6c04c4cfe
e3d3f3745b77e488874bd735fa5b7746391fa79a
90670cb5145e4c348ad8b1274b47f8bee1d120c6
119b31d8f83af5992f3672544263e32dab1d5ea0
9425db108f833a5009513e0b891b5f5e570aca3f
d18488518b0f2b1e98fd71ba3abc06b3c71d2ab6
092fe282bad7efe3724f313325312f391f833757
45e01a59d193e661cf3f6341651bd6e1c58f9135
ac0b415ae9f22ef3f16cb7a9c5596b4db3010717
4b21562bd66bbae57109ef7b9f8891ee7bb08e7d
3910d67aa4fd4ef47ddea734c85916faf5a38b22
e22ac137f69202d90f74c605b6e1f64548d6f16b
1c5db17cdd617cc24c4e0d43cdd84210ee0a8bfb
e48494e1be82076b10b75efb361c05f6faa8b4e8
deccd908551da461dfc9c844198c49ae8667e886
4e3acd86a591e38bd9f609e258a65b69d81da64b
1f01599c3610474acb1047840410f50d28424c45
e23e4776edaf0ac33e42dc8f3326e5a21a9585b7
0ecfec1a9e2f8ab7744d868139cad0c5a54ad2b6
c6fd644de6745aed24268d695c3e45eb2f3ec6f1
a7b124da5d8031e5fe55e013fd517d436a0a2a33
e52915a4e6ff133e4f64b861cb45343ab41ceb58
891582a011126c70950688578e2930720f911b92
d468ccda1858307d8d46bdbd8f09fd7aca2fd496
13aae8d672947ace4a7e1d1bb0d7862eeaa24402
81b7592096f3822604f7b52f1fe5c94b99d7ce77
44d9b09407bf0fd073af2293ab596d34707a81d1
6d6974f33dc76d116f28f43fcfe2a05a79799778
815f20ac5f7b4512e21dcaac710df34bb13c8cbe
67cc1eb73cad54a931ef69ac54811e6d96fd2556
df18044df7b85d38b595c8d02edd373409ff7e85
6ac68760ab8b8606026dfab63f7e7ebc2aceceba
7c66b1e1c3c7a60dcb7f1f4430a0b031383c20bb
47d2facd5021743ecee03017a2321225f881df9a
6d7bdf39d075526be8936c95e174cbf5bd3dc357
fbf088309cbe53b6c13e8ded1252e49322fa6baa
a3f1f4b2eff7aa554bbce066352213a94bc23553
9c77781e62cb47a3efa988964eed7f24ab9fa010
17bf7f08edcef0cfa4155cfc4343ab89fa25d48e
f0f4517c3316e369e2ac6614dd8f4703fc0bf113
44144fa75d3d2588588951a872782dc4853d5646
b58198ef7c61b07359659a4470add0cace5b36f9
d774d746e988022d4594093d86e90b6043a2a42d
0ad3c8144d1c6dc9bea058abeebf7ebd8c5c3ebd
2aa4625f24d9bd0106151d728d688a3633e7ada1
ba7c40303094c769cb40ce0172c5b650956cb52f
372ae0b848fc4a420b359e4925556bed11a560c2
8e1e7b27ac7e068d2def5ce0b83cdabb7fbf841f
a21114719bd837717a2d732722c22dd4e94ae550
7cb22c73264bb2261cf4881ef3a4542a06672ea8
56f0d17812cd07031e82ad791db27b0178c7710e
1c8a047b82d4308b13e801af96ebc5355e606259
5f264e09a23ae80b4a794510b097b5bcb8e11d6d
6b5fd8ebf8ed53f59dcf17f1359918e455d8da34
64e9537e88301ad317de53d6b233d19b8bc57fd6
16d42344484dec9a648018265b08493d51d61857
f1ceebd026fd7e179a3d530307e293196d0755aa
11c9047fce6a1a29c87e8571b545cdd457e934b9
f3022bacc41301885ce647a0af00bff604456392
53626bc663c3af33f9e419b426bde958025846ce
f622519a14952da1986fceed6cdf55f5debfbae2
b3811c45d477fd0bc6dea797eea2b3f95dea5260
b635923aa4622f0c25bd68632a9b1659eee45cfb
99ac67fc2789cef08e3007d850687e6a65a4c727
1b5621eef846c5a0970af436e1c50cc1e880b5ba
1269761d3c154c954c6e54fdba5499eeca501249
0d4229b4744b93e4c01561dbc41447d9c21c58ea
efffb05d2241dbe32ffbc98abac7cce579df1560
ff3a197753b50902e904bea267c100bdeab74f7a
6adbbb0dc7f9efd354e61524ecc46b62e43da0a9
0c299dc7ac37b125d2c3b6e0723f0aee8afc649c
1ff226ce60889808a2788702e0cf8fadfec49122
89e794377f1dda5042c8feb5ef1ed90b0f923b1a
d8edc99694c58f292e76412cd6f911f24045f5d7
c8ea4bff4ab37d3a12af317ce91fe1b0ba19d10b
b303e20416c97c51968d78ffac98ef246e088491
dabfd3c166297dfc9710ba9cc33d238e53893ea5
13883d53b1c05cd2e77e6c30ad38ea5ddb0385f9
90d40d3fafbb2599e7b75d9a2dea34b3a316b60c
d0408cdc941b32bf3368712bc48adc06bde18538
d59117142a1e83a7bf77dbf7ebe8419551985cf9
9c06f7c45ccd2c587754c7efefcc6fdc7b410a48
8b45473e56fb6d8a41af9418950cbbfb17645b1e
771611b832eec4bd683edb5073c7611a09424b7f
7b8b4cff921ca601f71747f266c73d767cbe7cd8
2f1f9e123aef0b97649d0b594fe6e6524c87f7bd
7705211354aa59832085f2c818c4d89e660b8667
d898c7b82f5f5266e079a68b919007b73d051ebb
ec1b5884b154c7215e1f5eeae6f3bd7a9d820af1
e555e7570e9de0c3a8053359a22d15ce52aec303
72a7c4c18eb3d479d01cd465f1ad82b28e760ac6
91cf90892833f1ba38d6ec9a847c13f3ca043abf
376dfcfd93a314f919fc53289df69f4c6690d00c
65f7bc86996dea9130791a957cafd726e5b83652
c2c1ef40f8c27582577a6e257f02abc5337a3ffd
7590e1126b8a466f7b2a4cb7601158e7d6829388
af74f99d1224408c01e4020ef49f0e489158fb87
9991bd9de6d4787198567eafd4d9969db52dde67
64bec985f944e2907e039b2a6ff6e2820c28323a
6b12edecdafd07a16ef65f3718170b17cfa7c363
92e24910478e5f0fdd1df0dd6fa83430a71f0672
8c3fa6f5fd22b1a91a4617b23cd97154fadcd6ee
25e234ec9e8b39e5e2f67a4c220483afd75d4838
70cc4652aaf89ec5ad111135a0d958f9a8ca21f2
938f889253ee5ea7fe62385a451c2c86cd5837bc
e7a59ec9e5f882950518ca495eb12928083f9041
419b5a206d4b7dff3bb3993eb8a1968051619d47
8e7816fd6d669bd6cd34206597b4f836750e2e37
b03dd464c22bbd35014943f5f3a6fbe313789bf1
4758a6011eb11ac3eda8312f2d652eb7e0db2842
3b93e92dd918120be7b0b9f86583e401ad45f167
56601eb4df158743b79c32f56fdad496736aab68
6fca02477db0a4b8f2e28d35cbb4dce40a96a4db
245a378edcf8684baf9939717c79f48966cc145d
64c3a75be023531af9ab4552f11b8c8b8f2940c4
9d3eb86af1190857867f21853895fb370fb7ea3e
8b48c19b8fa6d6d478d36c5b0e517bf9f6527fb1
585ff478f0b504b03cf18732c48483f9b9e0178b
8c342d137d2739c66d723ae78cd1a65f047a944c
c2ed5f95a5f62703d20151a48eb7189c26388add
a0369d171b8cefb9a8854be3b78ce399555ebad6
987c451e444adc65c7f28e0d7351e778567816cd
b54d497a694a33a3e99d475f24dc68f086b5e5d8
ba271335a19d66caa30bddd538530ced3002eca8
a0d6028bfa4689127ab6cab28f27ded35be25489
0a34f80eff9711ce420cb029195beb987c747b0f
3d5fb6b34a92ea11aa0d1793643de0a95d6b1096
591201e25e827331ef79d20bb9cba168970f8483
ac2a3fd9810ccb80ef53d6055c8806fc9df858d1
e8dec5858593d39f9bea91fab3fb2d7bf92971bc
85fe38a4bcf1472fbf45714dda6746e35173bff5
5f57a6158f041e29a963d23a8e1b03c00da493b4
73bc832ed98f2dda21efe46d9aeab508b0263a26
607f2d063295650392af42853c54fc61a961a9ce
5827160ea5f0d662bd751b1c4c7394efc621f972
3f24f22f3bfc23ba4730b6635c0758b18fd0a7fa
946347510382d58586930838b2782498187ddd4e
6c1d87ac01c98cdbe1e2b79098dd03dc7a697826
f45ef489eb5b7379a83e77b92467c084790c11f1
b33fb6febd15ec602c495b575246f1b3f46c6d16
0a9771c02aa61b0605ec3ce311591fbb711801e9
5a3af6e908267bf485b60a2e47bde80db4895c0a
edb686635385dababe29a8750f4743d9db65e69f
63776de0e4f0201d9ec91913073dc95f98b70f4c
d70c2594cbda2fe9588b5b738662beaffeaec717
65d16abe80cb86e793af7d46dd359382b5830620
e248c5b4870f230eeee283859c1df8efe9503c01
2756423015d199662f3f3049b11a6910c6ba1238
c35be92a25888312b067f8b204cc4690c379a7bf
79131730bf954bdc11c22ea931be2abb29fbc1c9
83e07cfb0705bd5a53ef98816ed68caccf188f50
feafc9ef264697c17cc85154beb78a3b8cd47a15
a587c85ca6c6d060ebf67ae9d8f08e413feb5e65
8d241ff861875a2010ad5eea89dbb50d0c094009
e7695fc893d321ad1fc7feabe80c044bb74b561c
18672af8bb756fa4e9e61b2369c2651531f41d46
3f3e27e10fe12501a12a563ebdc57601e912f487
5ca875f357a20fcdfb6f21c6b8f5ccd8b50ca468
696a3d7814a232b6fc53da3276cd91c99ce7d8e6
d40c37c24948236e65e045dbd58a53a8a69e64b4
ba641f7efda85a52ea9052611d4f58f5bd622c86
67f1110b15d5f0affe8a23110e5867514888e328
4221af6b21b7e0302aaf369c334fff0bdaa0de22
25fa86b7ad26793ac19b60c9335ba60c639b94ba
e924495544c8ff9c8cd2da8387bd870ae360b6bb
1c69be17e8182e73fdc46bd31d3a735868a8890c
ce3c85f117339280c9775a7b0bc9b81ae97bee4c
560a173de6d38617fae77c00bf1f906111f97744
a474c86569e7bb012fcbd13aba4d5b3c58cab8a1
fd0515c4eae1b7debd0f422aa982a31d5183da68
72c7a2a098cb125b7014c1d5bee7542017ed8854
f8a9d5e369ee0bb68ca5741246ed865f6bd33ac1
46dc952f405177524e0937a0d36968868bb1d01d
6e45b68c9d5b79363b72155fefaa0d09e4c8b763
ae16cf5310909b5730496a2779ad337cf4bc13ca
33092a7732e9a3a421826e2869cbc5823f4e7115
6e33aa633bf2a4c8c60378fdf61fe059fbea0568
6d54dfcf75d9245631ddf167d6c51895b2b540dd
2d27c40ec0943138b576b47fc8f616201c7e7242
071a17096cdad84fa0fd478379b27a1a9b42af46
c4a86621edd525df242e0dd9e4f3077c671487b2
c64bf5e879356d8e335308dd6832822da7a96d0d
4642a9afb7fb1119c03978242c2c7f18821429b6
72e47fb13c82b39e16b8390f9c8dc62b1640b91e
68cf6de292f9c5a0bf906a9b4b97f8892cdc6649
8d0c53f23b2e45eaff2a98523a852a67fb715d88
15d71d99cbd3a317788cb5d7d2998b721e4f1a2e
4cc896f8820ddc44315b8d613a111514b957e7a5
11fe890472e950ce2ca3cb1bb3e916e0b03e57c5
198665dd290d2b9bc19d374adb89858938985021
86a614dc8361a59d899c2fbbeae849e313799897
7984f384f5eeb83470c113eb7c9d7478929e2048
23ea3e26e5c9bbbdf9e7b1ab2fd81226b20371c5
ee4653a507a6236876d278cebcd78ee92f483ca5
676807a0f4e190a16b7b2e04bf7241ceade29a86
3eddf960d5e7a92085ed37c6531ef699a41a00f8
317f76553002c34cd91bfc7bbaaf145949118015
96b0f9feff21aafc7081f740ffcce34fd5e081c4
1caf0cea1b538c6dda403e953ef7949c87280311
a00080c1e8e02e6cb308dbdcc23543de7fde7a07
f6ea06eb20236853767bee39c3f3fa03e97a2eab
3225bfe3e2c3057e5063261e0841a6752ec4df38
ca7c4549421abdcb64de5930b3aa7182b9f58eb2
fe476810512878986a66fd088d75bf6c7bccb658
602fb360c52c0f24890aa30630595c871d763c52
411c522876238ace730efff39907374c3ae2476e
8b29f48dabbeb61a5552b9951180896357f1d0b2
f0b2a0a7daa08da9a45bff7bbf6e436f66c5a335
77699d5f6b5b1b2d51bcfa23527b120648815c0b
f8383d809d76eb1d650b8f2617279e48c0ebbb1c
dfe08f2b5291ec8af99026d6f9f4df40c32d93b0
0196f69447488c144a6b1169bd2b1715c3e82ffc
8e2cb10b09b3335e3db11f74e9b4c42bf2514b7f
e634fac7b201a386fda65e62b2448434f77927b6
4add1728f7d87687b11caf6802f8a12e0be6806b
1565606a212601481594fcbdfef637daeb0ec0e8
80610fba7b1161549bb68f27f8ffd02fab16264c
ab943b05f47581e615a01a8f8954d29b69866aa1
8563c5f7183c36011be0c7e5dbb1a3588a050b2b
dfefc2a5659bded7a8302006aea24d5fe36c16ae
ee8482c921cde2b028ab532e88f73e1f56a1e58e
99d2ad62a8788217a97e71efe87a4bb2fe77408d
be3b4c4355fab84caf7ffe10044a2b0ccc8524ea
1bc982cff0a52566f8188780c74087e75804e738
a5159306be5e4050cba043caedddd907df30c8f0
8ea07d088178ba3815bf46018738b25a91e7657c
d55407256f5a9140adbfa6866eb77010882e9bd9
61563edaf3ade4eed45123ff25da2a0e63cc12a5
8e4d59a5b042051641e3be557fdb642285c9b898
f368af9e22eb6a9ee6774f0902b550e3e5e0ecae
1207c505f55758c9182d7d53043fd5cecacbe980
f7553c187c335afc20b3741b34c633367f3e4389
4cf66d6d6c679caef7c499210c6efa6dd035de14
f59719978167bbe44e738f99d25cfa9d6b7d6f24
bf3ae75d317f12239ada186002848864b66c24f7
34c8c03c0d5b28698b4479c867690bb96d53199c
806cfa0a76f735b98a95ad68c4946c092f720cb6
82262497339a8bc75b092f12810ffb0a58a52738
a51a0a03a2a7a799c3e9fb1354ad7f4a6cac4627
0b1b4905ce576fa6d162b3e32fba43fd79ef04a1
26343bd0985529c9722c9b668fcdfd4e63e4b0bb
12c6dc92de6561476d5256d0697a107ea76503b5
e3318cdbd383a8e4215007269a1c34de00e6a7dc
9c91132114d3c6e12ca8eca024503c5650d36eae
527b1ee04f71418adfaf06016252ba6ed4a4a50e
8363f8acaaff4caa6ec6152d9cdc3a2a9c7e8f61
4bf436ba77f6f83bb348fd84db97a72af08d3ba1
bb987532d4d2b726b8852efd8424a69064b2bb1f
18b34458a30ee7aba992f9309eb42ac8f31b2bc6
09c208e4425259e3819b0772f2e77f3ffeab53ca
5a2f88ff770871f4c97931ac82758ed1bf62a837
070338f5823e01a1fe0168047d576f6ec98064b5
d5ccf6a8261e25142bfec99f3b69a7aade9d034c
85ca0479d5da65f193487b541fa89a55a45dffb8
b4430967341e57989cc9dabbbceba2d196d4fa51
81b7772791c317e05b2b8da407083564e179228b
351b830508144cf14afe53b796f762b4be7a3c1b
d5f47a1ed7b06c8196cb4aa5f01addfd155b1629
a41293ff38ec51f4d7dde235eb86f81666399723
29a5a616c91b161bc183c4a4898e15f4b19d7270
bf2d6933cd928d0140865eba0346007fd9d39792
0cd7df2210ab397f01583d32b3c81e5fc4875b0a
1b350ef1a68850eefab480df444df458a25b94c1
ddef7aa592cc378a644b81bac461fceafc97e792
4bff2c394d020cdf8674f7a8de6cafcf63267308
1d9c4793f7d3fc69d634781e765624b6820720ee
ad0f7d8fda2b64f72a46997f35d5d4dac1b20427
bc527bfb7bf7af5109984016f2326ef9b4c7f8d1
71b8ee5ec29ae2cf6b841ea2f09e85d20e6ccc61
a24bcb70db00201647686022b3214879b585494d
05a27022f320ba202a660099883bfa213241f722
b391838459f51f032d24a4f2bb9274a5b91bd89d
0ebca1cecebe9594daa881cc5df00c237938078d
f945d9118e6aa69b19fd340696052df99a23b475
fc2f267e1bc10fa94cc895d64efb8ea593097919
d5313e17b16dac0b1bd012e798f3c08b309bceb7
e10686cc94288931cba1f9e6e5eeebe91b5f16eb
116d2eb89adb625debe00014afb18077d78b36cc
1a4a4692c8df11d3a7e2f79175a15ea997482933
8ec2741bdb0ea9a1f385afbcafd757ed39fc4e27
bd5f77b1fc66f9f42c96a01b4e785891db494308
15bb4461c8c1fa118fb6b0f16de1f51c0b042836
243ada978b48cf56e27388e1c15fbc119740b6fc
56eb6d1073caec2c9770af952500cf2160b6f67a
515b51019af80054d1fe149929a9c02aabaff6c5
e2976c703f26f9b7cb798561a6976692dcdce8dd
407a7177f9380d8e76747cb00fc8479408ea1a68
931ed72b335e20e23cd4aaa8104cd97082d3530d
baa4465e4ee2adebfa8b0004b84008868747f535
11bf6a0c2f4b08bef1402c946a112ef35bddb98a
263f0c81759988f020dff8d2db22d1baf78acd30
90c1a0e2d7491fc47d6949d05e2fea0903da132b
a7fe51923aca744af8e267b6b035072d4dc79517
1558e52cf8543696740b9db9c66a925ad149bc97
3bbadc0343729a3bf0c3fd4a913e95986efcac6f
e941ad24fb160e10f799f67158e4e09cbb2e31ef
c0437ef35f1cefd0378e044d3305366f9314c316
9582c85f65f87cd76925196678b8e97775589f6c
e24f770862f70cdeecbe5ebcb45e0db55d1a7a0b
186643e416d1a046346b60ad1ce4c9ea8f5ae65d
08d2da85bd098bf671b7edb3c3d5dfddb77ee6aa
b9c2dcc996ede25907ac98b6c2922ab689103856
9b597a11ce72f13dd81a3a63e76ef097c39a053f
0a5e189d9e908225c4f0e949851988317472bf7b
f36518093b85b840ba2b02272e63f75c8e99b865
cb09e7eb4ec77ce0201ef06a34e2a754626b0eb7
2a5322e386d1679f7d7c57ba817ef4fa9be860eb
a84bdad2e7b81aac142fbba660a845520f4df5e4
cf76e1e4198085f9a8cfcbbc5fcf83d1557324dd
fa044960f639c9a6690dc08f24d2f9f57170b598
d3ed5fa4418aed750d0e1bf51b8de77284952952
149f64772294702e9d7c173f39bad6c7b354d60a
a9e191efe40179f62553c1324463791e368ad51f
bd09a2c9d69e218d4d3f03f8feed51ccb7a150e3
ab531dc6fb5d3550b5a923bb84295e9705019cad
b11b5f4f625f93bb6f1d20b589a63e0aeeb13984
2bc3e7a3cc6bf79766f26d3e4ebe1287c3ef29b4
cbdf9562985924407292b9192b8bc6d45fab73fa
b413d65026691eaef94eeffb51d4dcee9022e320
8dac66ea1f046e3c10ad8178ca3e3378462b83c6
3f331e187f923f4dd7105a326bc72aa385cb96ce
07eb25e3c6bd1310a2e7c2f930bf8c98fdd8cc45
ac9dacaeff61e961e47197e4182bb77af31067c6
555f07696519cb0b88620ce91943951775082fbd
d679eaf1d714e7f00110850f2679f97d6d35a981
23c4b3cdf37c1da1de0d2a26cfc0e2f3dd970053
27f70809b1392b94297f10246c06c0fb0b6a6f5a
2dc8c144f843b4d350081824b746450634c89e45
e212240f8357e8d7b9bf3371205ee1c8ac42f87a
5af7a6ffcf32398f7616dedfd265c12a665a24dd
bf1105bd325f48e140780769867d122a23cb2d28
dc92e02dac3adc6d36f4204cf372d4d6d08acb50
7697958a6713d0de0d511d4c99554bbe667fb07f
b2cb36647e6a50027b0a5b9ef4bed7fa82e001b7
4a46ebeef0e4adff02cd5197bd23f9586b251150
b6e48df0aad18dd7dca5a2bfb264d2631a4b9638
3f617ff5854d2fe925c28481844421516d8603f1
01d40e84c8ec8227b6a2fe10da73e4a975a77693
dd52991e0937a85501ed20f63221f5f1fadfd2c2
5d89b17f7f897b7868ddb1498bbb139019dbcc09
b5e0bf86a7bb35e360880b428f7a430a833e07a5
7bea69ba2fbba6b7fdb6332babffce6cdcae7a29
4d7ef92ece0015d531e74c99ce5c7e388617c10f
aa52b48aa7712f1a21d31fb1f756f360e9a1773d
35ba412559bc57eba00ea0cdde4b238c105b9cc2
dfe2dd513ca032111cbc88afc6f6c991971a014a
046a16e5795b65522cea5b4ba77db6a06ce97d5e
4b1cf9f8aca2d028e72e7a1e1f6d08147c11ea06
8c8c02f454a1bf7c3320646858575fc7cd06daa9
693adeeb9b964605d5648dc061cd997353519038
69db194a197b45a4c0ed191210cf0e858c6a109e
eafd7df88a5c0d55c6c1ad3f7eb239d8028b2dfe
65cf0cf86278475544d2a57bfac33c198717e70c
4a558b768f3ca25b65824d04046009560ee65903
3a415e57f71291a41f6ca55e840516be12f5454f
bdcfee6485e7434b88048857711fe021818ba68a
c25c062f9e56ed304e34a1068b8bbe5f07f7937d
fe850f1e7e0a23d810d6feb933c21a90178eb8d0
924f0368b8759e744d3e9957199a5c2d487c7cad
483a847e39e8072746539b953f5655dae09d5853
2784e4145eb8799374327f123906bc017cb6de69
5718b4f340098ce64f2390e1111100ebe1d27528
ec22321814adc1f2f9a7f07e31ffacfad0d87e3c
158b6e0648720d6ff95b7b3bbe8e86cd9e123859
6e1f92f99efadfa14940ec4064f27dc844a1b86c
85be0641dd81dbcf41ec7a99577082fae06302da
6014f76fbb49c010cac3ead2929fcf74ea8c0bd8
24ef4a7fe34e26ada1f202b4c64c195508187bfd
d92fb2abe80b860fe450f3d433bd0a6672160488
ff58903a6e1da60da64440da270325e4defb3632
0189b5d47ca11303321ad69a63ced510305f4115
0b5f275347ba6166379631c27c9e04ad5a2a9578
b994e575aed1951ac4b4dd9403e22cc22085e6f0
c8a8278df23182979c338de952013babbf3f3718
e6720b7f021c55723dc31d2b542d645138445902
4f573304d50fba1a71f81965ca66146b82723d57
67d400e5368d724b3d55237fe32e7fb15bad4800
64a299bbd1fd6ff8fbd151308c7ab4810a5181c6
a5a71b5bb9b00fea7ae34f16e0e6e9723fd83174
040aae832cfedaacec931846d9a52d8aca344a02
8d22af639db14401fa10aea752f2d02e400d8067
e1d4e86e680cf16e62e9f9be05ac3d661196dc29
98c71891d373d82c96961fb05340ff349a4b43eb
27d3b183889257bbc9683fc70ff24863d572c5a3
103c5a48c3ec40bece0fc003683fc6e995adf8cc
12c00ec56632f3ec977c4e3f766a103922c61cf1
ba06dbdcd8e7ef140580f78478fe6fb0e94284d9
7b1d227be612c746a4663944cfaf5f480ef93259
4a0fe7b94b17f0f366cffe0a43e120e1274c8de8
f0612ca207495344a49d687ee1307bd6f87b59dc
d4bcb6ea9778afed3ad1c9afbfdc000d20c8bb0c
6563b8519b7d656d9b4eb6c42b8c4d7b6a27c866
313b21437edda819a183c9e72014915e36e391d3
4d1f83e4cbb01c4ee51ddbc407eeef0ef0692703
6fa775c6c2f46c440a82b587bdf4c7aecd3dbf01
6d01ee547beb054f38d0e15272bff58d5811f51d
0cc4ed6b3a78e7d3fc50b60f0836cbc9399cbf3d
3f0951319e910a5e5b0467ce0a5e008f7a1fbc14
6820b92ea1f1855363f193c3673a5ceb874e076c
1c3f6094e6f4c50525e3e4316efbf893fd933c0d
136528a821e4796c9c7a59e1136920bcb297b359
68a3ec55dd7a9eed71c0a2d6efc2c7112fbf34bd
60d603389bd4481bee2dd4a1ff0eef98978a7988
47e5a01854969a82d6eb062873a86b750fa3471e
6981441d5fe80ff8cf1482cf640ea83d4bca7d31
8cfea8084fcefad28ea457b1a4dff734106f5b1b
cdf3b2b9c8923f864e4f904a2b16a0480d7c0f34
2fd1299677336bde28e8e463d5f6aba342cf4322
06f1294ea5d89aa4806066eaffdfde55b4ee0109
4e3e59c6dac6f526a6ab323c468f3e5a21c2b84b
d53a229e1d7a6cb8ba166816eab7d4c338079599
203306b5c058a94c6c541faf64ed78de1c90c81f
112d1577ad748734139d08fe665f069d85d8c1ce
8cadf9f4d773be3544db6cf577ad9104d1509f50
e5790cf24a377e7ea4bf787e4234ee2531cac169
d0a13ad63ff623256d500ca3ec8166450adabe8a
69510a3a71de8666889ecc577aadfa94ddbd8d98
5302093d8cf79ba5a7daf5dfeb2bffe84be76982
67a7448d90f5958b6c50728cdc806c91d3258916
04dfdfcfae87f450b2dee73ef9d0c12b9680fe19
5f68f1d90bb08eceda0b28b0fa9efeb657d73c55
84608c02ee6d5473d6aa4534bac8f7852f29e9e6
e93d7ac8678ab372bf206f939d3821705780948a
2042004647aeb7f681ecc07199656d2fb3ab49bf
d0a315c93f9d732400174911d373be8870b45bb1
82894d8e311ec4d72916d507939798ba07e06304
fb77e40f7571c3b46825d2183566a115f254b805
9f787af1dcbe2a6428ef9bb9c419a1029ef5d6fd
e984458b449b241668b4f146cde718307105b74a
2c5e94d6faa7e70437f61cf4af1be960d46e09f2
a1a4765b2c0f21db2b44d03cbc376e1f0a211e57
d6891e0642a600a0a78596a3e06412cf1847d7be
f2b6affc65f0cdb13437f5eede6851a3aac7cb8a
0f5daf5ed73993c74ef36d92eea1c6e253ce0e00
308a0d2c10bd3faade4e97e3dd3760f45b986f6b
5bd0f2938a3c6b524d2858229fdcec3683a2ff9c
84426c930ec78087b377ad55df52406d7f745494
cc2f64ceb8d8c076d296e49c7c59304dd96cec56
b3d14129f5f429ae00d4dd8a756dce28aecfa59d
3d112881ed24937b037471136342800ded083b5e
5d28d1a9c141e7c40a5366b39e4eb978cca09024
4f5656d72aabe7ee73368549f6f456acf391cd47
5b0bdc4ab78902d2f5e7ea2c6e1d83ce1c8c6f28
a19b7c1057de7e8a0967c8336344ac4785634ec5
7d10ca881b64dea69d5ed63a8de9a0327d3d18d4
13155a14765bd8830485e80f323deeaf13f744b3
141022e0a9ddd50c6bb810b5aee70deb46831810
b743d339e42e6a46aab21f5796eb2a3356d305e2
8193d4dfb6f60edb34983237e4599b9c9d935234
b0250ca7ad5bf1fe9f5e83940fe775449287fba8
0428664ab6f7a63cd5cd3a02724a63ef77ba792c
a9cd8e1a33d2990224bfe6f6cccba84a10b94fba
6d9631e9a3cd53a1bd0c4f005f4c0d752997c7b5
94677004dda0e9464ee4a02ad55240cc211b7a7b
ddd7e1a63915e9f557b4f3e8875e365ae0e59414
cd4bade874d052ffc39c5ae608801b717a22d43f
55102a5c6e61c224ed2734ee752b9daf1d6754c7
3330cd4b09328d68554a00c4937409cc27edd70d
97083f1101237822832a63f70b080d108ca2025d
789363badfeb9870acb9b8bb7d5eb4c9ae9b21c3
c1fe0a8f87de44990bb2f0b194d57e74372e9c39
ede39c1c65bacad98051d3302bd2968fda88eb37
77eef4b76076bc99bed66ed1f37b75d70d606b52
2606f45256a084beeac728f39b58c75e1c60d071
a7393469bd570d3bfc7a69dcf3603e235b05aa83
963a00158d0acd1a973b92cf5ff4b414ccf0b27e
3c78d51678e8b9d4f7205b6a65579084a70279b9
18d1933f83325535057540e883d65c7f19426498
eaf572bb43b2d1b9f0b1de8340df34c03ce549e5
8e8a5e7ba03a4b330383e80c6c145057bf04ac7c
b30170e5810f8128eb10481a710167157965b0a4
8472b0a29b70e67acb7c5303f7a05e2ff7913acf
497d2854c29862d38ee3b7eb5f4c58f3b0744223
534d8da4f6fb38a93187b42846b1a2412f75f845
03653d2c595587d530301b7f40c64f436a3be880
99f506c1aa9ff440cc7ed8cea98aa244f4a2c396
7f37710151ddd9fb5bd140b0cbd0716384e51b01
61f21018f8a67b0d96d5739d2d5345f600d5dffa
e4ea45a2b42ac362bdcf9694b673db92767c59c2
b9de31cdfbd836d768280b1037aa0b8f74aef15f
50d783b9ec0698b9e6b03e1a73a9ce19f4e956fc
e6d652957e8a256df65d7cd1522370bf75381396
78dfcfbb2eed1393133d5921185a6ea937cc042f
f84dca18a803fd08f513e0effe798ee969147e6c
d50fcb751b3204c0899024f379c8fdad71e8847f
9ef3acaccf2cb3e5a00112ee5eb1dc1f6c636ccc
c31d16d70a21bde2891f0fc2cdfca498534e6b44
2ff4db8d72f9ed0a0718d296e8a80fa42e1d121f
60191652b277e152d82593afb302a354d945382a
ef45c18bb10a5d6b460e9b5530a0ef8ea5d974fb
02419401d001aa96043a23800cf40c3d8feb7d95
b889f530947c52b49ce70e9a98c821d2e3616185
511608bce375fddb36707b9cb59b0ab1ba832bc8
d5885a20ad410ff566244545540e426f41cddd6f
71a8dac2c8a11be2d8fd2a878d2f6444b2145409
0d3eea80827d1b160db1293184a40507b56d68f0
10468bd526ad1f3b05a01c7888a4977a18d01d5b
85a14b2e3f24a01ebffa8137e5885e797a8e8156
f31d9e0cb248316dc7df03cb03c4cc8d24c61d46
073419db33b80f1a665f506578ee28c2dea044fd
709c663af0ab2d1b5e96128b285501d9b66eaca1
657e0a612b527c6d5595b17a6e70a9fc734b97b4
797449c8add4cf28176531c30001205167cace83
cdc2660199803daafb7bd376e9f365f99843b6f8
381b7e1d156af51a21e61e0c410947b7dbe4dad4
65111e43a4cab34d50cb4d9bfdb5f033a00a0335
888523e47b2d6b3531633b7dd57720b32e7d4f76
a4931597c7b805e9ab61d273776af4a4cad4155d
d9a7f601753e93cfeeb5e4c8a40552dd0e0917cc
22110be6c1d6203957877462fbdd64704c99f64d
4366b0be446ec385398ee041487a1dab7d1668a3
bd13ec5dd9d874c32c84ff778cc803a614e146e0
bd5e89339fcbb5ef36c5b78a842fa4d2896e283f
43275b3e104f1ff0b1dbe1f0d454b393c6a5718b
437247aa0c7086594ba6bd62c806c67e65f91149
b942837650846f94e01ec0c07fbd61b50e33dcd9
bab5bd50971af6954c77e7fb6711957b7d87601f
fa1093d0bedff31c1b19bf857b14e0f8de894a93
ae5fd131bb303200997ddccfca40fb452344f2d0
c6b101a9fe86d073f48b3e785ad1030953482169
f348dd1855dc93695b371fd09533bc5215264b17
43193f95e6db15f8da2d415725bbff4e4aba5907
5b7bff2f24d9f075550f27a5753ee51cfbd326fd
2c66b5d7324d218965e13f0a8be9a5e216833f2c
34dedc80a3eb1dcecd52e56864a840b752e67edf
27f01ba989f561d51c9168bfe2ffd31b5406518d
f9617a2c405a8a238d30a28dfddebb10adb184f3
9e046caf7cf2c3f11c1fbece221ce972b9b05e8b
b3648857d1e5d318c7b003e44183102c59010b45
fcd8ea440ddbbff00c3eb0424a76fc4292123cff
7fbe2cdff5c76c1174c4a50e0c54314c0ee78a11
ce42780efb07908f593765445f7f28e359c152c4
09cc8a6d71356274db6ae881ee34e10398a599f2
beeab8f5c8f76cc4bc6fcf4cb05b64cc753f61d1
536733319c1624bfe53dd89108026de9fc0dcb03
6ee3070b414e72147b9c566c7fb14b16d918bdea
4065df8db2c297c71fc8f39723043ecd0d2f1d95
86ceda08c58ba09a0905bb67dee9934131c5ca5c
9f2fb8518c43464752b6119e7b3e5a34d912daf5
0406b420eb00467ecd4a8eec2f1238124b6c1229
2dfbe2ecdc08ea466ee19b0f9ba8326718c19045
58bf0a2636ef70b654d2065774c0d55f3bc59148
2f660edf82c0a86282886f3d22b347b45d23dd5f
cb002f6f940a59cdbc432fc0bf4010758571bed0
49061d714cbb1f92448e45c8bbfaf6218440609d
f4264a511046938dd307fc1d69c7933f3486064f
770d4519b5ce78cc94fb4ac62397bb30f0c3d244
a4eb5fcfb42aa12818f032523058300afab1b917
b157c5aecbac80e8404921337d7fde526c03853d
b9fc03a0a6680a0ef652475ac274bb14117f3f9d
4c8faedaa47ac95b5fccbc0e95d3b09418841320
a0f0f27d360d5e383a93e6d68de0a3a8cbbe5609
0cd8defae71b9982531814fe65487e8f5a8a64bf
f21c65d38e7c72cd4e8e2a5f851c4df53a52133c
cabdc4ee7cb51d4c04f10db2d8185506fd80c32a
091f64da0d2366ecf5727490adeb1624db8acae4
51f85ad7d4102d981a6ccc8aee9e63a21f1d9185
116bb95c3524d3998c7a675bef7548e81747f85c
8146da88b7b0d84b2325b89ed620fe390fca8fdc
afb5be8010ccd9d4b8a3dccc4f4a4a1cdfffc577
e0b764a49bedf809075fa25b6d9055b3e1136761
41eaf7cfc305b1669c08d8274ba4e0f9028ee86a
86f3c1f6ec1b6fa5e38230e1f4171d55017a3a2a
95d21208ccaaa76e7c85048f5f31b6fbe0c02bfb
7bb90e91040737314076d30c2e301f7745b9170d
7f61b554d01e83ec5783413bd3a0ada8dc334941
7ca961d5b34ee76bcbb51f80c19db65f5e4f9e81
e03c793fbb3219551733f94213adaa12a192a86b
42528e0e655cc15a09c0b0659b8766458487b820
b0be4d23b58dd712ee0f8f0eb7c1a07dcb7a673d
ca0d8fc857795b090729d0d63b02da349b6dfe4f
4cb9ad232989068f434ba6a35429d9ec809e9874
c375772e4f4051dea94de145635363c6152f1eba
6f92a5b410e80645cbc64def99ce9e87f394a469
797b8d4830a55dfb8964551f656d53ae5eb2fbf6
28498925a128c38f770ea1144c29926e25f0020f
43be55034e76b2cb5c17dff331ef73a4356f1788
da62a58ee842bc4a79bf450191ebe64f10b5cd9b
769f398328915fc4104945c358a076ba135a3ffa
fd0f4239751d4d281d9a2f6041e3c72153c0931c
8d0f0bfc3bf4044b74d5e3c3790181dfd7123c77
98d0e2af58888487071e7e411f130585c5e7b37e
336b24e6269d42b579a7ac67231076b2932cd243
20daf847323f4c949932082c7bd70adbc610d100
ab38670f59ea6389397079203615183efd5a3c54
71920295cc40a0875f2e0512526dd6a50163c822
aeabda207d8b1f20223ae1bbb1abd70a40f81c90
9adafb7a83b33d1365e15cabd0ec52f0f633e1f8
d8d46f97413875b3f783144f4d3eb80b2b83bd95
2db1cbbf9f2258d902b8d38b7b05bc9a5e3d45b6
5fa2ff82970000a27606b43112183939a3b56f13
ded7cbff3dac0783bf3e09ee718554cfbb76aea2
e4b80bd6a648bbdca63283a04566aacde6879e19
7ae497cfff4badf77c913afcae3481be3ecbd82f
d5c4cd1c253f8d9f96ac14074a58f9ac355c8e43
47cf8b0a3bdb66af45d210a8eef7558c8172e240
79c19e5855a29bf78ff0d0b9ce21be44564ed546
afc9e07630d78b1a3973476229ab15d25ff8e1e2
63afd18eddbccfcf74e125b5e50e67337606962e
8d47350eaedbaaef7feb4993011aa4c36a19cc46
f81f7e9046510b0ce9f7f1a1e197fa0ea256f9fd
ff6a660c84dc55a2b4834cbdba70df71e97de2f2
ac8bdb76d9c6079b7131f40caa7388b3a10708c3
b23ca35aa2242aae6c7a1db64fd675ab270bd2aa
29cf61c1c8873cfe7d38a2c394161e32248a94b6
55993fa1af12fff1c1e3894df61a6e5348b9efda
7d9f05eb0d34579063cd9ba7aa93e1a1f96d547e
6770a699f805530ed14cf42f40bb39cb084aeeb2
0615d10095d214900097f17b80e1efe8a497c231
e800fb4d2c22e5417cb11ac193684ad10045f407
f0b61732953143c7615daf90235513550a849c91
e9a44ebce9ae75656154e9268403dcb88fe68eca
6739f7d525ee19e7d264d671dfde5c9d43ab997d
807bcf39b52312071a86bf6730bf1956e90fa2e7
7b1e7c624712cb73b914175c0ddb67958e4389e3
6bbd37d51dcd9f9ad49654ecad3a24a2b9509273
a4ce024c693f2bc722eb5fb8040427fa38a24c17
dee153419c1c35bb050ea2a6658dc4a8235ea96b
7aa4289ea81db7a6b0f946b49baf2d9398dc49fa
d015003b76f097e8d13368a1a31ccf781fa52e50
07c29e6e72c0c664f1aef25179746220e9c216b5
279e5689b2bcd47fabc60a9e5d7d3d1d65a46746
cb32d6fdb14e567df2ca5ebdca5ac47f77d5230d
f7b9dcf654233ae13d0443ecef55555844c2e122
beb0658f09e46dd74c7e91334f9129d0fcd70ef2
600e369b2434b886e43023fc1ed1c1a6ad73fa4f
11f9bb2a59fe7bd896a4e09121d3cc8912f88ef1
6b57a429025ddeefd4f04bd577e438397d392347
6a93b1598efa7da677a3bf844faf8b44d6fcc929
3e76372569ace2df296c452eb7ef750278d4123d
f316ba194a0ba240f867e0a52655b4bf07955c74
25bcf11be79f903ccd7b75b3686ac554e587a317
9ceb05e93be85c5516a7d6082b885d33280f481f
a5f371d3d71b1cefc357a3065c966bfddd8b5200
b36d8450d6ce5f9bc8d04219dae0b81953dfd9cd
2a4376f692f32ff7f33edd8dcae62ef3f97e5717
24ff1dffdfef0cca532cc4481db70b3585e0c9c0
5c3b86f6269560ca847d960da5e7da720c8c172d
0da2d156307b078b47136141ff8d98d022188e70
6066a751af141153eec7d944519392fae6eda705
5f28611e854e8449a3301b68f26e092e26c672e8
ffc1c8042a58678d9e3870f14f529363afb8fefe
e802cb536a6ce7dc97be3d752f6caa36a603c093
6d5c46f59a55e610b9dab008552cb9fa011e5817
d3e3a8f9bac3f9b1ec3af332b3cf81a1185f71c1
c20466e55b176c73aba91936bde6e7051eb270a8
4308a7c102ea36814146e9b3589381660d83808a
94d177e2044048f849916903031f58cdf5156905
a4614f5daf18165e9690108307b259c5085c1141
42652197bbadd8f6f1b04c1223763ae3ff3f27c9
cabc22e2238c55108382b98d9d4313424b74dd1c
a8787ad569952559d4515bcd5357f131f344f81b
9fe5478560e1e65f8db06e7e6c8122de636a617a
fab055d43e66b3cde19ded4213355c5e61cd6d78
485c281dcf43c75888b6d218940adaacabb3d271
26dafb333061d5be2a58aae4f17fb59a32b8e594
9817bbe67b9037febb7c63986af9b9966bed3c33
c2c12d045c452116031e87fc185b7e3fff8ea2b3
5c136aabdb0c58f31aea88353d0e3087a27d3350
8545c9f1118548e97d5212ffea9cf2f1ba941b9e
5c893f5ef37de9913668618726bc15c15c755dae
960118c2286442e065c3893d2b352b7456031650
7890789c8d1bb4713c8e8390a531a4fdd147299e
a45ad1324b19dce0a1276a22c30083ac0bd1ec18
0cb156bc1cb15edbd219f83b4c874e7b3910bf53
7b002e6edb0b2cb6e51b4897a75266e2157757bb
6b7008dfccbfd63e61804387303e882f5b44e92d
a9f7e1bc87d3220f23a9ae97080794fbb5384f36
724e34c99227c4b27bf2144ffe9da40928529c7e
ebcff39705d505bddbc2633e865fbb9f739e62cc
c2675f88f05a227fd9fe19a9c5072446f9b9c9c7
526500a0a92020319a5d6e7bc1879522ecbcc19d
643dd3cbf147b396b6c1886d93434299e1438d00
c74b2717181178ecf3578ea4e9ca5174b2276dc2
c76a8e96f9d3018b7c056b28d5128e7c22b09259
9901fc4649a410170760895172363060e7492d43
4f5ce1cff6a7d2a1018bd81adf0d84e5bb4bf833
3a35f908a37e9095372036c329bbc51bec424219
7cdf309d315328b50a4f205c3e8cb6716c9031a2
f74275748eda052bed2166fcdea44c6552594695
13884899a1c541680c7e3678f70fbf3ef5d38ba9
0f709fcf810070dae21068b2b4166c74c0103363
7a9a034d205f36378fea450a3776f3ac13b0da49
45a871d01ce83a792283e1febf3665a4e1d4c5be
cb7bff1d32fbb385708b1385706cd0a1b640f1e7
766e7b196119034242693a6e210ba13338a2c7ee
717aa1cba8cd2cdef363297897d5b9d009ec3d8c
7d84b793374af8b2cfb4945ed94141b37513e2f8
3437cf44493fbee104ab0555dc5801a881df2f00
5015ff5fb807b085fce6f5519389fd6206af7178
2bbec519de1417d03bc78a523f618cbf36c5f786
fb4f86615c260fc0f59f7a3aba6a9fefa04bfbe5
4ef29cefb7eb782f96a9bb74c9bdddaa6b4c6f22
e82ec5f104ce090270d087ad21a10d81ba53afd3
5a061a13ec58ee60ee705c5e1f40fe84b72c291d
cc689dfd7f1d816bb3b42e004d93319ce15db850
786c8a024ef9517c3906603436314f34f468afb5
46e78b79aaf5f6af1adac1f4271077611285cd4f
f6a2a029f6951a8322ef2eddf9c787cf9d84dbf0
05df719238ea9658f5780f87d41e3f8dfc23dcf3
76769ee945277e4f6d7765836583f86609c83f1c
00d1bf825e999fb7aee3ad3a8c01ccd77fcfa505
44dfef1f1eb214b3d8ccf1f723601e5de7566e59
c9f2093e2560ce953992c7a6fa8eb354cfa51f79
7fe9d3d16d20b3ea810df9feec742f62bb084dbc
2fd5bd5764fd1e9c7289df79108fc011a98c1cb4
59fff09ba8b44fed4b072df119ee9016075505cd
f3d8a2e6e52a524bc8bf80ff229555de51f283de
8034a11fc4caddce832278651133b6c5b6cac942
e17afa80a1ab3863a309a86ee50aa667161b0180
075d619ded1b57195c177d80e207b2ef4d6a4ec8
0ea5fe0c0b344c8bc70d8ed80f669cf645c9b57d
7394fa8e5cc553f802f0c89a898c69dd238caf41
de49d4cbf6fa48692d6f3f47a81da5c08250dc89
6c325f1ffb86bd5ed9e7b638b60eb24f281a6a57
c258166833cd6288be00699545de38aa95489b2c
de8f81952d06575ff0ecc63d02fffa9659290313
62be0f64a7e56a262a015aba0ffb39bdb3e6a44c
5abb1d1c9b04425d81d2f043288f456346c6eace
ce42f3632a70256b63c2cddb99a40887530495ed
849e8e559fe50fe25517fee08b5d240cc15b2b31
6b07fba73b31fec07c5044ffdde18fa2dd73029c
e181f8668c6f3bb7af0808ff5f8ecd3261985ab1
c840211f2d8a23ec3a2111f1377ab8a181889ea6
58f9e947070a6058251ebce68f7a5bc3070a5cfe
7a2192c2ba25cdf8f373b42e105f8940ee4dd9b0
891ca4e947a3977bc7e001a130277683b7058ac2
f7147897ad3164142a81aeb9e9e7b5785f028b1b
a1a42938087bc5c29899f902f4aee27ec93181bf
55f5dbe0a7a318062dd1f3195dc1abc1383fa28e
7fafbca1ecee22dbb180790319751b01b3d0cda4
e4beb006271a5c65122fd5606b43a91b5b706f69
d00cb6a6f43f651979d2bff6cd9f20b174ff5126
d03d028f6eb42bf5fd9443d9b6b7c6ba207c5cf3
a3c7d77e2d20a4dbb3e902973a93edf1e86f0589
fc10fe065ae31adc0a25159feccc471bcadadf6f
525b4052bce980209bce782d058197a567103770
1d061fd8198b4d92db1bf921aedf8211d5090bde
b409039d4de8918a84d79ce015bdf70b1725627d
3970fe541e0dc7159a9696b229229308461b95f0
6a07fc1ca031f7cc8296b50e81524a2779a06ca3
b7fca92c7cb537c7d4297ee6ff3d190fc6301bf5
58deed21e97517ac7c09f9754c83b55f987bb554
ad4e1398a70e08911bac7c79f8be9692b04f339c
6c78abae7b2dd4ddce0ffdd5bf6c95edd1ef4b30
0b9536154c55e0825bad4e0daf7186aa05e361f6
fc02e32b28818e5c3d2a69b6d3fedc5167d9e663
604abecfcec23b94f6015ac1ccd3199c3f8e0691
0f478817620104f3ff3bad84c2e3c2ba10334369
4b8c84711f558fa793aeec776b488efb5e5adafb
b5b019bb64c97cb116e64f5504c96fc7c39e4f9d
7f9dc5af6e80d662fc4607d511c88fffb3c6f314
af529c3387a1ca3b9cbcf5fea825279b8118598d
89716ac4c61f962c7f730d0a76b208c7ff873d9d
d075aa268496e0e7d99f50e366dae66eafabc355
357e5ff4a4c66f1f4b101adc78e4f0eef93365d2
bedad2e33a1bfd6d52995866145e454bf07dccc2
3a299956bdfabe80bfa08407ed103f61f8a930eb
7445f04db4fcc73eb35d81345d1396d34f6b3aef
c9d766e41a3f95aaa7ebaa7e82965206d19ae3a7
689fc59026f259de5c350210b60ec05dc48f6387
b6c48cfe76337e3a24885f86b81db1ce00a2024c
580ffd4084500b26708d0272649b73626cd9d344
bfce689059773509de32e40b009e126783439f19
58685b6d3030f1e35592c161386aaf20f705b862
c49d1d40a8a7363bc27fc90a4040d31d30863580
009f864e9e9d67cc6fffa590e410b6a0dd8c09f5
13f2ff1af1edff3324814167d8b5f89ee2c5bb2f
d7ef354f707c9edd0ed1f009e03b25eb77d3c049
217773da9ebf5851cf83734e66326e219bfa5a00
5581a2fad74e57a612947a15fcd83f593b7d7e5a
6f4b5a07e8acaddd6276ab320510806c08cf934c
c2a2dc24bd338b50a66ca66a2a54ffe8c9f33dc8
eaac1b357da77e1b0b505d7f8a84b685d92e75e0
44c26ad39dc1d32ad2d215d4bfcce83dfeb34610
3f2ecd7d99915321b3f8fff43ab8a3bf64f4279a
ca5d7bbf1dec7407f49eb0a0ee0bea6d670f72b1
d51ff3d08db1a3ca1370f920774f8bd2bb3d94c5
0fdcb9164c22c079a44ad473b712e08c4bee8c2f
43f2be1fa716f0b71943cb7d14c2a40ea380f9bb
1859c80b2b97c89cc802569bb35af39aa979e86e
6a164ac699905187a1991f4edd9a508ccccc2c6b
1ff66ab833f0be0e2c24dfa613aa6c7be36bd8d5
53b480133819d57bba64d30129059739ccfabbc4
2bdf6e8c192e158e17b03ab0de8c9d10fae77d6a
656bd6b1e7e7f45e179342e1817a1c35309aafcc
4df226b1f8f028f1394b1b6a47d54a975aa5ee7e
d9ab3cb946a89ffd492adbf0ddc585ea36f68b14
ab5b6bc5908833feb0e0087f0ea260cf19a462a3
34a49a265eccecec69b7387a8148c79f359414d8
1c6fbde54aeafb7eed97323556a19ce7742fdc6d
6e9a88c5add1cfb0e34445825cd77d4a76d81a79
8a4bbfe2a2843c24cd2ac0efc641d8b34b5acf01
17ddfd1276ea66273c2a5b6fb45f717408f3a941
8879785d08ee7051ece416fdbd1ebc90f0a6c80f
336405b4c69e0c22690412232d5d867b135c5379
9e39fa87cc3d570f5fb222197b08426c51baa4df
76d27a098429acafff17b5d44b2fa2a8536bac58
737c84388ff3bb32b5d0f07c017087936abce7da
81b6badbdd2890c4b07d75a9b5549bd30fc5a1e9
100f9c8e99ece9316a5a6e09437a2f8fb6b2b913
cbb5a58679b318090f88fdc14f02dfca0de0fe20
477380c4ec0ba6d1df9371e82e2a6e905e4715af
301b831c95966294b77c2996fd787a4ac163583e
069ad5d856125f7b9583ed1a2d711e0535509e7c
15508e50ae880077226b97f00b921fdc8e736b79
3c7d007df5cec737615db3b0df4a184f6f1428d3
15e950567af1fe4979a5f9c269a863d4d84730fd
b37fef76b9fec2db4cd1dcb17500da74eff918dd
833782623cf72bca5c6056efc9941f351802e371
e516773d6d2f1f630e65b54bd7f0031a81c0e3c8
38237c61f04a8d473cc24a62d15b64814882051b
cdc228f5dfa0d3e4f6727edf26ac8ccbe02b7b8d
ac4dedbd1aff7cf0e39523dcc7157df029765c07
f094f8b2ce05c9a2d1d1f326762494836b77f670
20dc075b650a4408f35f026a0792d8eac98a54b8
65415b14eeb94d6564b9c0df252bc142c227567a
f35c6e4a79ac84f51a78c9557605078dc7edc145
2858aacd6ff2c269fb4e7d51e840efa2a80455f5
b31c3528eedbe8afa66ca7e89d23343c22288c1b
1cbfddbbd8985d5b6f61e488fee7f86b118c53e7
ac3dd13b6dbb0585c59bfd4531eb4fc1458ccb5a
3f1a46c1773bfcd53ca2036709984dc5042dea5d
2da2cb9edce9f7b4b6b7062d44f3ff9beca3d431
8d016831e761a95442717d304f33f5a12f813da0
85856bc89920bdb76a6702eedd3207dd12793b6b
acd90017ad313bda07ec25603058b32a202d4c82
498312148b75eeb9bb2f2869b1c975a6a2b5f19f
1098ed93e566817931729c1e8bff80e79229b2b0
6b7e3832be58c924b5a819c650bbe913557fde69
08afd5ce0f80a6219ce40db870dd874f2deac321
a1afac2552576fc76ce9cf579ee4ca3f2e212e98
e3b5d9af9a7014e7ea4c772a7fe75f9b910c1d87
ffa6425867c199011545ae06ddb0c6f7181c0071
5dfbb502d90128e8f3e119757869a6c5003afa8f
a429bce55c11d4a3fc7599f148330ff5d99ee74c
1c3430a4ffc14edd97771f7dfbc3f3433a544417
8f05d6a3c88ca067cbc9198c68c9311646f470b4
8ba569ccb6116dc7b1df2e2825ba76fa83281825
368a8fc4481c3fdf1a64dffbbdbeb97d08b12a75
b2895668e319b9270d184d34ab0949f25343bda2
7678d33e4095547dae77dadeacbc5d9a2d568d76
1729dedd33ff855312904c5eeb0eb648a858692e
d439fe9b25b0d17a83cd447c2d0914058936951a
9f2bd4c6156676c27c9c3e89a00924515208854a
16abd2ee4e202e26453d1288d0649407589e4690
c664262bbbf31d98daa3bbeee2a16f21bb5c6931
61ce6be1aa65c180a8e3bee7da867e49ea2a385c
26a9927c9dbe3b1a8f3998f26df7f96c77ccb01a
29e8fc2210ebc17e7348deb2c9df5cd39b1d8e7d
705bedbc33dd497c24618c69b2a68530f797744e
8d24696c050e6c32e17913b4c83dcf74bc939be9
196854a50bdf668caee5c3edd3b35f5890809c61
c67b6787785f9c848de40d6667a8365a32c43b02
1926714527bb037cde04a08f4585690274fd088c
b7bdfa69e44367033fdb6a2aea325dfb52817633
f4c26d8ce132a96e76b7ddbe47d9e5c795e35854
1b195acdd4c6966394c48cd313f5ce3175c05b25
ba77bc0be1989666f0501897419ce6ea13bfe533
d8e3767c3225b494676c298a5779d8e4ca96906e
1fd7ef3e24a8ac06a2c8b1b548067cce7a53305a
4cf89795e3b1dacff14272c9a09c902a71d03322
ac468dbf697e528d1b7f0a2b1a7dbfb25f114a6b
7c50f63c6ad94e071b87a8cd08b7783dcbaf6a1c
37e5a4d2d5ad595dc901188dcca6d6f559578c6e
35cc83c8886fefebdf2d2be7008e458fe441c8bf
706f276250d803f22dfc08177fb7e69bf2e7cade
c72b7fc78c2068659b5ab1d8f0080423d48f6d55
25f6a4721ace865af9393a1b3148577eb5532bf3
13d5f870ee7fc09eb637333c36f0cdf8d67cc882
6bf02c7059ee20c45c0953dc33cf35680e0991c6
c3b0981b5545f6dc818467a2f0faf66f74fedb5c
1746893eb14902bf256efc260df5889c60be7f40
20a47d217091e32518c7f41c932d707a2decaaeb
a8ad254310a298df5fd8da6daf6dd73b882f0193
12c3399204ea05810309a48bf76200be923e2c74
6441129626c8f468c2e226b6d683084a6274c2f9
39fd41337b1c9e98d0f76b2b149e37362224b0ab
09d644d79b297840670f5fceb8d89e3d444da4c6
047008dafeee934cb566d1c90bfaab055d69d095
adeade4de35a8af045189e3c38215274e761b4d2
893bf7159c1e59791147cdde1baafa05ed539f71
98553d59a1ea7744a740ea773b96e81ca3ed888b
e21a2d76b119352cf35c809a7bdc022449abc5be
b8c0749239deb23ec4fa0437ebbbc0c9ffb15ad1
9b14662b53a841e8dbd8d9de7a0d89cbb401b980
b6199e42b98c7bf401f1945c10a59a1afa092538
1cdffd494991c7fb83cddf33894f75d6ca6e22ff
80318559a819a17ce541ebe8505c3f27c7044fb4
f66c69ac5254d988f1de0f1508198f94309bdbd3
8f9bbc120945916825cabc2c1bc35f3272858a31
012e4442cdd4befa0cd11f20df162943749ddfe7
7650f6c5e4a70ab3e107e083d90a1b271e4ac99e
761aca783e5bad5356293cfd5c030a1f4c1f531f
f9433246612fe053eb3ac7f10ce47f18fcb0d08e
d1e17504db67d05f3b000484cc4e5ceba027c2d2
99b3688dae03e502121a8a3f29cd714c1f3a61e5
8db3182d352440f33179664a2ce2997e88290c71
9959e2679fc8e295f4484e4218486e367c246afb
b4d01eee6a001c4068b6756853f200790becdd17
a1e80a2403bf16c7e17cad08ae905bf07addffe3
3dedcb7d0c4841c67511500d9824c793f1e45bd3
7363f78a1302f671e795082abc15aa3ca06653de
2edd21721dbf12782b073c0cb8b66415d12704b2
cbb5f97a372cc6b6659f1262e94252c68ff040ca
0a9cf653360ca4b58bc9f8f1141396cd1e449c2d
1c2bec1ba263f9eb8b630c5ead99124660565d7f
44f09db520c3b22781625934ace4a1eecaada6d7
fd96c7c02090d87ed2a107f7bbcf5314dd6af3ce
19b3f8962ffd18089bee574baa2839fcd6e6ad37
e2d48f3e4db162baa2bbe1c572859d0224ff993e
b5074c2e9763f438d6f1e138028cb6688e55fc0a
ad639b96979d3bf179b045b620542b5071b33ecf
2135c9ab9251ff9825d3c2946f891e82488779f2
35200d42e775bf20caac5403932164832742028f
c4358767706f54563850d1d78cbaa30b4ba549cc
22f3edce9b0ae3306192918c7811dd9a53be9e6a
ea4fae700476e9b8ce63c25690253e3d470aeccd
ed8a7fed0591b29a47cf124ed3e135613dadc081
befcaa68bbad3da6470468156bef2a4d14662be2
ebddedaa21e7716d4e809a5e07de3918c1196e0a
b6af5577f00398bfbdf210e2a7ca40f62059ff73
7c6cd8f79609a0be0384238a217edfcbea326382
2ff0a5e23bc51eb0c4774b88b778462bbccdc618
62db007c62db0c663cc1bf8681a6289d0500287d
f0d8023816d76c1c641d4e2fe812204cf5ce71d1
764eef288842a86a9cb6d5285b217ccc0c9d484e
f304ca389f3d0359d5ee52fe3f2b2da5f16d8675
b7570482222db049e9d144177f1a9fee52cb6e34
74b5c2c3493ed468c5f8d36f5e62bd08ef6971b7
9bb907b09c302a3e826561560151593dde92e4d1
c57de665d4826ace19e71a3a772a7c0f471c7d20
8df1e438bc8f1ba4d28dc22050825d807be6e956
279e2f05942b2af219ff0945df56bb08fcd7f6b8
cf50b199ff445f4c66d0b1a35a4b6942c95a073c
ab7b3bbc4c8e52f080b96d9ef379299240c92ed5
daa132f1a7550a3e3f61b694df4e3c821199f97c
fc5a3d324e8e4a3c50ef7e92205c326b4e13cc64
22d52c7a1204fd23891e8411eb05ab832f154e3a
d9d59fd6f4d8fc9bd52401a705b579924b52bb28
60bd8f698da01cd9eb3f0327a8841029c1f21612
f4b55f6711cf0a2ff920033c0d2e2a92c6e6b293
de07c217cd177e80fdc517d5dd7685ba674fd888
5d7b103826686541ee375065506b07ab5a26f353
af583a067de06d98f6300949e865182d0db12c33
e82800b23904e0e464ced756213e6413c852551c
b9988324734bef55cb10a68353650a346243857f
b4379f92acf793aed7913b9f52a77f8649734d27
7851eca84caaa624939bbfe1c0af4d27437c626b
a1f662368c6c65b126633f06cbae957979101164
85321d293981dcdf536f2f841efc2ae703923dbc
a76b4b7e439d94a36cc303b4238e84dbe01914ea
d8cde38eea2f38f9699fd61061b97325477cae07
05e2249a45d882fdd76b9c80675e66e823415b46
c40a2d837358e888e6bafe5022ecec5231146d2c

(written by GPT-6)

@kixelated kixelated changed the title Measure and refine the quest merge driver Preserve merge markers and measure a proposed replay corpus Oct 28, 2026
@kixelated kixelated changed the title Preserve merge markers and measure a proposed replay corpus Preserve merge markers and measure the driver's historical effect Oct 28, 2026
@kixelated
kixelated marked this pull request as ready for review October 28, 2026 06:02
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-28T16:39:26.836906Z be6a34d New commits
🔒 Security Review ✅ Completed 2026-10-28T16:42:02.804576Z be6a34d New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@kixelated kixelated left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review by review (OpenAI)
Reviewed commit: abc2503

No actionable bugs found. Passing Git's marker size and all three labels through the existing parser/renderer is a focused improvement; rejecting multiline labels before writing and retaining native merge-file fallback avoid unnecessary new merge heuristics. The real-Git regressions cover quoted labels, custom marker lengths, and missing/older binaries. Preserving existing driver configuration with an explicit migration instruction is sensible.

The replacement replay is clearly distinguished from the unrecoverable original sample, and mechanical resolution counts are not presented as semantic correctness. Verification limits: static inspection only; I did not run tests or reproduce the historical replay, binary checksum, or reported counts.

@kixelated

Copy link
Copy Markdown
Collaborator Author

Merge summary:

  • Change: the quest merge driver now passes Git's %L, %X, %S, %Y through, so unresolved conflicts keep Git's marker size and labels. This also applies when it falls back to native merge-file. Real-Git regressions compare the output byte-for-byte with native diff3 output.
  • Measurement: the original 280-merge sample could not be recovered. A pinned replacement replay of moq-dev/moq ran instead: 1,108 merges, 220 had conflicts only in quest/, and the driver fully resolved 111 of those. It is not comparable to the original counts.
  • Quest: deletes quest/m1/resolve-tuning.md and its link.
  • Gates: CI green (16 checks). Codex code and security review of abc2503 found nothing. quest check --base origin/main passes against main 21d2159.
  • Decisions: none outstanding. Landing via quest land (squash).

(written by Claude Opus 5.5)

@kixelated
kixelated enabled auto-merge (squash) October 28, 2026 16:33
@kixelated
kixelated merged commit 3f21341 into main Oct 28, 2026
11 checks passed
@kixelated
kixelated deleted the quest/m1/resolve-tuning branch October 28, 2026 16:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant