0

XML: add seed corpus based on libxml2 test data and enable it for all XML fuzz targets.

Also moved xml.dict to //third_party/libxml/fuzz/.

Bug: 584819
Change-Id: Ie4bd02f3ae2559ce11676297ee1ed078901aa5e8
Reviewed-on: https://chromium-review.googlesource.com/c/1355853
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Reviewed-by: Abhishek Arya <inferno@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Max Moroz <mmoroz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#612779}
This commit is contained in:
Max Moroz
2018-11-30 20:58:03 +00:00
committed by Commit Bot
parent 6e4b5ecb72
commit eade5334d3
991 changed files with 54798 additions and 5 deletions
pdf/pdfium/fuzzers
services/data_decoder
testing/libfuzzer/fuzzers
third_party
expat
libxml
fuzz
README
seed_corpus
0046047b00a82a1fe56d88665c5f08eb2913cf03006c315fc21acb1b5ce82c7a6b355a091cb2fc4900945a5dd7a52774fdd9aead9269e5bd2f847ce200b1bb2a809832b240779bc1e50fcd3a2ab14fd400dafde86ff0f8c9036591cc30b72d0f7490cfcd01148aca72bb87dd2df0016e94e34b04c34edfe60199b3c9a99e71a24cd9126a922533c2b14a60c80199e2ffeafeed2c63576109cab1131c2182c49c0199fc60e9af21a3be8cbdc03622c3ebad9c2f2d0212f02cef3483152bb9871fd93aa4a69ea181a6025dbaa618983aba2fd0ba6b6a803cdd0de764600299a259ba8264e3aec403d768db7ad3a0a93e4a02d7a5beb17053ac8020ed23c0489f93d39c5321034e3c37a5f06912e1ff8fc7b90a26175bccf93503713dd0e13838f82b527912f3748e2d1171fb91041ac56e4bfd93af5cc2e4aaa053f11c23c61d19049f9eb07492c4966b1f5b781bff895f3fab33c004b1f0de43822b89a75416e2a0f4ab8da98ab9a004c408efc27d601dbd1e91148e2e37ae969fb97e04dabdaea684ba279bbf03b0ae22b366083ff7aa04e0d9e30029cd448cd9c2a4c964ce012c976d9004ef401357f30717ba5862256fca75cda1436157052e9d557fe9d32b953adcdfca65788e07ead1430533c0ff80dcd22bd55bb8bc8993cd84b1b97914058df98d84d0037f011420c5c29c45e6b88bbadd05f1cd6c5d6d21ae108cbcdde5e57ae91456808206060a5bfcbd6220ca5a522be3bd58dedc6bedd8064e4c40476264152302e53a5d5d68c90f36a9bb0666dce9a0f535c4b9fb1af43c0239f4fae6d0fb06f5fd11efe6278ce31ac322099eea1580f3cc8007028eb348b8c531e11c70e5e6acf6e44b12268e0704cd3859fa29b00abc00048c8f2dc7697d2149070b97218d858e0b8633f8cb8950f0dd399fb74b07e10835dd988dbe50d5b6fd31764d861be92472084e64a61efd93c01013fd8e4d5c85c06b06ed3008c7c9747d2d903aa36313b9411946c71662f377090413ef009359b0c1306316fc170553544f2b610a204a26abfc429052d195a53e54e59546cbea8e0a20515ebc673a7189a9c85df27537ce1facde250a6fe19b30ff4214e9c0ba8de22ddfb62bab749d0a8ae185eb95921dda7c1904eaf2e8eb6d86cb1b0a993ba3d08d0a13561b372c1b8a5d3e699cd8690ad8a19515bb609baceb2b3945e86ef0b2e5a5fb0b4909764c156be5c065dcc16c1e567b31017e9e0b654d50c2764ecf5d674bca11f08afeaf54fae40b7091f77ebe7860c8c8554eebb6765252d6e5920b9629a73f555d8289186e30d742aabbc50bcd5a0badf8f46e8416ed41f758e79210a509dfb2d9220c156d7e289aa9daed03ee5219c1087f304e0ff50c81f2be59d6e8d407560df61f70fea33f6286190c9f98eb422a59137fcf6e8368b2d91b00a5cfb00cca701ea25dab8e47ffee1d41ae5b2fa80d75ce0d187520e9f41b00153249383f24c77fd5d4cd990d3a2bdc316b17dfbd0b7ccd44737d8caa63792c0d3d85ffa5363ae5691afddfb0a630d45739179a0d553bbcd73a23a541c68ffdf8cf60d386a67d920d75321585730f6bc551f43ba86cb3aaec49d14d0dd6288030245d6321791f5d145d5c465912945c0e6f212f04c1659140cc135cc8ebb1313254c2190e7113fb5f90187c68454342ff4b918fd89df95b0e75e6935de80d924277e5328d68a23d8de6ba3f0ea5bd004cf7e082db96ec3773cc1d3020ea06780ed173519dbf72a643ebac81117507a13fc337010f4b109b7485f97b414203e5c8fcbe9d79ad44ed0f5106937b68ba39686ca3bdb64695d2457451ca0f84ad0758d9add8fab470f16befdfaae099ddda0fd7bee6fde35437645194d8c45aaee9cac11b6a0ffd3e46edeb253b94d35fcc9c65fb353b49c48610252b88a86e33e88effc97d948ac80c6416aa8f10427462d18f60de0727ae71f8b30e67bae5e30011151c1f8a1da7fc9510eb6ac06e6b9c5efe6d8911272849809f3bdf65ceb37ac7aa447459334b46115b37a602de376022be7161cb23d8200aee712b11635af037a796739b803b1d67e59aee152fb35e11c3681bb5b2ea9cfdecb79f3a3124cb4c8858f911dab67b78d459826ae4cfcdc05cf91c1fc9fd7a120a2fbfabf37ad14df7ed82c2d89088dfe15d1912e7780fd2e88bce7460167ee15bcd8f84be0fbf1370fc03d0009a05614a134847afd8188fd76cc113799b7fe169c8de8889234e7b33e0cdde0cc47e13b919c1f1c19522473beaba623afed955e65f9213fb4d418998bdb16f027dfc2842d46ede5129b01437e5e33198fa59e55fe2a8dcd3edac07102e64143eddcb3c1e41ca0e773b91ba0bfa3b0888b085156207e9ec9a86691595dd77cb0490a247fe175e15970946eb9a2ed52ad09fc78e61e1cf4e74101815d3ac6444c917fd769d0ce83bfc31dc4466980b15de524d7bfcddd2b2ffc89f02230740b71fe04215ff9e809d0bfa67e482541391d3ec5fc9844a961600d482d58bc75d288aedadef3a11135788dc5c16783e74638cfe8030490b0180fd7fbc765780d716f348235a0080206b00be3f9231e418aa5d67da179b0cb5a01db1510b23f5cc531ea0ac3bfe4d9817b31bb2ef7f3a15434478f422276fcd736f0ff718093e2a54c73c34b3160fb1bccafeed58db0bd51818ac1aa7f2fb815428dd95acf8fe0691455e1618455d3de982d262231a468c0c47e783805cc1fd185d7bb0d1416c764345bac8dc713f3fe296dff7191750348d3607f07c1ac636303daa558bc3169719204df7ab4eae999ecc6ea0bded083cb946dc8519384a4d87395788c83ac27934cd3cf71d0e5406195c9d4c518ea0b2717c281feb289b6553326abd198eb5d4de042d0b430acfedb5f08b70a9bc426719a80b448405a19fbb41592734b6d4af617d04591a0798fcc3d279d54727b8531527edcda35079d81a69f9c493e3409a297ef54cd2709c6c8b155cd71afdab953f153ad082284ab6579dfa97e9db25e31b03d02961926db0a5b2867291d30951c39d148b1b6b1588fd94a28c0184b532083d2d4aaa4125aa1c325aae428d9e024730d89afdfbcfd9dfd057551c967d0cbfb53d1c1184b8d27f2c0b1f9cb4326c1d2e7871a709b88c0f4e07b959c103070768a5b51e791b3905ff171de1c06a26fdff4d262d5d4be21e82fff4b132ce695652529980f1c904d28b77911ed76a4de1c73b3f5883f0ca110a96be8aa12c1e1ee55697ce9055cfe227685daca3c57b4318cfa01f50fd9aa3a95df4a16b2ff4ce266ca83a4ff1fc1f61817349b114163accd91d7718ccd8a22fbfa21f954acde14869cc13df666d262a96000bbfb5dc1fd59752baa6bc81f102ba96945a8026d8715adc200d267a8bfc425839e40d407199ea7ff82fe346200d6d0432577c34fc801d4fee24b3393d7c05b4210a5f90b6ae0cd6cb95edbde77d52d450eeb1fc210cab277f69b056d63542bc6940ea2cca8a558a211cf9d35b1d4679671b4ac3d4e89fc075613ab321f4384140618ecb5caadcfeb123bd6f7d1bcbfe21f9abf973c92ec0a51656f3a76dbdad0bad769c22421149badaedff85e55e4cab3b08502a92c36f22d1271153c5b90a31a6a3924787b98a750344eb23343eefaf46c5fbfe5a5ed489b125cf38741d1423aefbf61990ccfb3812eb85aa16969aa9c741e523e1b677b9923e2d7d3351edbfb6d6f3f900968f24112ff255332818fa2c677b91428aebcfa2771e243261fb3a9034eaf3108beef61b3f4acbabd2ff246d63002273f1f18d853d41f1e078466918b0fa24d5c3998d909457df8a5ebda0d2f13ce97bb75a24e96912408f5d59c13dcd310a0a0399bafc427a2526e9fd2e7dc170f96a1138764506f28d213770257b66031fd4022497978b05e01f4157af963b1c258200972a08001ab73d3a9cc1bca434edf8ac54268941309b3d09b155480b78c886976d9eac065826bb4c75d24f2a674163677f8af8f34c83f45b47272d4ce45d79ec367eb0b3ba6fd637215c05cf3f279887432540854d81ed9214156f2e3a9860dd8027bcdce6c0a5968b3d3b2820f22e9ab211bd1f6627bfe8bc3ce62b01ae4b0e8073db7bb8dae1bacf27d3fdcc4901e5b6d3350fe46e495f78880b961527f93269230c2cdac3686c0ef8bf494689e0714828c1d7135e399a43882ad2d71df0ecc354305bdf295eea46f015e02b3a518db800bf9fa93505773b299d543a09f90c6aeeb787277cd870affd2a664529a32d7418008301e60cf31b6a830f029bf706202a0b940c5134f02d3a32cf2cee38a74d5ab1c8fa2a8b610bfb16745a14e58d879a9415b70fe60c3f2a986afeaeece3a69206754e654d83221f3d4e3f2adaf0d8e75c41100623c410be3dea8dd30b4d692b20f5ba42cc907d756768ad36e7d90ea1ec26252b29f5ebce426a5bbfe986324ba833b3b4eda61e2b9b98aa420ec906d5b6da3234174e59b545b7d72bf06d0674a90839c365de7cd703f2cf371cb39c2c17df372ab3e6ccb0708a1cf42f3cf0624c4cfd2c3804c6aa81bfef7ddba8bd392f0d8968c6bcb42ca8525d0ef8ef80c4cffeb1d6ca35b1718328672cb101abf3950cb2d16e120a8388cdf3fa696b742ce1c305d0d78f9723c9e64b4faf9ea18665742d2d01ccd503d780469651df3b4bfec6d609820c442d1090e9e9674e281a7383e2e5d137174df9ae242d4938de49e0ab437dc84b2b4d0cd436ef30a1882d571657158293cbeb414954c868b7d059f182022db003f3dd00fd677ec17137c627baa9aa65956a2dcf80305d3a0dbe303d3327b0fc3fefa84d61632de6eaa9ea8b2c3315c76c444d363d747310cd412e8bbbb3d3b04f9832e3cc27e71e480bb7cc70532ea6d56fdb6dff6d7419d04feb8c487ed1bc94492edd283c71f81215a507cc9fb09ea820e7883c752ef2e635bc69fe780e952fc98be6310e257bfc9b2f69fe1657e0fa419119d088df4d7fabd13493752f9d077a8d222d675767c15f40f4e02b5af87fbb2fc3463adc8d5efee1d1264b040d4f7592f0f25b2ff26c57e9859c67ce742f7d9e3998d221a6b3ed3033050fc78db9c6ae43d421ab0c6ac919508c4c306a8956f55a33546f18cf9e074260c213a2650e312ea7279fbd73cb85b56f4b091d5fa30d5edf7d315af194713e19575d14219f809979c413352caa31bb7a40c73fb9d577cac3a77f5d2f3dba735e9a3200c178d8bf3a746a4896fb23f0ca07ffa3a252325141a45d26c576c5f6d4e25f29af6b3d3b2bca328781b84caf8ec37b9a0d723938810d40fe471932bb4cd890770928b31d81934920acaae0b0210632f877dee5fdbf4544c8eb601367508bb39f467833417f3b4591d775c4cfe7ce2def35bc06c8e5f8336db03b7edf31bcd28841ecbe5ab4be0c2337ff33b9edc2a8b46940af9b62e871b640b8810ca17733d4e2071e444fef93043f9f8f95ff74c1915b5333d68da1f9e21a0e30a5a81ebc2bbf57d2a9fb873457d93607d3999e321617680bed3ddca1f44bf334675d3c7f8e4a39df7ac2c6bc0a06612f5319e034f7d2c6f3468da3f3ff5f21164a2801a0f9925a34f892bb3c2e5d05fd6082da5ba25d932a5dea2f35023a7259bc97894808e681da25db0a9643746c35343925d7c2fe1f6246096652ac3f588f197d373553d1e2ae4f4bf2dd64e22920ee093c1246375a3573efff01f53fb99cc1f62025782687a8492389359efdf116e99b035ad8a7143e0008c726f8e89a35adadef5ed7f8904b95b896ceb98c0c67b7c4d935e835321db6aadf8e91b0c5349ca32d5dcfaca0362061c13eb3be9264e4d6fd796b65e67e06d15f367c8849eb9c664ffd8fca01ae437693e7c300f1369cde0f03fa526fa88cb0962ad9df3db638f97436a3a042b66d27d82b3c33ba30f12b3ace42b9923763091a5b9d668ead99e1859df607ebaa81866037d81231057d12730464baf1d81ef8463d8a3ba837f690b3337edd9e89cf7b8181a612674979125e37f92f2750a7f26f9055119d80f6cd1ebbf756f23825c09a96e5e05f4092ae01d96c209db1f8f05038515283cea851779d8e8d3b0aad93be591fddca38adf992bf07f252b47363b333b6d9040212406238ca080f40a7d3c2546bb8a6f724a1d24c45c0c1392bf6b64c0e639ddae18ff6fc312d383a7823c1392e0963a6e4f6ccc286f097d86f26292258b29c394d289b3ca309b56508d8e49ba7b33d6f0a3c7f39a4d06da6128e34fbaf2492613a8a35dd3c117239da01073207d77452a8e9207324ad9c733b72a83a0a830b4c2564ac6580153175cdd7d65a9ab21a3a43d6ed6c7f14912ef4e83ada972310d391e8ac3ab4c074cd1471d049ac1f69e9c73e316b12abc63ae23066e6ca32d416573bf52ee2229db42b91ce3b1dd9cc6f8bc9de8eed5355b05b8baa508052d93b4f01db792431dd373134595aa08cc7ff84868c3b9311d5a10bd7b1907ce53f0fdf0dea196e99583bde163d787b60d1ac3ff67bbe0af0530ee38e753bfbfe5be753aa28efc91a7a3d50aada9b6dc00f3c2b83c121df18fcc68b9c8a7ae2eca64f5d90fe3c561c0cda15985767ee01971a9690b95797b4103c69b57233d9b642e5049ace8a6f2d5abdde04c13c982eeabfa96702cfb1f7e00ae1d77400be1cf53ca4c964b9792ca5363239457e5c1420da58a1f33cb01cf8d387cfe9ae2e23f1bfb6d0e8e98e9b0e3cc0358ad28a8aa873572699c3dad054b9f4b36c3d3aaf13fa606e4d1f9578525670886e42f24c5c3d50175e6eec31cf51792765c26e1e52e7082e523d5670df150b1ef15cd0b5a864b453df8b60c0703d75659fae1ba8a57edf94fcd929e838884ec6283dc6a326d54c4ad851e746c41d4f589a2a7a81dc3df6ab31f8c924814d6ec41254d11b4b3734784a3eadf8140e3e4f143237295ded4432e5901497963ed6e5c140bae24b255cb44442523965ab7a42f83f55d0379c0e80b6f010820df52b0cb386ed8c61401543482823f51516d893bd40e21f62a70953904082d19ec13578dcd0e426fd90f95292d0fd17ba409a08aae1b84dfbd1edf7042b9668a99832f13c40b77e5ae2f82dfde535ad24b584755f303fc1a440c5aae0f98020db8a707f95d88df88bb040c9f740c82af59b9824a310ef8b7666f7878db41d8a8640ffa2012989f4f9e244d0cdd15602cf06b5be6a4118fee45a9c3137ac87597ed92acc6b8dbf7835417dba73318503bd669248490380fa6f095fd137419195bd3ad69e448e63afd9355c2c6d18c6ed5241bdffcb56ac2aab0b529d18eed2d1df0fdbc2b3427cbae095793e5bfdd99d74aab07afd1c9ad3ca42a6a0349a82750fa6c3d4c8352309d810b52d0042fee542d8ff480328efa55e776f7d86a7f785f74329a86c75c6710c55fdaed2a83afa132269cbe743a8002ae75dc483d657b93bf90be537f51e311b43e3e620b4a80fddf9757b0654f7d88f893b45f043ef53483f81d8d37ef3a506e188a13432a13b1843f0facfb33120a131a205db34a3fe227b4e70c64488cc2cc0807fb5ab9bcd16ee7c9dacadb9214c44a4b22ac657794f39cdda1dc9008f3226dc89a044d64981fbbd355fecc095c46fcd91e1aa05abec44f4b6c5c6540ae1bed988d4487db558e0f7bbe64536f5776d343fcb123edece5fc1cdf5c6ed2c5045406f6ab8ec5b8e0cd3b53f1e9ddf22229164bf46257dd92641aad954c2c044e970aa7ca0e2c754464c8fcee563a32e7cb205f551928eb5f4dc19334658d404a743dceff6fc22cb94a33e640257491546683fe43cfa4089d2f77b35d19d8ef303e084d347424d8a8e83b35bedbf27bcfdb2ac189ee2bb1e4743c78e83308ea513d4f381e8d7b31d5539ea6a4781476c90a04890336cb413464e4395b77e4eca47b45388a5ac65198523036beb5ab4c2a7ba46d147c2a2a47068329771380ce60cdc1357e2c9a7dc480521dea9eca7fcb11fcb91f2f7c9c4c09d6b71480818cd511bf7fa9b81336e3328d77fa158b765483f0f90e088d334f471a93ecc7f0725943c0bef4852652e0e37a94d4f90572d995536b5e4ba89c748f438485efe8c9a5c34eaf6e0024268bce6ff0c49ca2a82b912ca616d9d471f3e4f5562a53b71c44a194b0925b048e8b6291dafbfa651d5c53cd2834a2757541d7829e1f204f6dc5b208289b5eaf9804a43a4e1c4e9dfca40efb0fbd6f6d1a6411b11074acdb070b5b06a7f4be41f3bb99069aada5521794af3620e1994108a73f1fd5a5b4ba55b35ae02e54b5c1f8a6ceb49ff6decb04bd00b98aaf7c1b1cd4b67b181831ff6621088e3ccf7c8d7b1c4fa5d774b703fd43074948f2c72ed24ca9e17d23e25c32a4bbb4624f4d93f1a3f651608645391c84c36f4b54bea843a4333d5e29c7abc2bb499b7d450c9842d4bf6ebf590bf2b858824697a241340d053fee7814c4cec9b73d30e9a3e2374b8c12688a475f9296a4c9427251bffa8ec07f62d5d1ed14c5e2d4a1e364cb66bc008b9d1e5b88463dcd2ac5793e54c5cb14ce5ce6249ea49457dd8dfa450ff74560d6d77154ce8dbe5d8fe97177d838802c7f0abd770c494534d19324092ee9096d1fbf4388eb615996cc189504d4c13117d6e9ed6a34c2788fafb71b817303efe4e4027f40b8e1c1a6ba70d29349f4bbdf8fd8ce44e9ded0041672e93f57529a3f4eac76346ab9bc64ed56ff66d71f85b09f702026ed92a7184c4e08f4edd7bf919d26f02cf0aa25ed518e8ff6642e0664ee63249a9782f1c07aa0ac6765fcf805bab62ac4efbcc22ad3903c6da4503c806c257ecb49e8ee74f0b4f0c0a1ab5357b685020fa52f6ca00f299b54f0e428b168f9e0c0097c13f4d27df23b3cb9e874f1cf7603c13087f1ca2c6f7871366a830282e1e4f2e0e0472d181cc8f28a17c2bc7caf508b704424f303abba6d7b9e8480ff0b62e21c0185c1b024f4fdd1e32ed7a2bfc01c5e84e2c0850efd184a7d24ff17ce8da70de5a7c8da2509618d12b57f301564ff2cfdf87cd976aa9c447de5dd84afd3bb5407a5013d9f2aa7285f8e044bdf18606dceb8c4d298a503fbe110e1acb177aa715e8757186441934823950784dd9ece4c9fe863d7e6d1f19dfd56b74cb21507c20ff48de0ee77b9edfd5468a7dd7d10c2988507f785de339557ac967f7c224f5c0bcb62c6c6d50d9b549a915f5064a2c42f3c7300b8dc960e80150e38c6f79608773138f87f2a2c57fb0478848fe513e1171b324de6a4ef006d844a51c23ad6534165182a07d95e6b67cad8f2627d20b86d82e670153524f15c8a4bf2a6eff88f9369350a86b4886ae5852f1454ab8d4e723ba4f5b6e8329a675b8ddeae8532d6adc3c29f79675b7ef687de4e78970766e835352e2f72312130f51d4ac7582d8111fe73a2915538365fe0eb2b8eddb957e393d58ce2b2964be33539a982b428e0e3ae9c2800c2d7a9dff0d9a5f805417cf5468298cbb802d4b50a2c7887d4844421755464f8e197c6786fdd2863dcf1ad7adab2250d5555e6e4146007a7e0f75a48c3803939f54fa1c0f55672fa125643998bd33dd6ee638fc2bbf9c9cfc55a40d3fb150cfb1e9a4a9603b79f6572d368e8255c253c203f74e71c081d2ccd7c41c0619ed335655fe918b256dddc9a0ae57ef1450389aff0a2e00560d8154f1460978fa0fc9e4229c14c8eac4bd51561f5175c68d68cc130bf08948b186be930f303e563962cf2e742f56516404e010e70563dcdc2b0256aef1d358243504189ee0a78b856fe588f8839856b4f44bec49bbcee0cce977a8a266b834647ddc56dac335de8fa2900e0e83ee4ed73d7ca9da9d0056f1391fa175711c6d1283b78972369768dae34c57310dd73395497908722a558d16c8905e68f30c579869ad538f409879032fecb224892dc24d3c3c57f5bc58cf0f47f9300dee878113c54b7354b44a58954c17802ce440f8f3e856de1203b91db0860e58b308881595a707934969bc06b3c618cdee1d7b58f57f2f1d0b0aa1e673c608f894a28881e73c37597ab70ad943125c31f6f968bdd2fde252e642125a3cf187c6e1e924014f8301e3bd74d417b537925aaf47510fc324ff42645f8a0ebe1ee0a3d70e9d5af549baf4c3cb8b4d388b124707db855bcf6a5a5b0f4a37988f819558110ecfddee3b92a23620775b1b33f44dd48aeb8929d4a7daf87b178a8bf3955b2074a4c214ad1a3be4d58bd74fd47f4ff46d805b3de5182cab27fd312aaa5255983f386f655ba05b3fdf55aa19abd6531bcff7b036b925eedf1cb35baac57602e14608d0140d5f345f014e4e46ef225bb8c285d98615ef25b44894a73dfd00b3d7ff255bbfae7061d2f7091265014f9c6aa5b7211f0e155c15a9f0773b83943aed2431841a30313a0489705c1c50b69371c23acc7cfd00560a0b8297e4a2e15cfb92ac6c6c7e8e0b2a7382b69c057f60521a435d0bb7643ee98b79f8b765e4fbd1ac5c7bdc559c5d2f869e80b1b6b121e6b0d627529e50212cd1125eca276cdaa08ea3a53693aba3670a451e53905e5f16b42510c4d4972269b88408507b9a928f1c375f319f08e3c52d2d2fd1932309ab118cd1623ed25f5f3a69819ce2049ff5b1f9c8e3cad2cca963a95fb13e5aba1bfdac70b6a309ef596623e004a2b95fc7c4b6db220782517635f7711ca8388c728f0e600a34d4da4a6fc71015b65c039c68447b5b7a2860fe79dc22db48c99f1527da238e35c37ffdbb02616205f0905dfe0af385e82a68275dab02746c60616f8ed5c640e2a0df8f17d1a8a3d3e2f3cfe09361c137a2d172157a9636a814c7b2e88a3cc16f2761daa071fecd91e30c36bf5ff9f09676f54e477d627ec43b7388a228fcdc30ebcd9b3bd5b14bc84d628cc9031030cbb14613eb0e821e5032c87bfca262aa12471846f560d51fac5ee1b83c15dec6bb2a639a043a6fd2802e99bc12a93475c143479cf1c7639c88003025596bfab25bcb5890f8be11ad7c8064d101bddef3caa00b9c816400de68db34e5c69a656cdb2768a229123d7ceccd4d70d4a07e3a8e8e656e7de87d66733aca5e29a05713ae9414377dbd6570af3254bdeb56c2604569dd7e6299dafc3e44658df221c6641622c83b0440879a58a53ed7eb736592fc5e65ce07cc6f1d860231ca614255d2eb8266397361ea0cd879565fce9fd5091ab38b0b5c4d671a654d51aa9e2dc3006e715af08668c8998682672a6c9387c4b738c650e03058bd4af4cbd112ff6735bb0236484acdaf1fb09097d8461ce25f7ff3677b126fac521c3333e2964692f55eb9991a3f1467b597d5c85d0f80d6354a253a1fbdd83931066b6837c85f0d43aaefa7a2cf240118cf25b082ca91683f55a4b2e3d5d79de93da904a6f9b5ffca90bc68924ed2f6378dba57b8d7ece7595d8837fa376368a952113a08cd3fc90f7cfd53a651efc5042cbd68c51ab273511385a5d511c6840063e745e68aca697e6f3800afb5879e0128864027efd2794353eb6a09daa4480137ab69dfbfc1aaca44b5b73577f56a1b89be3f3b76f3d1186b1901831959a642276e6a3bf591f45d93c6c89edbb804e2148dcd911e1f6aa57746a1aad289d984e7580b7160b0b371fcf76aaa42de07dd5b363f7ededbfbae922c8fa2490e6abd8fb5d1ab4d116daf4429678ca9bb0947e51b6ae10aeb6fd0f9346db450029b0c1a06738a77a36b3f3b53af613de99f9d50a42fb28b6c98ff7f9e6bb5f98c0532382370c94c29910d06ce65ed2e366c78a975633639ff2e3214dc4cfd8b280405a2766c9ca209c620ccc5b6feb7aeb546a20afd7d80d66d1a623334c2a5a928192d4edfb971be0f584b426d93d9820e7b8f16da82c94a4bb2386b4abaa1f86da35dbfced7087910ad73348df7ff8a395a3c326ea1d8bab04f9cef7f5704850f74a21b0bf552306eaf066f91ef68a2668e2ac83ede7d1bed8a899d6ebd108c726bd5379ebd60e9e85b58f1fa1e62896ee4a7f863fe05823a2640a3c040fab72abce2986f60864db263a826653e36f59579336df447313d6fbe3a751d4a6e5c82c26fabda5c41ca9b0978336fd3150c77c1067333f444472c8a9d74cbc39116701b2b9e1218eb518a7ec30ec71b474c8c9dcadd705a3c3778f48975bed31e1e9bd72b3de2426e0271375f731776dcad926888e614d139763da17b9f71511f010813ef7a90ce1eaf18d4f6f6aae88f9a716a187708f9fde686d26d56d5639fbf916f64e271dbd4ef4bda3e726cc9ce3daca1e56fe33a02fd720fea1a8439bb20b10fd64a3e84fc8d3efde2917236669e099aaa4dac168e5ffb2abb080401650672b3c8f8967f260de2a05e0e9978ec0136dc2cd07306ab382f44b9481eb079c245bba6d2c412018c7326dc66f20c41c41aaaebbcf12f02a716b9bff9733825ed3f72e15c43e243ec4c5e91e4719bb48673589b6ebbdfb9b56e27e47d37f451a27083dfc3737300f263749bbb1e349d2b79daa8055c2e45117395743f1738a28d98df08deb700f18eb966986773b1ef9f2bd6a869854af4befb12b3485e3c621d73fe3cf2705d803262c7d7903e24fd0c89686bbc741bc7f1a0bcc05c05328c39ddc541c41fa86082742928dec5d193cd93774db31ae0eb9b9c412b4d74b47ceb2af543ec62b2c3925d76ef7c86383bf674c22ea74f3df081095861f7a8e7db2a73d6b92874e57dd82b745f81379d53fe84f0d89dd668bc3d74fa7a7901379ffe690ba9b471bc74995bb5302c750c15ca3c858f9880c1127450118b4d94598c9675188bed69917fd60549ec46a8dfded0364af9f5754e7a4d805c02735bb3ea29acacda16e79d736775976256975be166dbd17c861bd59cf3af76ee2375a7a83756947e988df92e4c449c01bbca9bd18d75e0e6e7449e64982bfa5dda52ad9a239ae89cf875e496951d439ff1c85071904e5a83a01e5a955575ead4ce617162e5eb3e2ffc33c4f2f8826614c47640bed796785a43dbabce33e359ec6cb777275e765b92b183650022c8828e2249e9f0161712f1237692c5aefdd5a1e43595e3d61b1afd0e025104dd76a7c7ba72492e944863c9067fe6bb6b4323d006774d96e7e04c32f0b5e4b9ae545421d0f550b25d776150e93fd52b4eed4c713ff033886cd051f12a77ebf6c9faa3011ffe21fd373bcf24c9930caea4780ff3212a9dfc11ec0ade964d36066289df20b27872b3c54d64a73f1ba61e95d3058f21d21c00f678a7e6c6c82b095036be729e3240939f8d05141b790b51f10d107a5d311973297211d6e7d4be4ea179453c6b9b66e27860684227f2bf18f628122cf479691b43957989a7ac01dbaf765109f53b0c2f6c7989e60b91f860c4e7e59060d2eda94038b91a5c79feaa14e0272d4920f0668fdbf2c809110eceec7a060dde82e3692da7fc95108145a86ce85b9f3d7a35b45a813cdb47f0c8dfff5afd0caa3eb9a19e7a59f97c7e838d967f0222b77ad65a4c9e9c3eb37a629aa047f6cecaf17ec48d79d58c535277ca0e7aa5de3e001eff1ecaa37566fd45342bf6ffcb987af10d0ae984ef19d8db1268df1eec2d420f13747b07c8e1083c71288120e57950f95b0f28cc0eff7b46ce0b61f4bc2b7fa72c2921c85caf34a910d77b60a73d9e8ebc85bd25531ee58238f3650a31ef7b8c31b8c3dad1ff9b943cd0ad0b6db25a4f20b07b917fc10629b19c40df0eb76cc82e64deb137db7baca30e020070ddde4b2fcae7c72c5caa7cf1787bb0f3f2a9714927663d90b40580969592f5989b7bc19bc980a07fec3523ee9ada0b3ddee1fa774b7c0fcbbc3a9add6cbe45167c553f2f26433d0c5f7c211433f02071597741e6ff5a8ea34789abbf437c2e5e524d126fb3df8144599b3b6f05b81570ac7c85c028ae7d172131b6f464bde9f32826e94ef57cb1dc4d1a66084e136cec80191db79004f7d8817cd16a6770cbde1158be465442a8d2f6d3ee61517ce0cb194006f3f9446b13257e532181ccb4d6907d0e97685b4f2b497b8afc5be617b6725f042f5d7d62086ba1a855963273de7fe48d3dd03373e3c77d7b180aa02ec5614ede7215ee71a2da5ada9c8f7d8a71f28307f5fde233975b156ce0c7753d6e807da9aadc61efbf87721a356af3254d37eb2c0f207de13be5eeb2eecaf2cdc74d0c2bd0ea6b7c63217e4e69c985366bf1858406110a39892313a7c4937e641e43a098f4fab7665342745c10c28e89939a7ebc3a901368f17eb0b187ffc0491400e12fe9b97ed60fa7c3717de45b17ee68ec1783c7480d58a17f0abc1c206fe282b9c426ac221c78bbb08141737f47e1db739cfe08b61962939dbd91a764e26b0e7f621cd731ad008c88ebb4f78ffe9e1cc3a5b15f7fde29284068ea511b9b2be6dd901afb585d80648009a62e67818ddf363f49775f8b3e281e8fa04c801d22b517df552c84c59feef5320474556695038107206fa6e510fd3b3faa09c11bc54b5f3e0b53810e451e6ad1f1c8680db315bb56c75941df82c78139c334fd7029acc0185cd17ac297ba8c31f3a7813ea194416cf7a07ceb9fbbadb6ad95f1681424814696d90cc9eb8d7673dea191aa107e69f13a6081900cdf0f2e39732efec7b29854ba59dee6ff2b819a7632e78054517b5e55a3040e35bb963936e781aedd976c16631f3d4d4ac1a5e00fd2371d34f2820fa5ffd74c5e842892ebfa6b7be36d63d370b482785abe0718426456457956f3a300b9e3ba2ea3827c33d56454cd2748018ba925dcaae7b18bc54f835d34f465ab2e11016c1d47403d3883d4eacb3583d964194f3c6931cdf09f8c6aa572ee4f0a5d9283ef3875de50ff739e8734af789bd0626be0ba0d83fd01d94e4c127179e05ceab010b8c9483844338417b375ee04fc01fb076db23961076133df89e5842e36feb35a81b08ef1b5aa735f8cea615e6b88846b75d8201bc4be99b7f09e9afdbea164af9e5a850d7f2be8432c8de1bbca56f707ad51d0c4abe8857fca83124e5f00ec124068ce52269724f5a72b8588b54ec193e3458c35a268e00797b24c0cc142859ced85aa5862070f5b29f71e3964b35313ca5386734dd3530bddd9c5f9b476e92ca59e90b2afff86f7e437faa5a7fce15d1ddcb9eaeaea377667b8877409204f0de5d4ed884498ce8daaf153b8864c878356f08f838142fc384df34b3a17df61b8292a87e5bf9a5001599b7129c3e25585b27d367303aa884afcdfc84b1f0c7ad6f50ca6b5bc93896dd0f88887177540290a0076f883559c2a98cffd3cc2f688f441da69c62e97531be947885d667dc74feb0c8917c5f3ef5e81df9afb1066c255d5026bfd60cc89260f0b6eec54e5f08f7d84b1866c963ffe71b08963f87b9328c9d602c9995b105074c6ec82512289c0961db858d6de841f30462694d870e1de6d3989cb2e5aa7972899aa1d0095bb78b5f48ed19c4d89d905e5699bccb75f335191d92655986b943b808a266e439cc8bdd31c8930fb82ad086ee98cc7e18a38a42e8ed434e7fd85d3031fce504a760aa24b8a9c98c29c12d19ea2446c319c2655ccb3df188f8abf3faaa71c4a6765901bb7abdfb339a45c360f8ac5645ab138ff454b8cd5410d6c43453f58d35b8c0cf798c2168950b2ebcdb2ca17c68731a52e648c917b16c6eb86a29207bc0dbf26e7121cb0f0478ccef0cdd6149cda4059a91943cb00549a8ca71b8d1f2e6ebd62a8cae3ecdc2b3c79fae65f81628b8d388f2d9c257a4dcad5264043d0b48a5ed973548e8b74f62c484f2da007454c3f2d840d3135c34b8ee397e9f2535ca02779820367212d184fc5abc78ee4ec247ee5588249dd3736e5989afa7df33d998eead2134322a2c7ed1795ca2ac9a447017b665b8f32615410d86304e89d426982559ca7444f1c398f8ae74202ec25228b8f03c2c1dcb22b520b2b748fe1b82e17f7d261af3afa559576ac06006c5bbe8fe51a539d8f16b217de6aa8df5aa3fa51354d4c903f6155689859ec4d0acf87bc2733956e2007c8904c61a798ae76ecaef0f6158b4ef3403b20d2e0906c8ed21f324f22c94c108a3b2b2ab71e57a17c90d942f05414a5e75f009b436e63b8c9aa99564b9175ea05ca9c358924d31558bf8c26c24a506ed491817b85cffb36dae26eb991977743f486ec0bd4918b86ec3933223d08a79988bf48e171a5b0cd6e918ec5eb28a03b4389994c4b03448ff84244b8f391c53a0ba38caedb6aedb428044de8690e571eb29206fc32327e79d9444a95e9eab9873ea3c0cc24926ef7f39a5d67671db2ef56b3ad52b4021318f5928567fc69eae9e536c8cefa3b7654bf63ecc03292c7b1ed4b5bb9fd903e941dec640be37dfeaafb92cc73c67540ad637fd8890c5e44e49ebac8fb5992d264ce8685b25ce23f85cc9528833487eebdf793f8de76de6f88df08f467f599c954c8ddc12170940863cdaeac10969e9dd60aa5dcf6ba6df4ad03943fff6ebe05ba44475aa82880008862ffaa68da944c3c5375b82e3274fbc765951c97c155ca810e948413ad9f30726920f53ed384ce679da6451197949dbbf408f355b6b930966198039573adf116b394e17da53e77c29e161281f54475026bb5a1156994eff61344efe569152a192f5dd15b5576fdb3c79524f282b0bb308fb1e9eaf213956edaf2ce0b33958a39844e0cbefb774f1971230f717a1ba3cf9a9592d346a3cf7521e067d8fb016300cae1d99f5e96b764d23faf6202f259ede9a3a3cc360a3f513d96ba2f1e1c31550146f4f395f07f6351ed78ca3c96d61008474b512bbd5508ea4d9e13fcb13ed4e49722173218adf17b18b5e55fbe9664fae116054198388026d03211bd53544270577d912c94deba19985fbaac3b6d3528467187f08fd8f18fb49aaf7b98a842537cd90630cb5cf8c257ad890f5d03a8fc98f3b9397b1eaa11e72fd584c6af99cfc2283d2f98fbfa6c62c30329c879684800e4ba7a7adf6fb299047872cfd306a40075a79e7f142c48de9dd0859906041487a221ef5aaae6b3136079f257eaa27999461fa0587d9c1dcc9bfaecbcb50d90d0f9fc9e99e01d1fc129fb19ef635abcc6651e66a47824c09a084e7bdaf5ada2b6fab19bc3f39f7a00d40cd79a2e82d3a88590acfabb0a4b802e95e0122ed7af9a41829154ea33050146281db0b71487f6752a899aa02917d7765db4c8f9ec2cfbc83488dad5f3d79aabee56f9cc56c02fe2519b37952ed00ea909d69b4ccde252cfe3ed8ff6b03d3f225d0541cb22119b6d872506e2d8e85c3cfd499375946e11c675a79b75744b5800f2b02356669863eb7b3bb18a5e109bc90f962db634de77a1c130aab3dcaefe9567a69c337669960abecc2c6b681f1c12cfc457030f599ca88b6c982c8702def62862162f877e40c71dbc9cd20220c5e2e9140edf30960fbfe7ce6305d4459cecdfd2a3cdbd835d1542703bfea2288d71d3be9d249724eb4ac0bdf1691e81dc64f29ec0106f829d67253f7b024d0c5ed12e62fb2f54d3223fd20b9d69c52c2b47d5ce898720d16cd59f73dce335549d6f91da6de2e2b45a597c6bc4642cbebd11d37a9dba6059f6f285ddf3e0b25ee6bc4a43b438cee89de04ffa9771c61b055b3a79ab8114e36c5bc8529de0bf4e8e6d38de4a71975c776f35f5249d13209e0957ff11807ee924bb76fdadc2b01cad441b8d9e11a5d29f5a4904ff2a26bfa874efec6ffc12259e335a49fead8a4176605ff6de99c5c7c094ed509e46cac97cd53b54068f8b61000d51beb98c12519e71d646d2f96560c894bb4f69595012b081cbcb9ee967dbb13315de75c9f1650293741282b1b8bea05d91cbf0902b0fe341c979e9fc18fc69813f55a09c49e53e2f72cfc69fe1535b75e398b9e2da0aa0ace750155ff7b4d004337328e0f73fff48296ca12d2d35439a7b325daeae7dda813d8d9fd8ec9aa15a2d4bda5afc0283b7922b22f9b2f81372b52fa1a5c9bf5b4d3ea28f7aebe6a36ef925c8684e20a1c61928dc8532f92366646305c9d925515f5f4fa1dcdf33e4b1c0d3dca3b36163ab1a74492dfffda217169ba383b0b37c6459e99f42351885a9cf9aa2a94f5d52603abb1ae457737e115edd8570e800a2b7cc8c6f518f6e0552c467cb215aaa2cb8c789a2ffb091ea66b2c5be67d36428c637fe70bb055ba351e39e1c2534d882df78962d3f836451656a54a35deba5506c7fa4a0a540463f56237e0862c224a397c927fcbce17d573ef6e6b51efda250fb2517a3e3ee2699da83f568819bb981addcb38092ae1fa43e4f54e355294d149252cc0f0ce05f7cac63ada46db0975b681d55cbc40686a0cafa4b45a9a17fa47f943f8458185f6adce2f55037703765f232daa515ea2917796f92e9c96dec3b60f816cdd5b85ca55ddf0e4881941b2bd3d3a3ebc251fda4cd26d3a5adf3a4d1833b1fc94d4903eca9686a7e845442a5f16b6b5cd78f6331ab247a3c978beaa632bedea61f7009b571c49c0639e88668ee34b65a022fefa66f2c59b5542bed70cd9bbf640466103a086cb1a6a6367c0ca61341ec7c77300bee0c6648467357a6d363497c7966d8af00f0f4fad5a578b484695ba736ece169eac1afc7b083d22d60e6650b64d3a8a74a6dbf569e64d1117c109356151a6edd5710b3a76019df02dfbfeede9e2bec4c49b63751d3329aa7c82c056aea3e1c467839b6db69f4e2015c478aa7caca25f9d08d19a6acea2dd2e8acd414244e62a7de32bceaa8574c10988e703a3eb79b50fea650a825a411610ce28d84d7ea236b0891172cffd1e7a9399ac14de393924993c2e2b7cef86ecb543bd1a946c6f0e7e270604c5f2a3014cc6053d6f5a478a986aeb1ad825a9f45a0cec25a31e4ad64659627a9ebffabd9677a657a9ef44e5540e5ed517cf393aa02af41473cf07008dd6edcf33cd800414f4628aa21bdc5bc23663fe7fe93bc64abdab3e1c6c969aa4466264322911f4e340e82b8ede8c4d4e40de1aa5f416a1b24637bee0ee023c58d7d82b780af38aa7a6b9666bc5abdbafeff6ad604fee839cff4cfaaa952e35e8e86cb684097528b1a02313ecf9d9eaabc5ff93ae73f7eb85001270335a3fe49523298aabce40b41089adaf52c4973989ba9a4f96ef6bcaad059c552093c84159931adb386895717ff34f1ab460127b776a022baebfe44e7fe099ba5f6fc61ab76f337b38a2434c70af0392982f5f0f05465caab81bc3803000942f2e8ec4a95377bdba3b46b1fab834372595e54c6f796953decf9ee7e498f455aaba1fdc077a4b189ffbffb1c0a486df597464f42acfcfe811ca61bbd0dd108e0088b9ff4e59bf546ad5a1e8e7bb5385d01789c44ee20bb43739e0231ae589c86e618d6ee0662ab077f6a56cdd2830aecaef3356d35a1ef1c662976964bf605e463f0eddbaf3ca51d1e20efbcb7a52077d36362c489b6fb41af87d01e96497931b9b2294ad19592dfc8fcfdc9af92c19e28175ffedb2e4e057e525000c8957aa8afdd6ffe65a766b43299ec8c12d12a43bd65e770b01cece4a6652972462aef17952e990ea33978d1b07412ff29ba83b3e65d270d9185583a9cc549d5b088b9b031752adc71958aceebc53e140cc7b745b0d9f006a7407b4b19712b85948a441920e0f087b1cae8bc746a5f0c90e837a86644f14f1b8a61f6b2b4e17c2181218c026883f4c37ffd575970433db2cd7fc6e6ee01c4ff356cd89c8070a5654d722db2debffda9a50311d654f3e56bdb22d144192b25b2eb9577cac455e58141bf0eccb73e8064a45c42b304d40c287feafe05f482628ddbde4f5f7b1336b31d7370c53d261b0fdbdfb6da2faa257967ee1db3268aeb1a6072253a1f47b703f6793766f61e6db35723dce5a5fa5cd828d57182cae241bf38bdcdb3809062894fb329d7d6316c760f92437a7aed85b3a27a573559d424cdc8c229940d0755667d9e15b3b51c4f00d47f3259c2808fcf33267453afdca0b4146bf40551c98dc173d1788ab0f41acb65247fb44c7604df02ba25ffa5f7223a5bf59b638ac162b5d70dc665888663f6099ff71791b3b919a95ba6b5e888307bdab943abd4b259d65c88dcaf7a7cb7b611704b84c0dc7432f806fdc918731de39dd5d1b64c4b370a571587ada55f2cdb4bf029190643ceb6d4d1c8a965aa01843fcd511a56ab50d625722ab6d5046653658bb25225dd94ce6c07b0cb084d04b6f408a3a503e1d7c06e8ccd92dbcfd7eec654c6b71d03df33da644d74372c7469f533392262071eb73857fa60381099a6d8627cf39f8b6c580624deb7a42292653c269389c14a66d1ad85361fb2f4a7b7e3712d393926b6cb8794da4eddf040651e0fe8b7ede270b7df17a6d9c88b2c749d0e4ab85affc9b82652a86c1b0352780cda33c30760eeb166a69fb8451678adf7bd03b74b089b62ea6e3532d6a85ab8bb2a22a06ca43ed33ec94c1df22ec57ff3fedbb9101ee7d5775e24163b8b5a5ae129103f5143cdb910d78be99309f293372435a4beb19c58dae1bdbbc8c30cff99d78697c62d67820b5b66175d909dbc34ba5577cab989aa32e90b54e74e8f01fa7de0bc414ce2319a4395d2256621c378534061c83102bc9e0d50a6b072a7c7fc8edb5c4aa280f7481dc3bcbbb0c5f49bb7829d5836812bc63d56584dab71bd58da440a540eaaea9bfe74047fd31c9c483c52bd902356757c0a1ee644a6fd83f66730a9e76c8dbdb849ba8abe7b00117e38535d7416831f8c80dfbe56eac98f35828749978c202513175413106946be9a95e698a2e0944da7d4a23f1243ecce599875bec6cb3b489cd3f3fa596ca828a447dc6ec9a342beddada5d3d19dc39630dfd44f69ad74d5291673bedf97ed0e035cd4ab9e0fc945ec811f7d2c6e39bf29f700d6fd9e85071d12cf214db4b8e4546146bf2c5dffdd21801c84d3143a0aaf48befa3c72babf7a039b3bd8e1dd92e8717e7cbfe1596ff5b525c00ffcb19683bce5d06900ecfed5694756a7a022c06564709f0c1936b27fcf3cafbb277df3f163c0c08d7c366ec2bcbca632b0626ecef13b28960ee6c0f62f1fdbf485e9abbbc79f6fd250ced4f16c9fc18484ea6703d83675d3686201770a6a0973c776c1a5b33c0ddd62fb5efa04d43504179a96e2c232c20ea41108b8430cb59d86cb60c15e524a37db91c258f1b95eaafd8396a4f50dc9d4859f41bcdb81c26d0a6661eac07a37052737917a1a2b7d4d1681c29c1e921a9f56339b41124453929a4afec5992dc3014cb665379d148e1dea12276ce46edaaeee28c373841e84fdd1e4a2ffa813107bba145619ae5fc37d07e19843eed44df009ae214a8212efbba5e3c3828414f84041f5c719ff8ea3bda92a109c9102c3e76d78bb16f3a6a328733e4dfcc24c812d85afc43e7d43be7422f8f4d2e6e61ba9f700ec8e0e89c517b723b0c92f577c5675cc4948789ac6855750c556f5ce9d21845a21bf0db288303b79fe414947c5d1592b8bc0f0d16da2d176da07fa45c363760ac623c7ef85b0cfb30620665505d993c4d5cb29d8c627de28402aa769f395f3db1460b2e257edccaec65dca0533da176138223dd544b7a956212258d9c6c7bf0ce0efad6032bbb1431acfacdfcf9a1c04c72455f2c0a7156e0c6ecd2e6d1edae8eccb51acc7b8c43e25d751c7987ae8bd7df982074a821cddc80f7e4f796e528bffd8ab665754df3ab3c30115c82d2e61e7fe29344c2e321ba1db4353ae12dfa7c91088fb387ecb298053a47627cee65b70acfe69c913c9b25838e522b8775ea0244b6ce3feaf166dc9a6d1fafdfbd7166197bf2918a3a3a7146b5fe3c9ea4b99fb7c8ba39b7cf248eb5ee3f41d2b0537ca1472b18ce12cbd062e4526259f4cb3187907becaabcdc6c450ee18ad88a5fc6d593075aefa216dcab9852805a552872d47b06b3595e5d4d39330e2cb0b2785b3352b163e15a1f435fea8f9b281e59dcc1d57b4024554fe8675440990fd86de535a1477ccb50e4e061089731ddd7e5870a23e5d9f4eb828cd2c5d0cdf115ffc2a511a903619ec080083780dcd331c7d8e0a4bfdd4f55c51f6eff362a6c3c7cbcd5b68f158f64e27aac4431d102f8bde77c57810cdabfa9636c78a896945c1f46a7192fd5e5b0a7bcdb76e98cb99e6ac5ad72f1efdd2aa58a883048eceef31bfd53b0799e6abcf38748ad9bb5990b9b8cf4e53a8a18f969ac9b43aeff78198c86d41f36acf6c779194b5e51558577fcf30769b56ade5e2d7cf7f942399c5a3b845cc136fa34e5ad861acdb54cffc6536c4d44d7e75e34b3dfed7f93acf4f50d5d00322e8441004cde775bb40c871b728e42be99bd0570ecf8851adfd1bd51a2465e6862d8d6b2ec9d06163d6976510c6cb7da7f76c988f041cb258dfd0ff6fb09092fde34239c08deb10862622a818bed11072038cf17c70152ca73d3069444ffbbfcc44d15e570269e7ec579721d504f093f078172e8523d1d8224f7b7a88e4b55244ea9e541e74c26a9ec6d26d73648a64321fe7fe62dc0b93cd66b2570084d2fb7a23688ec0dc72148289c3b725fad3661521d2fc6888be1d6890414aec9b8a044c8e833e32bad30ff2eef4d06f11e87d3b6538697533c53baf6dd4570dfefc02165f1cdd17b23dd164560c98f297d4b04c80d79456ddd29852ff2e0f755fb9da3cfdd4bece7633136a773438a856b74b90a7a18f6288d546e9f4c80cddec5cf2c0009f28261abc8b49f7d576d262b13fe5a6132d2fce3b579e7abadae94fd58cd2595ea80d158f85c2b4295f4d0d5b3712f3d5d8f4fccebbb9251a71eed7f47dacd469614e16d6203ff7f7c9bcfb31249135d523ebe5a0725101d6c851486e045537153a935e0e42415fd61381d3d6e9358cf1fe2861822540c6932388340387c699d79f3ae0e96910f4fe5dd6ffd5ab8f86f56c39ded7c291bdab167059f6f899e382f8f47e0b13c4f9d7f464863375cce2782560dc3b9fd9c2cdb8926ad81428626958abd518d6c134d7a9ea87b5cff318d82702d7ec184d55abed27ef3ccb661946d6b8a5d8b697195e3739a40d1f319bb9694a4f950a271dd8b6ee7feabb35bfc3a4d0a57cca57256a00f32ed8cd7c6cbd7df0ccaf2775eb871056c8e1440492d8d8458b41bfd1be0666219c48753b978f07220dd8db597176d451fd8cba11f0a2f3a10fc4cdc28cd8f64185ec3cad1500438e167d9aa29c431c232ad91875585187f6f307fced086265751d8d06db4bd947c15aeab4efb0c9a1e94218d4f670b8b3118ad9589c6b55abf58559c539e210ef83ee6d77ffa5d97616c1b428d480df45dc0cb9bfb47e1923eac4d99811f11d8cd0ed2f9773e452d52f5d698b6159d9f18950b3e5d0d82affa99864bce27bbf37318eda0113f5e076c5cc48013f0bb94a647225494fdbda24b9bd2c3089307c7ca096c0e3c3168f2f136eda409847feb7307a2d99da1736335903e7a08c9dda461c67c6e157aae3f1926e74e3c009d4c81ce7da77e89d8b7151b40e88ddd72fc12c259558fed2da8b41e4e393198ec1c82a03fae293739270d5fadaa2d31781655a5b1d8446b8136b95318a0966b1db0ca64ef24fa55f812e91ac4e62c0eed8fd761edbe773660384362ed0203ab45d99676bb8f125d7dbf232a7b5d62cdaed37fd767dfd4c4bc5a2e62fdc388ade7cb417aef05e482226e6ac0f6b14aa8adc79db881ce47a17d41f3fd1aa2a8ef25a39e702dcda58a9de184153339f6e034f1197971a52be9ddd42a77d0a26e247393e219ae118099704fe49d9dd6b7d4ecf5e7c9d958f189612eea4e2ae76ef29ddcaee92a22818af70f51925a99fe49a493f047fde782e47c0ff425acef9e69ed2add0a53e0ed06dde878075f6782e9760e8c39be348d36e4c4b415ddefe04240669688418387bbb8e173b5f8e130bacdf3072782ab255b28e0d96a5227077e28181b1d9df6e3e838051c8daf8612a6c17efd8f22bbfc812df7870165674d3250df81caa6050f27cacb6b3addf898e40bbd3e5274f557d7ca2771ee917a16813e01768c294422ab08779476b523cef496b78cc4fe022d6598576e548d57ca817dbc6b643894d99c1e05805587d52c07c8930c58157324b9a891db980e18853f27569684ef04566f8a6a6f7ff0f98699fe1d9f0d7e34932a19083fe2d07610b95458b3f12e1dd3a83e770c4a0e2298081e3a6c6f3bf090b23e283a860ffbdc2eba98723494005fe69b9a8fdece2a0cdbc0db446b490f062e0a48dba4e3ea4ac53e2b27751d61baec65ec11a90bdb6b6bea9b6b8f0e33e55e325ec80d814bf28ca49f840353307a7bbe350256d18eb9558310d1be0f28f65ededf073e1e35736ef1899750598c0d39238bb4b7fb06b45c8e3711bd4ec51bf3c4bf714e7cc03dbdfe9359c88e37c75a17d04c0f0bf59da4112e6d3786b194f7be3a53f28379e13087721b1aeb56cc3cba0a15d0ee42c8c2aadd5f098057e5172cbf634f216e2993de446ff7d794da14a04824b58fb83e892a3979632e45fb8b623f480a7a5504ab0e6b6fc601d746ea0e4acd859bafa872425093eee79f9f86aaf9c40f3e4b4eb474268499df29d7bb2a9f32a327c972c19e5ddf81c4676e07f7dd05fbc9b06bb0d581e204ee5f8e32c54beaaa027714bad3ad61f6197c39d47e63873194590e5597125d736bfff6609c1d9284be66ea97d349ef03ee5be65751bb22500492c7fdae68268693c6cbf457c55fdffe4842ae5c2b6b0bfe6878382c8b650c1b21618f674eeca251fed95d5e6ba493eb6a8bc75fd51f701327ecc645b28b36de78326a60256a40c1af7de4c242522c7a251d7a7e7eed1001cfb9e584dc49c4a45ce272eccbb2e2ee850afad5db2691b9bdab3186e33e1c3fd4a2422e98f2dca1b4b0ad9090fff2718e08f8d5e76ea95e9f4d7d5f5513df4063664282feed769a1913667ea2f58cedd76ed86230f95dbe6c0552c310870c8ea307355d613abc8753b3dbb3e1c665622818f96ea3a686218a1712857a4480bcc00fb0322769112ea7a291d9f89ea7194f8ccf2691f008d4575ed52ea95fd405c17ebb43d435ed0f2dc035b55da755ceadfdf6cd427e4112da2c3c92709e16293c29399eaeacf56eda88e8c339dea608655a5e5c4fad218eb0ca34c35ef83f6a22f102cf93518cd053a3021eb36d039e3d4684168e891f622ac594cc3fbaf42eb9e916f423bcf760684662475c708a025b95b4eebaca305f93bd06424883010a0f632a919978edfebf3b1699b7b6329fb99c382af456012e67f5179ebfdf168cbd0b6544f85ef6981e85eb3e84cac28eca395361e001e5fb922e39e07ed183adb01e320ecd7838d793f699b0486c6c324978e736ef61619ed206eab22275377ad5c1da293035b31681ddad7ed43278c90877dd1ee7697e843f546a07aad9551ed494ca370b9903b2ff256781b75a6571d1d5a11ee0a1f3873684bcf96086ce968ef405058c321a7ee1753eec5e01838716ff9cc2ea9cfc6a9515c89ee358b6c00d270f249fc2adf44e6c4a817da34b6ee576bfe8296364856100aa291be0f674fcec238ee9f91652a85a8ab60d49c264814b7eb39aa0005ef6238d1f01ecc4837c37d151e0073d64fa64021efe16059300229cc741b1e0e0b5b8dcf8bd3016aeffeacf25e65f710df82a417e717e1475422ca6df020f897246b789dbb0ee0546adcc31aed2a9ee0f0723ab9a1646520de4b5f31a7815d3ea7cdd51bf090836861567a731c9ff9a0cc442ec2f84ecde7f0a7ed887160790e58fdc3da2ff945de1292c092f0acca34675a484e17c4a37d21d1b750802ef0e8f0cde31202f994b0a110b32e975d8e426c5fea87f0ce65ba63d77082ebf72bdd754e9974b9265385f0ed91f4691325b8d18a1bc957f1458d5986080ef1741ff0cf92c3fcc2457b0ddeaf361c641e1f7ff1860ac11f7e00cf33f11cdae78eb6dea2e5cc4ef1f92206392a06f94ae57ecf1a2633a1abad6e23f209388ec3e50da32cb1d6300f187ecfb56ddd5bf26b7b6046881d29051125a558146bad500d9ea9f2de7fa0a17499f6b233db120d5a1a18ef440f00f310c45fdfa4895fcb578cf5a4267bcfe0da0bf5f312081b10d97bf57c9aa4b3edc9119a285daca7f559e4a5a9778ee70994b3f5e5717dd65ec50be6f596ecbc4c176f72de5c9b96bf7a3b4372c297fff60cdbe3f8ed30f11ffff0fa13fd0f1bbdb74f9ff611b5aff1df08a9ef90a9ab3b8eb2c7066fd5d7f6367e7d51f3131f915ebdb0dea0ab7d85996abff6b84f405673899265d312a025824cffaf3c5602f72ac7db80028034dbce84de2aba0d3c9130d83af7414f33a411a27a9f58a8fd7a13ac0dc538ee35f755658e54ba2c60b31185eb6dc8a8e4a45f2ff1f7c6d96423611b00e09749905ddd73fac4da09faf80b1212109606ae9430eb0798a9274bb965df1bf82ce14867e33546972cfe50f05ded5f345ca2a9f8ad4720f083362a24c5963814415c7be11a7e79f915aa5bc416b6bdd19e7c0b0f6b4c19953a29f8f94f6f4d473d9c94bfe19ca2c9974fe789ed89daf9546aaaffe76c7a4b3afc0eb9a312799ce40ea5f96987a68d8061bb01bd1eeacbfca277e032012cf9c716c6e1f3ac4e832f55dc011bfe4085a01db8fa4d70596680927bfd981d5241a7da346beeb3edfaafa8ee7573f5bb95383ccfeb954bf381d20908fabeea396572fe8077d643f7a4669a6d88ae0ffefad544376cf60a6890cf92176fa131711462b407fada6bbfeb016ac55774da7e82d09d0d337ebea9fb423796352beb7e2c43e48123b5fd618e81ee54fb676b7944c1360a8a6a548cf3e3b03573f1c154fb72df780abbd6764dfe18e2ddd8ca4c58faf92ffbc675a6b2d1a45be278954494ee34d4c2324245fbcdd7a1e0f5b2e115172130a7c514ac9a6dd62dfbd91b3106732ac8dbbb4e004059863e5f52c13cfbddeb5bcd495bea003d6cb25fd30b7e3116db11fbfe47c7706c079e2c44afee40e3524c2440029efbff3217c31fb539f0569beb0d664343ede5cc40fc06ad946ed7f4571e5930d6a384c659f84c4188fc3356c1ca991cf185c46c51a64a12d8f2c493befca35dd48ecd9ca7c40e2da79be8eb85576afbcffcb613d231528bc7d607472cd2cab2a5e0f67691fd04e1aa723bcb93112c09c67a15490942737641fd63b95f8af23f1259eb5a65024ad98c3d05cb51fd936eb09ddf3f09ee1f0fecfd3fae7e18e1dc12fdd2445027e39637bb4167d42d309b3e84f0c864fe2353aca291b4df4bd6f4e86038d3e079551ca6fe2f2896838152f14b4515fad701da97e6ebb34cfe331c4e77bd414496d817c48d65dad2ef5ca715fe47d9336fd3bd30d01191bce1a0abfce0622a71fe656c49ba6f5f55afc0560faf29542ce744d8f2feaddd2bfb7ee62a7fdbde7891b47e1633387800febb40c376d47ed2104875a83128d287c32a5596fed9e49575133eeb6fd117175447e2ebb69cb99cff0ecae15d2a85c2565c63a7581d534173b0010dff80ec4e56255991bed8921019f2d413767a2fedinput0input1input10input11input2input3input4input5input6input7input8input9
xml.dict

@ -158,6 +158,7 @@ fuzzer_test("pdf_xml_fuzzer") {
"//third_party/pdfium/testing/fuzzers:pdf_xml_fuzzer_src",
]
dict = "dicts/pdf_xml.dict"
seed_corpus = "//third_party/libxml/fuzz/seed_corpus"
}
if (pdf_enable_v8) {

@ -84,6 +84,6 @@ fuzzer_test("xml_parser_fuzzer") {
"//base",
"//third_party/libxml:libxml",
]
dict = "//testing/libfuzzer/fuzzers/dicts/xml.dict"
seed_corpus = "xml_parser_fuzzer_corpus"
dict = "//third_party/libxml/fuzz/xml.dict"
seed_corpus = "//third_party/libxml/fuzz/seed_corpus"
}

@ -70,7 +70,7 @@ fuzzer_test("template_url_parser_fuzzer") {
"//base:i18n",
"//components/search_engines:search_engines",
]
dict = "dicts/xml.dict"
dict = "//third_party/libxml/fuzz/xml.dict"
libfuzzer_options = [ "max_len=4096" ]
}
@ -137,7 +137,8 @@ fuzzer_test("libxml_xml_read_memory_fuzzer") {
deps = [
"//third_party/libxml:libxml",
]
dict = "dicts/generated/libxml_xml_read_memory_fuzzer.dict"
dict = "//third_party/libxml/fuzz/xml.dict"
seed_corpus = "//third_party/libxml/fuzz/seed_corpus"
}
fuzzer_test("libpng_progressive_read_fuzzer") {

@ -55,5 +55,6 @@ fuzzer_test("expat_xml_parse_fuzzer") {
deps = [
":expat",
]
dict = "//testing/libfuzzer/fuzzers/dicts/xml.dict"
dict = "//third_party/libxml/fuzz/xml.dict"
seed_corpus = "//third_party/libxml/fuzz/seed_corpus"
}

22
third_party/libxml/fuzz/README vendored Normal file

@ -0,0 +1,22 @@
# Seed Corpus
The `seed_corpus` directory was created using test data from the libxml2 repo by
running the following commands:
```bash
# Minimize the test data using xml_parser_fuzzer.
$ xml_parser_fuzzer -use_value_profile=1 -max_len=65536 -rss_limit_mb=8192 -merge=1 xml_min1 ~/Projects/libxml2/test
# Minimize the test data using libxml_xml_read_memory_fuzzer.
$ libxml_xml_read_memory_fuzzer -use_value_profile=1 -max_len=65536 -rss_limit_mb=8192 -merge=1 xml_min2 ~/Projects/libxml2/test
# Merge the two minimized versions (the majority of the files are the same).
$ cp xml_min1/* xml_min2/* seed_corpus/
```
This corpus gives a good code coverage for the existing XML fuzzers in Chromium.
See //testing/libfuzzer/README.md for more information about fuzzing.
# Dictionary
The `xml.dict` was taken from AFL fuzzer with a few minor additions being made.

@ -0,0 +1,15 @@
<element name="doc" xmlns="http://relaxng.org/ns/structure/1.0">
<interleave>
<element name="a">
<empty/>
</element>
<zeroOrMore>
<element name="b">
<empty/>
</element>
</zeroOrMore>
</interleave>
<element name="c">
<empty/>
</element>
</element>

@ -0,0 +1,13 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<title></title>
</head>
<body>
<ul>
<li>First item
<li>Second item, closes the first one
</ul>
</html>

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id$ -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" attributeFormDefault="unqualified"
xml:lang="en">
<xs:include schemaLocation="582906-2-common.xsd"/>
</xs:schema>

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="unqualified">
<xs:element name="foo">
<xs:complexType>
<xs:sequence>
<xs:element name="bar" type="typeA"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attrGrA">
<xs:anyAttribute namespace="##targetNamespace"/>
</xs:attributeGroup>
<xs:complexType name="typeA">
<xs:attributeGroup ref="attrGrA" />
<xs:anyAttribute namespace="##targetNamespace" processContents="lax"/>
</xs:complexType>
</xs:schema>

@ -0,0 +1,7 @@
<!ENTITY % c SYSTEM "http://example.org/c/c.dtd">
%c;
<!ENTITY % a SYSTEM "http://example.org/a/a.dtd">
%a;
<!ENTITY % b SYSTEM "http://example.org/b/b.dtd">
%b;
<!ELEMENT cab (c, a, b)>

@ -0,0 +1,9 @@
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="internationalPrice">
<xsd:complexType>
<xsd:attribute name="currency" type="xsd:string"/>
<xsd:attribute name="value" type="xsd:decimal"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>

@ -0,0 +1,20 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html>
<head>
<title>gnome-xml push mode bug</title>
</head>
<body>
<table border="4">
<tr>
<td bgcolor="white">
Foo1
<table border="4">
<tr>
<td>Foo2<p><p></td></tr></table>
</td>
<td bgcolor="blue">Foo3</td>
</tr>
</table>
</body>
</html>

@ -0,0 +1,10 @@
<!--
http://www.w3.org/TR/xmldsig2ed-tests/#XMLSPACE
Check that implementations of [XML-C14N1.1] handle xml:space attributes
as defined in [XML-C14N1.1]
-->
<XPath xmlns:ietf="http://www.ietf.org" >
(//. | //@* | //namespace::*)
[ancestor-or-self::ietf:e11]
</XPath>

@ -0,0 +1,10 @@
<!DOCTYPE doc [
<!ELEMENT doc (isid*)>
<!ELEMENT isid EMPTY>
<!ATTLIST isid myid ID #IMPLIED>
]>
<doc>
<isid myid="dup"/>
<isid myid="foo"/>
<isid myid="bar"/>
</doc>

@ -0,0 +1,14 @@
<element name="number" xmlns="http://relaxng.org/ns/structure/1.0">
<attribute name="val">
<list>
<oneOrMore>
<choice>
<value>1</value>
<value>2</value>
<value>3</value>
</choice>
</oneOrMore>
</list>
</attribute>
<text/>
</element>

@ -0,0 +1,5 @@
<card xmlns="http://www.example.com"
xmlns:a="http://example.com/a" a:foo="works"
b="fails">
This should fail
</card>

@ -0,0 +1 @@
<!ELEMENT a (#PCDATA)>

@ -0,0 +1,28 @@
<?xml version="1.0"?>
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://FOO"
xmlns:foo="http://FOO">
<xsd:element name="boo">
<xsd:complexType>
<xsd:attribute name="booAttr" type="xsd:integer" />
</xsd:complexType>
</xsd:element>
<xsd:element name="foo">
<xsd:complexType>
<xsd:choice>
<xsd:any namespace="http://FOO" processContents="lax" maxOccurs="1"/>
<xsd:element name="anything" form="qualified">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="foo:boo"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>

@ -0,0 +1,12 @@
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
<include href="include1-1.inc">
<start>
<notAllowed/>
</start>
</include>
<start combine="choice">
<element name="b">
<empty/>
</element>
</start>
</grammar>

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<foo
xmlns="http://FOO"
xmlns:foo="http://FOO"
xmlns:bar="http://BAR"
xmlns:boo="http://BOO"
xmlns:import="http://IMPORT"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://FOO anyAttr1_0.xsd">
<import:imp.element/>
<imp.attribute import:imp.attribute="p"/>
<imp.group>
<import:imp.element/>
</imp.group>
<basic.A bar:barA="o"/>
<basic.B bar:barB="o"/>
<basic.C barC="o"/>
<basic.D foo:barD="o"/>
<basic.E barA="o" bar:barB="o" foo:barC="o"/>
<inters.1_1 barA="o" bar:barB="o" foo:barC="o"/>
<inters.1_2 bar:barB="o"/>
<inters.1_3 barA="o" foo:barC="o"/>
<inters.1_4 barA="o" bar:barB="o" foo:barC="o"/>
<inters.2_1 barA="o" foo:barC="o"/>
<inters.3_1 bar:barB="o"/>
<inters.4_1 barA="o" foo:barC="o"/>
<!--inters.5_1 barA="o" bar:barB="o" foo:barC="o"/-->
<inters.6_1 bar:barB="o"/>
</foo>

@ -0,0 +1,46 @@
<?l 00000000000000000000000000000?>
<s00 w0000="000" h00000="000"
xmlns = '00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<foo>
<!-- def='NT-Char'--><!-->Char</nt>* ']]&gt;' <nt def='NT-Char'>Char</nt>*))
']]&gt;'</rhs>
<com>CDATA sections</com>
<rhs>| '&lt;!DOCTYPE'
(<nt def="NT-Char">Char</nt> - ('[' | ']'))+
('['
<nt def="NT-simpleDTD">simpleDTD</nt>*
']')? '&gt;'</rhs>
<com>doc type declaration</com>
<prod id="NT-simpleDTD"><lhs>simpleDTD</lhs>
<rhs>'&lt;!&como;'
(<nt def='NT-Char'>Char</nt>* -
(<nt def='NT-Char'>Char</nt>* '&comc;' <nt def='NT-Char'>Char</nt>*))
'&comc;&gt;'</rhs>-->
</foo>

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<MenuDefinitionFile xmlns:nnl="http://www.newport-networks.com/NNL"
xmlns="http://www.newport-networks.com/cli"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.newport-networks.com/cli bug143951_0.xsd">
<nnl:file>$File: //depot/NNL/R1.0_SandM_Dev/Projects/SandM/src/uisupport
/xml/cliTestCommands.xml $</nnl:file>
</MenuDefinitionFile>

@ -0,0 +1 @@
<path>1.2 3.4 5 6 7 8</path>

@ -0,0 +1,22 @@
<?xml version="1.0"?>
<D:multistatus xmlns:D="http://www.ietf.org/standards/dav/">
<D:response>
<D:prop>
<D:lockdiscovery>
<D:activelock>
<D:locktype>write</D:locktype>
<D:lockscope>exclusive</D:lockscope>
<D:addlocks>
<D:href>http://foo.com/doc/</D:href>
</D:addlocks>
<D:owner>Jane Smith</D:owner>
<D:timeout>Infinite</D:timeout>
<D:locktoken>
<D:href>iamuri:unique!!!!!</D:href>
</D:locktoken>
</D:activelock>
</D:lockdiscovery>
</D:prop>
<D:status>HTTP/1.1 200 OK</D:status>
</D:response>
</D:multistatus>

@ -0,0 +1,173 @@
<?xml version="1.0" ?>
<!--
* $Id: giml.xsd,v 1.3 2004/06/25 09:03:53 ensonic Exp $
* @file giml.xsd
* @author Stefan Kost <ensonic@users.sf.net>
* @date Thu Jun 24 17:28:26 MEST 2004
*
* @brief giml document schema definition
* @ingroup gitkcore
*
-->
<xs:schema targetNamespace="http://gitk.sourceforge.net/"
xmlns="http://gitk.sourceforge.net/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:i18n="http://apache.org/cocoon/i18n/2.0/">
<xs:annotation>
<xs:documentation>
This schema describes giml dialog sources
</xs:documentation>
</xs:annotation>
<xs:import namespace="http://purl.org/dc/elements/1.1/"
schemaLocation="bug145246.xsd.imp"
/>
<!--xs:import namespace="http://apache.org/cocoon/i18n/2.0/"
schemaLocation="file://./i18n.xsd"
/-->
<!-- foreign namespace
<xs:element name="title">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="text">
<xs:complexType mixed="true"></xs:complexType>
</xs:element>
-->
<xs:element name="option">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded"></xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="options">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element ref="option"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="disabled">
<xs:complexType mixed="true"></xs:complexType>
</xs:element>
<xs:element name="required">
<xs:complexType mixed="true"></xs:complexType>
</xs:element>
<xs:element name="value">
<xs:complexType mixed="true"></xs:complexType>
</xs:element>
<xs:element name="label">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="1"></xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="widget">
<xs:complexType>
<xs:sequence>
<xs:element ref="meta" minOccurs="0"/>
<xs:element ref="label" minOccurs="0"/>
<xs:element ref="disabled" minOccurs="0"/>
<xs:element ref="value" minOccurs="0"/>
<xs:element ref="options" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID"/>
<xs:attribute name="type" default="action">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="action"/>
<xs:enumeration value="characterinput"/>
<xs:enumeration value="characterinput_numeric"/>
<xs:enumeration value="characterinput_alphabetic"/>
<xs:enumeration value="optionchoice"/>
<xs:enumeration value="optionchoice_boolean"/>
<xs:enumeration value="optionchoice_single"/>
<xs:enumeration value="optionchoice_single_compact"/>
<xs:enumeration value="label"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="hasFocus" default="false">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="true"/>
<xs:enumeration value="false"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="widgetgroup">
<xs:complexType>
<xs:sequence>
<xs:element ref="meta" minOccurs="0"/>
<xs:element ref="label" minOccurs="0"/>
<xs:element ref="widget" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="widgetgroup" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="dialogwidget">
<xs:complexType mixed="true">
<xs:attribute name="id" type="xs:ID"/>
</xs:complexType>
</xs:element>
<xs:element name="dialogwidgets">
<xs:complexType>
<xs:sequence>
<xs:element ref="dialogwidget" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="meta">
<xs:complexType>
<xs:sequence>
<xs:element ref="dc:title"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="dialog">
<xs:complexType>
<xs:sequence>
<xs:element ref="meta" minOccurs="0" maxOccurs="1"/>
<xs:element ref="dialogwidgets" minOccurs="0" maxOccurs="1"/>
<xs:element ref="widgetgroup" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID"/>
<xs:attribute name="focus" default="main">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="main"/>
<xs:enumeration value="ctrl"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="giml">
<xs:complexType>
<xs:sequence>
<xs:element ref="dialog" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
<!--xs:attribute name="xmlns" type="xs:string" fixed="http://gitk.sourceforge.net/"/-->
</xs:complexType>
</xs:element>
</xs:schema>

@ -0,0 +1,10 @@
<a>
<xi:include href="b.xml" xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:fallback>There is no b.xml ... </xi:fallback>
</xi:include>
<xi:include href="c.xml" xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:fallback>There is no c.xml ... </xi:fallback>
</xi:include>
</a>

@ -0,0 +1,7 @@
<!DOCTYPE doc [
<!ELEMENT doc ((a | b)* , c+, a, b?, c, a?)>
<!ELEMENT a EMPTY>
<!ELEMENT b (#PCDATA)>
<!ELEMENT c (#PCDATA)>
]>
<doc><a/><b/><a/><c/><c/><a/></doc>

@ -0,0 +1,7 @@
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
<start>
<element name="c">
<empty/>
</element>
</start>
</grammar>

@ -0,0 +1,22 @@
<element name="addressBook" xmlns="http://relaxng.org/ns/structure/1.0">
<zeroOrMore>
<element name="card">
<choice>
<attribute name="name">
<text/>
</attribute>
<group>
<attribute name="givenName">
<text/>
</attribute>
<attribute name="familyName">
<text/>
</attribute>
</group>
</choice>
<attribute name="email">
<text/>
</attribute>
</element>
</zeroOrMore>
</element>

@ -0,0 +1,11 @@
<!DOCTYPE doc [
<!ATTLIST e2 xml:space (default|preserve) 'preserve'>
<!ATTLIST e3 id ID #IMPLIED>
]>
<doc xmlns="http://www.ietf.org" xmlns:w3c="http://www.w3.org">
<e1>
<e2 xmlns="">
<e3 id="E3"/>
</e2>
</e1>
</doc>

@ -0,0 +1,8 @@
<!DOCTYPE doc [
<!ENTITY lt "&#38;#60;">
<!ENTITY gt "&#62;">
<!ENTITY amp "&#38;#38;">
<!ENTITY apos "&#39;">
<!ENTITY quot "&#34;">
]>
<doc/>

@ -0,0 +1,6 @@
<!DOCTYPE doc [
<!ELEMENT doc (#PCDATA)>
<!ATTLIST doc val ID #IMPLIED>
<!ATTLIST doc id ID #IMPLIED>
]>
<doc val="v1"></doc>

@ -0,0 +1 @@
<foo id="abc"/>

@ -0,0 +1,8 @@
<?xml version="1.0" standalone="yes"?>
<svg width="4in" height="3in"
xmlns = 'http://www.w3.org/Graphics/SVG/svg-19990412.dtd'>
<textflow id="TF1">
<text x="100" y="100">123</text>
<text>456</text>
</textflow>
</svg>

After

(image error) Size: 238 B

@ -0,0 +1,12 @@
<!DOCTYPE doc [
<!ATTLIST doc attrExtEnt ENTITY #IMPLIED>
<!ENTITY ent1 "Hello">
<!ENTITY ent2 SYSTEM "world.txt">
<!ENTITY entExt SYSTEM "earth.gif" NDATA gif>
<!NOTATION gif SYSTEM "viewgif.exe">
]>
<doc attrExtEnt="entExt">
&ent1;, &ent2;!
</doc>
<!-- Let world.txt contain "world" (excluding the quotes) -->

File diff suppressed because it is too large Load Diff

@ -0,0 +1,12 @@
<element name="addressBook" xmlns="http://relaxng.org/ns/structure/1.0">
<zeroOrMore>
<element name="card">
<attribute name="name">
<text/>
</attribute>
<attribute name="email">
<text/>
</attribute>
</element>
</zeroOrMore>
</element>

@ -0,0 +1,24 @@
<?xml version="1.0"?>
<RDF:RDF xmlns:p3p="http://www.w3.org/TR/1998/WD-P3P10-syntax#proposal.DTD"
xmlns:RDF="http://www.w3.org/TR/WD-rdf-syntax#">
<PROP realm="http://www.CoolCatalog.com/catalogue/"
entity="CoolCatalog" agreeID="94df1293a3e519bb"
assurance="http://www.TrustUs.org">
<USES>
<STATEMENT purp="2,3" recpnt="0" id="0"
consq="a site with clothes you'd appreciate.">
<WITH><PREFIX name="User.">
<REF name="Name.First"/>
<REF name="Bdate.Year" optional="1"/>
<REF name="Gender"/>
</PREFIX></WITH>
</STATEMENT>
</USES>
<USES>
<STATEMENT action="read&amp;write" purp="0" recpnt="0" id="1">
<REF name="User.Shipping."/>
</STATEMENT>
</USES>
<DISCLOSURE discURI="http://www.CoolCatalog.com/PrivacyPractice.html"
access="3" other="0,1"/>
</PROP></RDF:RDF>

@ -0,0 +1,2 @@
<device link="ethernet">
</device>

@ -0,0 +1,4 @@
<root>
<child type="Bar">
</child>
</root>

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<tr<74>s>l<></tr<74>s>

@ -0,0 +1,3 @@
<addressBook>
<card><name>foo</name><email>bar</email></card>
</addressBook>

@ -0,0 +1,36 @@
<head>
<meta>meta</meta>
<meta>meta</meta>
<script>script</script>
<link>link</link>
<style>link</style>
<script>script</script>
<link>link</link>
<style>link</style>
<base>base</base>
<title>foo</title>
<meta>meta</meta>
<script>script</script>
<link>link</link>
<style>link</style>
<meta>meta</meta>
<meta>meta</meta>
<meta>meta</meta>
<meta>meta</meta>
<meta>meta</meta>
<script>script</script>
<link>link</link>
<style>link</style>
<script>script</script>
<link>link</link>
<style>link</style>
<script>script</script>
<link>link</link>
<style>link</style>
<script>script</script>
<link>link</link>
<style>link</style>
<script>script</script>
<link>link</link>
<style>link</style>
</head>

@ -0,0 +1,3 @@
<doc>
<![CDATA[<greeting>Hello, world!</greeting>]]>
</doc>

@ -0,0 +1,5 @@
<element name="email" xmlns="http://relaxng.org/ns/structure/1.0">
<data type="string">
<param name="maxLength">127</param>
</data>
</element>

@ -0,0 +1,5 @@
<!DOCTYPE doc [
<!ELEMENT doc (a)* >
<!ELEMENT a EMPTY>
]>
<doc><a/></doc>

@ -0,0 +1,14 @@
<element name="ab:addressBook" xmlns:ab="http://www.example.com/addressBook"
xmlns:a="http://www.example.com/address"
xmlns="http://relaxng.org/ns/structure/1.0">
<zeroOrMore>
<element name="ab:card">
<element name="a:name">
<text/>
</element>
<element name="a:email">
<text/>
</element>
</element>
</zeroOrMore>
</element>

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://FOO" xmlns="http://FOO">
<xsd:element name="foo">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:whiteSpace value="replace"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:schema>

@ -0,0 +1,9 @@
<element name="addressBook" ns="http://www.example.com"
xmlns="http://relaxng.org/ns/structure/1.0">
<zeroOrMore>
<element name="card" ns="http://www.example.com">
<attribute name="name" ns=""/>
<attribute name="email" ns=""/>
</element>
</zeroOrMore>
</element>

@ -0,0 +1,21 @@
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://FOO"
xmlns:goo="http://GOO"
xmlns:but="http://BUT">
<xsd:element name="foo" xml:lang="hhh">
<xsd:annotation id="id1" death="is a good entertainer" but:such="is life">
I shouldn't do this here...
<xsd:appinfo id="id2" source="somewhere"
goo:fun="bag" fun="another fun-bag">
weeelll
</xsd:appinfo>
<xsd:documentation xml:lang="*" id="id3" source="anywhere"
goo:mothers="of invention" mothers="don't do your dishes">
hmmmmmm
</xsd:documentation>
...and here as well - more than ever
</xsd:annotation>
</xsd:element>
</xsd:schema>

@ -0,0 +1,986 @@
<!--
Extensible HTML version 1.0 Strict DTD
This is the same as HTML 4.0 Strict except for
changes due to the differences between XML and SGML.
Namespace = http://www.w3.org/1999/xhtml
For further information, see: http://www.w3.org/TR/xhtml1
Copyright (c) 1998-1999 W3C (MIT, INRIA, Keio),
All Rights Reserved.
This DTD module is identified by the PUBLIC and SYSTEM identifiers:
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
-->
<!--================ Character mnemonic entities =========================-->
<!ENTITY % HTMLlat1 PUBLIC
"-//W3C//ENTITIES Latin 1 for XHTML//EN"
"xhtml-lat1.ent">
%HTMLlat1;
<!ENTITY % HTMLsymbol PUBLIC
"-//W3C//ENTITIES Symbols for XHTML//EN"
"xhtml-symbol.ent">
%HTMLsymbol;
<!ENTITY % HTMLspecial PUBLIC
"-//W3C//ENTITIES Special for XHTML//EN"
"xhtml-special.ent">
%HTMLspecial;
<!--================== Imported Names ====================================-->
<!ENTITY % ContentType "CDATA">
<!-- media type, as per [RFC2045] -->
<!ENTITY % ContentTypes "CDATA">
<!-- comma-separated list of media types, as per [RFC2045] -->
<!ENTITY % Charset "CDATA">
<!-- a character encoding, as per [RFC2045] -->
<!ENTITY % Charsets "CDATA">
<!-- a space separated list of character encodings, as per [RFC2045] -->
<!ENTITY % LanguageCode "NMTOKEN">
<!-- a language code, as per [RFC1766] -->
<!ENTITY % Character "CDATA">
<!-- a single character from [ISO10646] -->
<!ENTITY % Number "CDATA">
<!-- one or more digits -->
<!ENTITY % LinkTypes "CDATA">
<!-- space-separated list of link types -->
<!ENTITY % MediaDesc "CDATA">
<!-- single or comma-separated list of media descriptors -->
<!ENTITY % URI "CDATA">
<!-- a Uniform Resource Identifier, see [RFC2396] -->
<!ENTITY % UriList "CDATA">
<!-- a space separated list of Uniform Resource Identifiers -->
<!ENTITY % Datetime "CDATA">
<!-- date and time information. ISO date format -->
<!ENTITY % Script "CDATA">
<!-- script expression -->
<!ENTITY % StyleSheet "CDATA">
<!-- style sheet data -->
<!ENTITY % Text "CDATA">
<!-- used for titles etc. -->
<!ENTITY % FrameTarget "NMTOKEN">
<!-- render in this frame -->
<!ENTITY % Length "CDATA">
<!-- nn for pixels or nn% for percentage length -->
<!ENTITY % MultiLength "CDATA">
<!-- pixel, percentage, or relative -->
<!ENTITY % MultiLengths "CDATA">
<!-- comma-separated list of MultiLength -->
<!ENTITY % Pixels "CDATA">
<!-- integer representing length in pixels -->
<!-- these are used for image maps -->
<!ENTITY % Shape "(rect|circle|poly|default)">
<!ENTITY % Coords "CDATA">
<!-- comma separated list of lengths -->
<!--=================== Generic Attributes ===============================-->
<!-- core attributes common to most elements
id document-wide unique id
class space separated list of classes
style associated style info
title advisory title/amplification
-->
<!ENTITY % coreattrs
"id ID #IMPLIED
class CDATA #IMPLIED
style %StyleSheet; #IMPLIED
title %Text; #IMPLIED"
>
<!-- internationalization attributes
lang language code (backwards compatible)
xml:lang language code (as per XML 1.0 spec)
dir direction for weak/neutral text
-->
<!ENTITY % i18n
"lang %LanguageCode; #IMPLIED
xml:lang %LanguageCode; #IMPLIED
dir (ltr|rtl) #IMPLIED"
>
<!-- attributes for common UI events
onclick a pointer button was clicked
ondblclick a pointer button was double clicked
onmousedown a pointer button was pressed down
onmouseup a pointer button was released
onmousemove a pointer was moved onto the element
onmouseout a pointer was moved away from the element
onkeypress a key was pressed and released
onkeydown a key was pressed down
onkeyup a key was released
-->
<!ENTITY % events
"onclick %Script; #IMPLIED
ondblclick %Script; #IMPLIED
onmousedown %Script; #IMPLIED
onmouseup %Script; #IMPLIED
onmouseover %Script; #IMPLIED
onmousemove %Script; #IMPLIED
onmouseout %Script; #IMPLIED
onkeypress %Script; #IMPLIED
onkeydown %Script; #IMPLIED
onkeyup %Script; #IMPLIED"
>
<!-- attributes for elements that can get the focus
accesskey accessibility key character
tabindex position in tabbing order
onfocus the element got the focus
onblur the element lost the focus
-->
<!ENTITY % focus
"accesskey %Character; #IMPLIED
tabindex %Number; #IMPLIED
onfocus %Script; #IMPLIED
onblur %Script; #IMPLIED"
>
<!ENTITY % attrs "%coreattrs; %i18n; %events;">
<!--=================== Text Elements ====================================-->
<!ENTITY % special
"br | span | bdo | object | img | map">
<!ENTITY % fontstyle "tt | i | b | big | small">
<!ENTITY % phrase "em | strong | dfn | code | q | sub | sup |
samp | kbd | var | cite | abbr | acronym">
<!ENTITY % inline.forms "input | select | textarea | label | button">
<!-- these can occur at block or inline level -->
<!ENTITY % misc "ins | del | script | noscript">
<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
<!-- %Inline; covers inline or "text-level" elements -->
<!ENTITY % Inline "(#PCDATA | %inline; | %misc;)*">
<!--================== Block level elements ==============================-->
<!ENTITY % heading "h1|h2|h3|h4|h5|h6">
<!ENTITY % lists "ul | ol | dl">
<!ENTITY % blocktext "pre | hr | blockquote | address">
<!ENTITY % block
"p | %heading; | div | %lists; | %blocktext; | fieldset | table">
<!ENTITY % Block "(%block; | form | %misc;)*">
<!-- %Flow; mixes Block and Inline and is used for list items etc. -->
<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
<!--================== Content models for exclusions =====================-->
<!-- a elements use %Inline; excluding a -->
<!ENTITY % a.content
"(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc;)*">
<!-- pre uses %Inline excluding img, object, big, small, sup or sup -->
<!ENTITY % pre.content
"(#PCDATA | a | br | span | bdo | map | tt | i | b |
%phrase; | %inline.forms;)*">
<!-- form uses %Block; excluding form -->
<!ENTITY % form.content "(%block; | %misc;)*">
<!-- button uses %Flow; but excludes a, form and form controls -->
<!ENTITY % button.content
"(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
table | %special; | %fontstyle; | %phrase; | %misc;)*">
<!--================ Document Structure ==================================-->
<!-- the namespace URI designates the document profile -->
<!ELEMENT html (head, body)>
<!ATTLIST html
%i18n;
xmlns %URI; #FIXED 'http://www.w3.org/1999/xhtml'
>
<!--================ Document Head =======================================-->
<!ENTITY % head.misc "(script|style|meta|link|object)*">
<!-- content model is %head.misc; combined with a single
title and an optional base element in any order -->
<!ELEMENT head (%head.misc;,
((title, %head.misc;, (base, %head.misc;)?) |
(base, %head.misc;, (title, %head.misc;))))>
<!ATTLIST head
%i18n;
profile %URI; #IMPLIED
>
<!-- The title element is not considered part of the flow of text.
It should be displayed, for example as the page header or
window title. Exactly one title is required per document.
-->
<!ELEMENT title (#PCDATA)>
<!ATTLIST title %i18n;>
<!-- document base URI -->
<!ELEMENT base EMPTY>
<!ATTLIST base
href %URI; #IMPLIED
>
<!-- generic metainformation -->
<!ELEMENT meta EMPTY>
<!ATTLIST meta
%i18n;
http-equiv CDATA #IMPLIED
name CDATA #IMPLIED
content CDATA #REQUIRED
scheme CDATA #IMPLIED
>
<!--
Relationship values can be used in principle:
a) for document specific toolbars/menus when used
with the link element in document head e.g.
start, contents, previous, next, index, end, help
b) to link to a separate style sheet (rel="stylesheet")
c) to make a link to a script (rel="script")
d) by stylesheets to control how collections of
html nodes are rendered into printed documents
e) to make a link to a printable version of this document
e.g. a PostScript or PDF version (rel="alternate" media="print")
-->
<!ELEMENT link EMPTY>
<!ATTLIST link
%attrs;
charset %Charset; #IMPLIED
href %URI; #IMPLIED
hreflang %LanguageCode; #IMPLIED
type %ContentType; #IMPLIED
rel %LinkTypes; #IMPLIED
rev %LinkTypes; #IMPLIED
media %MediaDesc; #IMPLIED
>
<!-- style info, which may include CDATA sections -->
<!ELEMENT style (#PCDATA)>
<!ATTLIST style
%i18n;
type %ContentType; #REQUIRED
media %MediaDesc; #IMPLIED
title %Text; #IMPLIED
xml:space (preserve) #FIXED 'preserve'
>
<!-- script statements, which may include CDATA sections -->
<!ELEMENT script (#PCDATA)>
<!ATTLIST script
charset %Charset; #IMPLIED
type %ContentType; #REQUIRED
src %URI; #IMPLIED
defer (defer) #IMPLIED
xml:space (preserve) #FIXED 'preserve'
>
<!-- alternate content container for non script-based rendering -->
<!ELEMENT noscript %Block;>
<!ATTLIST noscript
%attrs;
>
<!--=================== Document Body ====================================-->
<!ELEMENT body %Block;>
<!ATTLIST body
%attrs;
onload %Script; #IMPLIED
onunload %Script; #IMPLIED
>
<!ELEMENT div %Flow;> <!-- generic language/style container -->
<!ATTLIST div
%attrs;
>
<!--=================== Paragraphs =======================================-->
<!ELEMENT p %Inline;>
<!ATTLIST p
%attrs;
>
<!--=================== Headings =========================================-->
<!--
There are six levels of headings from h1 (the most important)
to h6 (the least important).
-->
<!ELEMENT h1 %Inline;>
<!ATTLIST h1
%attrs;
>
<!ELEMENT h2 %Inline;>
<!ATTLIST h2
%attrs;
>
<!ELEMENT h3 %Inline;>
<!ATTLIST h3
%attrs;
>
<!ELEMENT h4 %Inline;>
<!ATTLIST h4
%attrs;
>
<!ELEMENT h5 %Inline;>
<!ATTLIST h5
%attrs;
>
<!ELEMENT h6 %Inline;>
<!ATTLIST h6
%attrs;
>
<!--=================== Lists ============================================-->
<!-- Unordered list -->
<!ELEMENT ul (li)+>
<!ATTLIST ul
%attrs;
>
<!-- Ordered (numbered) list -->
<!ELEMENT ol (li)+>
<!ATTLIST ol
%attrs;
>
<!-- list item -->
<!ELEMENT li %Flow;>
<!ATTLIST li
%attrs;
>
<!-- definition lists - dt for term, dd for its definition -->
<!ELEMENT dl (dt|dd)+>
<!ATTLIST dl
%attrs;
>
<!ELEMENT dt %Inline;>
<!ATTLIST dt
%attrs;
>
<!ELEMENT dd %Flow;>
<!ATTLIST dd
%attrs;
>
<!--=================== Address ==========================================-->
<!-- information on author -->
<!ELEMENT address %Inline;>
<!ATTLIST address
%attrs;
>
<!--=================== Horizontal Rule ==================================-->
<!ELEMENT hr EMPTY>
<!ATTLIST hr
%attrs;
>
<!--=================== Preformatted Text ================================-->
<!-- content is %Inline; excluding "img|object|big|small|sub|sup" -->
<!ELEMENT pre %pre.content;>
<!ATTLIST pre
%attrs;
xml:space (preserve) #FIXED 'preserve'
>
<!--=================== Block-like Quotes ================================-->
<!ELEMENT blockquote %Block;>
<!ATTLIST blockquote
%attrs;
cite %URI; #IMPLIED
>
<!--=================== Inserted/Deleted Text ============================-->
<!--
ins/del are allowed in block and inline content, but its
inappropriate to include block content within an ins element
occurring in inline content.
-->
<!ELEMENT ins %Flow;>
<!ATTLIST ins
%attrs;
cite %URI; #IMPLIED
datetime %Datetime; #IMPLIED
>
<!ELEMENT del %Flow;>
<!ATTLIST del
%attrs;
cite %URI; #IMPLIED
datetime %Datetime; #IMPLIED
>
<!--================== The Anchor Element ================================-->
<!-- content is %Inline; except that anchors shouldn't be nested -->
<!ELEMENT a %a.content;>
<!ATTLIST a
%attrs;
charset %Charset; #IMPLIED
type %ContentType; #IMPLIED
name NMTOKEN #IMPLIED
href %URI; #IMPLIED
hreflang %LanguageCode; #IMPLIED
rel %LinkTypes; #IMPLIED
rev %LinkTypes; #IMPLIED
accesskey %Character; #IMPLIED
shape %Shape; "rect"
coords %Coords; #IMPLIED
tabindex %Number; #IMPLIED
onfocus %Script; #IMPLIED
onblur %Script; #IMPLIED
>
<!--===================== Inline Elements ================================-->
<!ELEMENT span %Inline;> <!-- generic language/style container -->
<!ATTLIST span
%attrs;
>
<!ELEMENT bdo %Inline;> <!-- I18N BiDi over-ride -->
<!ATTLIST bdo
%coreattrs;
%events;
lang %LanguageCode; #IMPLIED
xml:lang %LanguageCode; #IMPLIED
dir (ltr|rtl) #REQUIRED
>
<!ELEMENT br EMPTY> <!-- forced line break -->
<!ATTLIST br
%coreattrs;
>
<!ELEMENT em %Inline;> <!-- emphasis -->
<!ATTLIST em %attrs;>
<!ELEMENT strong %Inline;> <!-- strong emphasis -->
<!ATTLIST strong %attrs;>
<!ELEMENT dfn %Inline;> <!-- definitional -->
<!ATTLIST dfn %attrs;>
<!ELEMENT code %Inline;> <!-- program code -->
<!ATTLIST code %attrs;>
<!ELEMENT samp %Inline;> <!-- sample -->
<!ATTLIST samp %attrs;>
<!ELEMENT kbd %Inline;> <!-- something user would type -->
<!ATTLIST kbd %attrs;>
<!ELEMENT var %Inline;> <!-- variable -->
<!ATTLIST var %attrs;>
<!ELEMENT cite %Inline;> <!-- citation -->
<!ATTLIST cite %attrs;>
<!ELEMENT abbr %Inline;> <!-- abbreviation -->
<!ATTLIST abbr %attrs;>
<!ELEMENT acronym %Inline;> <!-- acronym -->
<!ATTLIST acronym %attrs;>
<!ELEMENT q %Inline;> <!-- inlined quote -->
<!ATTLIST q
%attrs;
cite %URI; #IMPLIED
>
<!ELEMENT sub %Inline;> <!-- subscript -->
<!ATTLIST sub %attrs;>
<!ELEMENT sup %Inline;> <!-- superscript -->
<!ATTLIST sup %attrs;>
<!ELEMENT tt %Inline;> <!-- fixed pitch font -->
<!ATTLIST tt %attrs;>
<!ELEMENT i %Inline;> <!-- italic font -->
<!ATTLIST i %attrs;>
<!ELEMENT b %Inline;> <!-- bold font -->
<!ATTLIST b %attrs;>
<!ELEMENT big %Inline;> <!-- bigger font -->
<!ATTLIST big %attrs;>
<!ELEMENT small %Inline;> <!-- smaller font -->
<!ATTLIST small %attrs;>
<!--==================== Object ======================================-->
<!--
object is used to embed objects as part of HTML pages.
param elements should precede other content. Parameters
can also be expressed as attribute/value pairs on the
object element itself when brevity is desired.
-->
<!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>
<!ATTLIST object
%attrs;
declare (declare) #IMPLIED
classid %URI; #IMPLIED
codebase %URI; #IMPLIED
data %URI; #IMPLIED
type %ContentType; #IMPLIED
codetype %ContentType; #IMPLIED
archive %UriList; #IMPLIED
standby %Text; #IMPLIED
height %Length; #IMPLIED
width %Length; #IMPLIED
usemap %URI; #IMPLIED
name NMTOKEN #IMPLIED
tabindex %Number; #IMPLIED
>
<!--
param is used to supply a named property value.
In XML it would seem natural to follow RDF and support an
abbreviated syntax where the param elements are replaced
by attribute value pairs on the object start tag.
-->
<!ELEMENT param EMPTY>
<!ATTLIST param
id ID #IMPLIED
name CDATA #IMPLIED
value CDATA #IMPLIED
valuetype (data|ref|object) "data"
type %ContentType; #IMPLIED
>
<!--=================== Images ===========================================-->
<!--
To avoid accessibility problems for people who aren't
able to see the image, you should provide a text
description using the alt and longdesc attributes.
In addition, avoid the use of server-side image maps.
Note that in this DTD there is no name attribute. That
is only available in the transitional and frameset DTD.
-->
<!ELEMENT img EMPTY>
<!ATTLIST img
%attrs;
src %URI; #REQUIRED
alt %Text; #REQUIRED
longdesc %URI; #IMPLIED
height %Length; #IMPLIED
width %Length; #IMPLIED
usemap %URI; #IMPLIED
ismap (ismap) #IMPLIED
>
<!-- usemap points to a map element which may be in this document
or an external document, although the latter is not widely supported -->
<!--================== Client-side image maps ============================-->
<!-- These can be placed in the same document or grouped in a
separate document although this isn't yet widely supported -->
<!ELEMENT map ((%block; | form | %misc;)+ | area+)>
<!ATTLIST map
%i18n;
%events;
id ID #REQUIRED
class CDATA #IMPLIED
style %StyleSheet; #IMPLIED
title %Text; #IMPLIED
name NMTOKEN #IMPLIED
>
<!ELEMENT area EMPTY>
<!ATTLIST area
%attrs;
shape %Shape; "rect"
coords %Coords; #IMPLIED
href %URI; #IMPLIED
nohref (nohref) #IMPLIED
alt %Text; #REQUIRED
tabindex %Number; #IMPLIED
accesskey %Character; #IMPLIED
onfocus %Script; #IMPLIED
onblur %Script; #IMPLIED
>
<!--================ Forms ===============================================-->
<!ELEMENT form %form.content;> <!-- forms shouldn't be nested -->
<!ATTLIST form
%attrs;
action %URI; #REQUIRED
method (get|post) "get"
enctype %ContentType; "application/x-www-form-urlencoded"
onsubmit %Script; #IMPLIED
onreset %Script; #IMPLIED
accept %ContentTypes; #IMPLIED
accept-charset %Charsets; #IMPLIED
>
<!--
Each label must not contain more than ONE field
Label elements shouldn't be nested.
-->
<!ELEMENT label %Inline;>
<!ATTLIST label
%attrs;
for IDREF #IMPLIED
accesskey %Character; #IMPLIED
onfocus %Script; #IMPLIED
onblur %Script; #IMPLIED
>
<!ENTITY % InputType
"(text | password | checkbox |
radio | submit | reset |
file | hidden | image | button)"
>
<!-- the name attribute is required for all but submit & reset -->
<!ELEMENT input EMPTY> <!-- form control -->
<!ATTLIST input
%attrs;
type %InputType; "text"
name CDATA #IMPLIED
value CDATA #IMPLIED
checked (checked) #IMPLIED
disabled (disabled) #IMPLIED
readonly (readonly) #IMPLIED
size CDATA #IMPLIED
maxlength %Number; #IMPLIED
src %URI; #IMPLIED
alt CDATA #IMPLIED
usemap %URI; #IMPLIED
tabindex %Number; #IMPLIED
accesskey %Character; #IMPLIED
onfocus %Script; #IMPLIED
onblur %Script; #IMPLIED
onselect %Script; #IMPLIED
onchange %Script; #IMPLIED
accept %ContentTypes; #IMPLIED
>
<!ELEMENT select (optgroup|option)+> <!-- option selector -->
<!ATTLIST select
%attrs;
name CDATA #IMPLIED
size %Number; #IMPLIED
multiple (multiple) #IMPLIED
disabled (disabled) #IMPLIED
tabindex %Number; #IMPLIED
onfocus %Script; #IMPLIED
onblur %Script; #IMPLIED
onchange %Script; #IMPLIED
>
<!ELEMENT optgroup (option)+> <!-- option group -->
<!ATTLIST optgroup
%attrs;
disabled (disabled) #IMPLIED
label %Text; #REQUIRED
>
<!ELEMENT option (#PCDATA)> <!-- selectable choice -->
<!ATTLIST option
%attrs;
selected (selected) #IMPLIED
disabled (disabled) #IMPLIED
label %Text; #IMPLIED
value CDATA #IMPLIED
>
<!ELEMENT textarea (#PCDATA)> <!-- multi-line text field -->
<!ATTLIST textarea
%attrs;
name CDATA #IMPLIED
rows %Number; #REQUIRED
cols %Number; #REQUIRED
disabled (disabled) #IMPLIED
readonly (readonly) #IMPLIED
tabindex %Number; #IMPLIED
accesskey %Character; #IMPLIED
onfocus %Script; #IMPLIED
onblur %Script; #IMPLIED
onselect %Script; #IMPLIED
onchange %Script; #IMPLIED
>
<!--
The fieldset element is used to group form fields.
Only one legend element should occur in the content
and if present should only be preceded by whitespace.
-->
<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
<!ATTLIST fieldset
%attrs;
>
<!ELEMENT legend %Inline;> <!-- fieldset label -->
<!ATTLIST legend
%attrs;
accesskey %Character; #IMPLIED
>
<!--
Content is %Flow; excluding a, form and form controls
-->
<!ELEMENT button %button.content;> <!-- push button -->
<!ATTLIST button
%attrs;
name CDATA #IMPLIED
value CDATA #IMPLIED
type (button|submit|reset) "submit"
disabled (disabled) #IMPLIED
tabindex %Number; #IMPLIED
accesskey %Character; #IMPLIED
onfocus %Script; #IMPLIED
onblur %Script; #IMPLIED
>
<!--======================= Tables =======================================-->
<!-- Derived from IETF HTML table standard, see [RFC1942] -->
<!--
The border attribute sets the thickness of the frame around the
table. The default units are screen pixels.
The frame attribute specifies which parts of the frame around
the table should be rendered. The values are not the same as
CALS to avoid a name clash with the valign attribute.
-->
<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
<!--
The rules attribute defines which rules to draw between cells:
If rules is absent then assume:
"none" if border is absent or border="0" otherwise "all"
-->
<!ENTITY % TRules "(none | groups | rows | cols | all)">
<!-- horizontal placement of table relative to document -->
<!ENTITY % TAlign "(left|center|right)">
<!-- horizontal alignment attributes for cell contents
char alignment char, e.g. char=':'
charoff offset for alignment char
-->
<!ENTITY % cellhalign
"align (left|center|right|justify|char) #IMPLIED
char %Character; #IMPLIED
charoff %Length; #IMPLIED"
>
<!-- vertical alignment attributes for cell contents -->
<!ENTITY % cellvalign
"valign (top|middle|bottom|baseline) #IMPLIED"
>
<!ELEMENT table
(caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
<!ELEMENT caption %Inline;>
<!ELEMENT thead (tr)+>
<!ELEMENT tfoot (tr)+>
<!ELEMENT tbody (tr)+>
<!ELEMENT colgroup (col)*>
<!ELEMENT col EMPTY>
<!ELEMENT tr (th|td)+>
<!ELEMENT th %Flow;>
<!ELEMENT td %Flow;>
<!ATTLIST table
%attrs;
summary %Text; #IMPLIED
width %Length; #IMPLIED
border %Pixels; #IMPLIED
frame %TFrame; #IMPLIED
rules %TRules; #IMPLIED
cellspacing %Length; #IMPLIED
cellpadding %Length; #IMPLIED
>
<!ENTITY % CAlign "(top|bottom|left|right)">
<!ATTLIST caption
%attrs;
>
<!--
colgroup groups a set of col elements. It allows you to group
several semantically related columns together.
-->
<!ATTLIST colgroup
%attrs;
span %Number; "1"
width %MultiLength; #IMPLIED
%cellhalign;
%cellvalign;
>
<!--
col elements define the alignment properties for cells in
one or more columns.
The width attribute specifies the width of the columns, e.g.
width=64 width in screen pixels
width=0.5* relative width of 0.5
The span attribute causes the attributes of one
col element to apply to more than one column.
-->
<!ATTLIST col
%attrs;
span %Number; "1"
width %MultiLength; #IMPLIED
%cellhalign;
%cellvalign;
>
<!--
Use thead to duplicate headers when breaking table
across page boundaries, or for static headers when
tbody sections are rendered in scrolling panel.
Use tfoot to duplicate footers when breaking table
across page boundaries, or for static footers when
tbody sections are rendered in scrolling panel.
Use multiple tbody sections when rules are needed
between groups of table rows.
-->
<!ATTLIST thead
%attrs;
%cellhalign;
%cellvalign;
>
<!ATTLIST tfoot
%attrs;
%cellhalign;
%cellvalign;
>
<!ATTLIST tbody
%attrs;
%cellhalign;
%cellvalign;
>
<!ATTLIST tr
%attrs;
%cellhalign;
%cellvalign;
>
<!-- Scope is simpler than headers attribute for common tables -->
<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
<!-- th is for headers, td for data and for cells acting as both -->
<!ATTLIST th
%attrs;
abbr %Text; #IMPLIED
axis CDATA #IMPLIED
headers IDREFS #IMPLIED
scope %Scope; #IMPLIED
rowspan %Number; "1"
colspan %Number; "1"
%cellhalign;
%cellvalign;
>
<!ATTLIST td
%attrs;
abbr %Text; #IMPLIED
axis CDATA #IMPLIED
headers IDREFS #IMPLIED
scope %Scope; #IMPLIED
rowspan %Number; "1"
colspan %Number; "1"
%cellhalign;
%cellvalign;
>

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema xmlns:foo="http://FOO"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
targetNamespace="http://FOO">
<xsd:element name="foo">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="elem.lax" type="foo:type.lax"/>
<xsd:element name="elem.strict" type="foo:type.strict"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:attribute name="bar" type="xsd:language" />
<xsd:complexType name="type.lax">
<xsd:anyAttribute namespace="##any" processContents="lax"/>
</xsd:complexType>
<xsd:complexType name="type.strict">
<xsd:anyAttribute namespace="##any" processContents="strict"/>
</xsd:complexType>
</xsd:schema>

@ -0,0 +1,14 @@
=>a|b(d|e(g|h|i)|f)|c
a
c
bd
bf
beg
beh
bei
b
be
bi
f
ab
ac

@ -0,0 +1,16 @@
<?xml version="1.0"?>
<!DOCTYPE a [
<!ELEMENT a (#PCDATA|b|s:b)*>
<!ATTLIST a xmlns:s CDATA #IMPLIED>
<!ELEMENT b EMPTY>
<!ATTLIST b xmlns:s CDATA #IMPLIED>
<!ELEMENT s:b EMPTY>
<!ATTLIST s:b xmlns:s CDATA #IMPLIED>
]>
<a xmlns:s="http://some.test.ns/a">
Some text.
<b/>
Some text.
<s:b/>
Some text.
</a>

@ -0,0 +1,7 @@
<AAA>
<CCC id="Q2"/>
<CCC/>
<BBB>
<CCC id="Q1"/>
</BBB>
</AAA>

@ -0,0 +1 @@
<elem1 attr1="0"/>

@ -0,0 +1,3 @@
<AAA>
<CCC/>
</AAA>

@ -0,0 +1,17 @@
<element name="addressBook" xmlns="http://relaxng.org/ns/structure/1.0">
<zeroOrMore>
<element name="card">
<element name="name">
<text/>
</element>
<element name="email">
<text/>
</element>
<optional>
<element name="note">
<text/>
</element>
</optional>
</element>
</zeroOrMore>
</element>

@ -0,0 +1,7 @@
<?xml version="1.0"?>
<!DOCTYPE a SYSTEM "dtds/a.dtd" [
<!ELEMENT a (#PCDATA | b | c)*>
<!ELEMENT b (#PCDATA)>
<!ELEMENT c (#PCDATA)>
]>
<a> violates [ VC: Unique Element Type Declaration ] </a>

@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Header: /home/cvsroot/w3c-xml-schema/user/examples/first-user-dt.xsd,v 1.1 2001/11/01 12:27:47 vdv Exp $ -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="string255">
<xs:restriction base="xs:token">
<xs:maxLength value="255"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="string32">
<xs:restriction base="xs:token">
<xs:maxLength value="32"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="isbn">
<xs:restriction base="xs:unsignedLong">
<xs:totalDigits value="10"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="supportedLanguages">
<xs:restriction base="xs:language">
<xs:enumeration value="en"/>
<xs:enumeration value="es"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="name" type="string32"/>
<xs:element name="qualification" type="string255"/>
<xs:element name="born" type="xs:date"/>
<xs:element name="dead" type="xs:date"/>
<xs:element name="isbn" type="isbn"/>
<xs:attribute name="id" type="xs:ID"/>
<xs:attribute name="available" type="xs:boolean"/>
<xs:attribute name="lang" type="supportedLanguages"/>
<xs:element name="title">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="string255">
<xs:attribute ref="lang"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="library">
<xs:complexType>
<xs:sequence>
<xs:element ref="book" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="author">
<xs:complexType>
<xs:sequence>
<xs:element ref="name"/>
<xs:element ref="born"/>
<xs:element ref="dead" minOccurs="0"/>
</xs:sequence>
<xs:attribute ref="id"/>
</xs:complexType>
</xs:element>
<xs:element name="book">
<xs:complexType>
<xs:sequence>
<xs:element ref="isbn"/>
<xs:element ref="title"/>
<xs:element ref="author" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="character" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="id"/>
<xs:attribute ref="available"/>
</xs:complexType>
</xs:element>
<xs:element name="character">
<xs:complexType>
<xs:sequence>
<xs:element ref="name"/>
<xs:element ref="born"/>
<xs:element ref="qualification"/>
</xs:sequence>
<xs:attribute ref="id"/>
</xs:complexType>
</xs:element>
</xs:schema>

@ -0,0 +1,3 @@
<AAA>
<BBB/>
</AAA>

@ -0,0 +1 @@
<!ELEMENT c EMPTY>

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<foo
xmlns="http://FOO"
xmlns:foo="http://FOO"
xmlns:bar="http://BAR"
xmlns:import="http://IMPORT"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://FOO file:///c:/dev/libxml2/patches/2004-05-17/anyAttr-errors1_0.xsd">
<!-- not allowed: foo:barC -->
<basic.B foo:barC="o"/>
<!-- not allowed: foo:barC -->
<basic.C foo:barC="o"/>
<!-- not allowed: barA, bar:barB -->
<basic.D barA="o" bar:barB="o"/>
<!-- not allowed: bar:barB -->
<inters.2_1 barA="o" bar:barB="o" foo:barC="o"/>
<!-- not allowed: barA, foo:barC -->
<inters.3_1 barA="o" bar:barB="o" foo:barC="o"/>
<!-- not allowed: bar:barB -->
<inters.4_1 barA="o" bar:barB="o" foo:barC="o"/>
<!-- not allowed: barA, foo:barC -->
<inters.6_1 barA="o" bar:barB="o" foo:barC="o"/>
</foo>

@ -0,0 +1,3 @@
<AAA>
<BBB bbb="C"/>
</AAA>

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
http://www.w3.org/TR/xmldsig2ed-tests/#c14n11xmlbase-prop-1
Check that implementations of [XML-C14N1.1] work properly when the
xml:base origin appears in the output document subset and also children
with xml:base, which do not require further processing, are also present.
-->
<ietf:c14n11XmlBaseDoc1 xmlns:ietf="http://www.ietf.org" xmlns:w3c="http://www.w3.org" xml:base="http://xmlbase.example.org/xmlbase0/">
<ietf:e1 xml:base="/xmlbase1/">
<ietf:e11 xml:base="/xmlbase11/">
<ietf:e111 xml:base="/xmlbase111/"/>
</ietf:e11>
<ietf:e12 at="2">
<ietf:e121 xml:base="/xmlbase121/"/>
</ietf:e12>
</ietf:e1>
<ietf:e2>
<ietf:e21 xml:base="/xmlbase21/"/>
</ietf:e2>
<ietf:e3>
<ietf:e31 at="3"/>
</ietf:e3>
</ietf:c14n11XmlBaseDoc1>

@ -0,0 +1,9 @@
<schema xmlns="http://www.ascc.net/xml/schematron" >
<pattern name="Test attribute">
<rule context="CCC">
<report test="parent::BBB and not(@id)">Attribute id is missing</report>
<report test="not(parent::BBB) and @id">Attribute id is used in wrong context</report>
</rule>
</pattern>
</schema>

@ -0,0 +1,25 @@
<?xml version="1.0"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:foo="http://FOO"
targetNamespace="http://FOO" version="0.1"
elementFormDefault="qualified">
<complexType name="fooType">
<choice>
<sequence>
<element name="PGPKeyID" type="base64Binary"/>
<element name="PGPKeyPacket" type="base64Binary" minOccurs="0"/>
<any namespace="##other" processContents="lax" minOccurs="0"
maxOccurs="unbounded"/>
</sequence>
<sequence>
<element name="PGPKeyPacket" type="base64Binary"/>
<any namespace="##other" processContents="lax" minOccurs="0"
maxOccurs="unbounded"/>
</sequence>
</choice>
</complexType>
<element name="foo" type="foo:fooType"/>
</schema>

@ -0,0 +1,14 @@
<!DOCTYPE doc [
<!ELEMENT doc (src | dest)*>
<!ELEMENT src EMPTY>
<!ELEMENT dest EMPTY>
<!ATTLIST src ref IDREF #IMPLIED>
<!ATTLIST dest id ID #IMPLIED>
<!ENTITY dest "<dest id='foo'/>">
]>
<doc>
<src ref="foo"/>
&dest;
<src ref="foo"/>
</doc>

@ -0,0 +1,2 @@
<ex1:test xmlns:ex1="http://example.com/1/"
ex1:foo="bar"/>

@ -0,0 +1,30 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0016)http://intranet/ -->
<!-- BEGIN Naviscope Javascript --><HTML><HEAD><TITLE>Welcome to Copernic.com</TITLE>
<SCRIPT language=javascript>
NS_ActualOpen=window.open;
function NS_NullWindow(){this.window;}
function NS_NewOpen(url,nam,atr){return(new NS_NullWindow());}
window.open=NS_NewOpen;
</SCRIPT>
<!-- END Naviscope Javascript --><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!-- saved from url=(0027)http://www.agents-tech.com/ -->
<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
<META
content="Copernic.com Inc. develops innovative agent technology solutions to efficiently access and manage the overwhelming quantity of information available on the Internet and intranets."
name=DESCRIPTION>
<META
content=agent,technology,intranet,extranet,management,filtering,ranking,solution,service,intelligent,intelligence,client,server,architecture,developer,development,information,telecommunication,announcement,press,product,profile,contact,multi-agent,meta-search,metasearch,multi-thread,mobile,wireless,shopping,robot,PCS,Copernic,engine,toolkit,CDK,EDK
name=KEYWORDS>
<META content="MSHTML 5.00.3103.1000" name=GENERATOR></HEAD><FRAMESET
border=false cols=172,* frameBorder=0 frameSpacing=0><FRAME marginHeight=0
marginWidth=0 name=left noResize scrolling=no src="doc2_files/side.htm"
target="rtop"><FRAMESET rows=43,*><FRAME marginHeight=0 marginWidth=0 name=rtop
noResize scrolling=no src="doc2_files/top.htm" target="rbottom"><FRAME
name=rbottom noResize src="doc2_files/contents.htm"
target="_top"></FRAMESET><NOFRAMES>
<body bgcolor="#FFFFFF" text="#000000" link="#000080" vlink="#000080" alink="#000080"
topmargin="0" leftmargin="0" marginheight="0" marginwidth="0">
<p>This page uses frames, but your browser doesn't support them.</p>
</body>
</NOFRAMES></FRAMESET></HTML>

@ -0,0 +1,58 @@
<?xml version = "1.0" standalone = "yes"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG April 1999//EN"
"http://www.w3.org/Graphics/SVG/svg-19990412.dtd">
<svg width = "268px" height="207px">
<g style = "stroke: #000000" >
<path d = " M 29 28 "/>
<path d = " L 19 74 "/>
</g>
<g style = "stroke: #800040" >
<polyline verts = " 32,100 72,50 90,82 73,16 120,64 152,9 177,107"/>
</g>
<g style = "stroke: #000000" >
</g>
<g style = "stroke: #0000ff" >
<rect x = "30" y = "101" width = "51" height = "33"/>
</g>
<g style = "fill: #0000ff" >
<ellipse cx = "182" cy = "127" major = "37" minor = "31" angle = "90"/>
</g>
<g style = "fill: #ff0000" >
<polyline verts = " 78,180 76,151 131,149 136,182 135,182 134,183 127,185 117,186 109,192 104,194 98,199 96,200 95,201 94,202 92,202 85,202 70,200 54,199 47,198 46,197 45,197 37,195 26,193 17,187 9,181 8,181 7,176 6,175 6,173 6,172 6,170 8,164 8,163 8,162 9,162 10,162 11,162 13,162 20,162 26,162 27,162 28,162 30,162 30,163 31,163 32,164 34,166 35,166 36,167 36,168 37,169 38,169 39,169 41,170 43,170 45,170 47,170 49,170 50,168 50,161 50,160 50,159 47,162 78,180"/>
<g>
<desc> Java Font definition:Dialog 0</desc>
</g>
<g>
<desc> Java Font definition:Helvetica 0</desc>
</g>
</g>
<g style = "stroke: #000000" >
<text x = "188" y = "36" >this is text</text>
</g>
<g style = "stroke: #000000" >
<g>
<desc> Java Font definition:Dialog 0</desc>
</g>
<g>
<desc> Java Font definition:Helvetica 700</desc>
</g>
</g>
<g style = "stroke: #008080" >
<text x = "176" y = "85" >sadfsadfsad</text>
</g>
<g style = "stroke: #000000" >
</g>
<g style = "fill: #800040" >
<ellipse cx = "208" cy = "180" major = "45" minor = "31" angle = "0"/>
</g>
<g style = "stroke: #000000" >
</g>
<g style = "fill: #ffffff" >
<g>
<desc> Java Font definition:Dialog 700</desc>
</g>
<g>
<desc> Java Font definition:Dialog 700</desc>
</g>
</g></svg>

After

(image error) Size: 1.9 KiB

@ -0,0 +1,18 @@
<?xml version="1.0"?>
<!--
Error reported:
any-2_1.xml:17: element bar: Schemas validity error :
Element '{urn:test:foo}bar': This element is not expected.
Expected is one of ( {##other:urn:test:foo}* ).
Tiny glitch: the error report mechanism fails to recognize
that there is only one element of choice. It should report:
"Excepted is ( {##other:urn:test:foo}* ).".
-->
<foo:foo xmlns:foo="urn:test:foo" xmlns:moo="urn:test:moo"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:test:foo any-2_1.xsd">
<foo:bar/>
<foo:bar/>
</foo:foo>

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
<start>
<element>
<choice>
<choice>
<name>a</name>
<name>b</name>
</choice>
<name>c</name>
</choice>
<empty/>
</element>
</start>
</grammar>

@ -0,0 +1,23 @@
<schema xmlns="http://www.ascc.net/xml/schematron" >
<pattern name="Print both cases">
<rule context="AAA">
<assert test="BBB">BBB element is missing.</assert>
<report test="BBB">BBB element is present.</report>
<assert test="@name">AAA misses attribute name.</assert>
<report test="@name">AAA contains attribute name.</report>
</rule>
</pattern>
<pattern name="Print positive result only">
<rule context="AAA">
<report test="BBB">BBB element is present.</report>
<report test="@name">AAA contains attribute name.</report>
</rule>
</pattern>
<pattern name="Print negative result only">
<rule context="AAA">
<assert test="BBB">BBB element is missing.</assert>
<assert test="@name">AAA misses attribute name.</assert>
</rule>
</pattern>
</schema>

@ -0,0 +1,16 @@
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="PurchaseOrderType">
<xsd:sequence>
<xsd:all>
<xsd:element name="shipTo" type="USAddress"/>
<xsd:element name="billTo" type="USAddress"/>
<xsd:element name="items" type="Items"/>
</xsd:all>
<xsd:sequence>
<xsd:element ref="comment" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:sequence>
<xsd:attribute name="orderDate" type="xsd:date"/>
</xsd:complexType>
</xsd:schema>

@ -0,0 +1,10 @@
<!--
http://www.w3.org/TR/xmldsig2ed-tests/#c14n11xmlbase-prop-7
Check that implementations of [XML-C14N1.1] do not pass the xml:base
to another element when it is not necessary.
-->
<XPath xmlns:ietf="http://www.ietf.org" >
(//. | //@* | //namespace::*)
[ancestor-or-self::ietf:c14n11XmlBaseDoc1 and not(ancestor-or-self::ietf:e1 or ancestor-or-self::ietf:e2)]
</XPath>

@ -0,0 +1,3 @@
<AAA>
<BBB aaa="A" bbb="B"/>
</AAA>

@ -0,0 +1,10 @@
<!--
http://www.w3.org/TR/xmldsig2ed-tests/#XMLID
Check that implementations of [XML-C14N1.1] handle xml:id attributes
as defined in [XML-C14N1.1]
-->
<XPath xmlns:ietf="http://www.ietf.org" >
(//. | //@* | //namespace::*)
[ancestor-or-self::ietf:e1]
</XPath>

@ -0,0 +1,11 @@
<?xml version="1.0"?>
<!-- This one tests the document access strategy for <import> -->
<foo:foo
xmlns:foo="http://FOO"
xmlns:bar="http://BAR"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://FOO import1_0.xsd">
<foo:bar/>
<bar:bar.A/>
<bar:bar.B/>
</foo:foo>

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<foo:Root xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xmlns="http://example.org/" xml:lang="en-ie">
<bar:Something>
<foo:Something>
<bar:Something>
<foo:Something>
<baz:Something />
</foo:Something>
</bar:Something>
</foo:Something>
</bar:Something>
</foo:Root>

@ -0,0 +1,3 @@
<addressBook>
<card name="foo" email="bar"/>
</addressBook>

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.tempuri.org/MainSchema"
xmlns:tns="http://www.tempuri.org/MainSchema"
xmlns:ns="http://www.tempuri.org/ImportedSchema"
elementFormDefault="qualified" >
<xs:import namespace="http://www.tempuri.org/ImportedSchema" schemaLocation="./import-455953.xsd" />
<xs:complexType name="MyMainType">
<xs:sequence>
<xs:element name="MainA">
<xs:complexType>
<xs:attribute name="MainID" type="xs:int"/>
</xs:complexType>
</xs:element>
<xs:element ref="ns:AnotherElement" />
</xs:sequence>
</xs:complexType>
<xs:element name="MainElement" type="tns:MyMainType">
<xs:key name="MainKey" >
<xs:selector xpath="tns:MainA" />
<xs:field xpath="@MainID" />
</xs:key>
</xs:element>
</xs:schema>

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<foo xmlns="http://FOO">lalala</foo>

@ -0,0 +1,7 @@
<?xml version="1.0"?>
<foo:foo xmlns:foo="http://FOO"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://FOO seq-dubl-elem1_0.xsd">
<foo:PGPKeyID>PEhlbGxvIHdvcmxkIT4=</foo:PGPKeyID>
<foo:PGPKeyPacket>PEhlbGxvIHdvcmxkIT4=</foo:PGPKeyPacket>
</foo:foo>

@ -0,0 +1,24 @@
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:foo="http://FOO"
targetNamespace="http://BAR"
elementFormDefault="qualified">
<xsd:import namespace="http://FOO" schemaLocation="import2_0.imp"/>
<xsd:simpleType name="fooType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="10"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="bar">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="foo:foo" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

@ -0,0 +1,6 @@
<!DOCTYPE doc [
<!ELEMENT doc (#PCDATA)>
<!ATTLIST doc a1 CDATA "v1">
<!ATTLIST doc a1 CDATA "z1">
]>
<doc></doc>

@ -0,0 +1,18 @@
<!DOCTYPE doc [<!ATTLIST e9 attr CDATA "default">]>
<doc>
<e1 />
<e2 ></e2>
<e3 name = "elem3" id="elem3" />
<e4 name="elem4" id="elem4" ></e4>
<e5 a:attr="out" b:attr="sorted" attr2="all" attr="I'm"
xmlns:b="http://www.ietf.org"
xmlns:a="http://www.w3.org"
xmlns="http://www.uvic.ca"/>
<e6 xmlns="" xmlns:a="http://www.w3.org">
<e7 xmlns="http://www.ietf.org">
<e8 xmlns="" xmlns:a="http://www.w3.org">
<e9 xmlns="" xmlns:a="http://www.ietf.org"/>
</e8>
</e7>
</e6>
</doc>

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
http://www.w3.org/TR/xmldsig2ed-tests/#c14n11xmlbase-prop-3
Check that implementations of [XML-C14N1.1] properly build the xml:base
if one of intermediate the levels (ietf:e1) are absent from the document
subset.
-->
<ietf:c14n11XmlBaseDoc1 xmlns:ietf="http://www.ietf.org" xmlns:w3c="http://www.w3.org" xml:base="http://xmlbase.example.org/xmlbase0/">
<ietf:e1 xml:base="/xmlbase1/">
<ietf:e11 xml:base="/xmlbase11/">
<ietf:e111 xml:base="/xmlbase111/"/>
</ietf:e11>
<ietf:e12 at="2">
<ietf:e121 xml:base="/xmlbase121/"/>
</ietf:e12>
</ietf:e1>
<ietf:e2>
<ietf:e21 xml:base="/xmlbase21/"/>
</ietf:e2>
<ietf:e3>
<ietf:e31 at="3"/>
</ietf:e3>
</ietf:c14n11XmlBaseDoc1>

@ -0,0 +1,9 @@
<!DOCTYPE doc [
<!ENTITY test1 "test 1">
<!ENTITY test2 "test 2">
]>
<doc>
<Content>Reten&#231;&#227;o</Content>
<Content>&lt;&gt;</Content>
<Content>&test1;&test2;</Content>
</doc>

@ -0,0 +1,3 @@
<AAA>
aaa
</AAA>

@ -0,0 +1 @@
<foo xml:id="bar"/>

@ -0,0 +1,18 @@
<?xml version="1.0"?>
<D:multistatus xmlns:D="http://www.ietf.org/standards/dav/" xmlns:R="http://www.foo.bar/boxschema/">
<D:response>
<D:href>http://www.foo.bar/container/</D:href>
<D:prop>
<R:bigbox/>
<R:author/>
</D:prop>
<D:status>HTTP 1.1 200 OK</D:status>
</D:response>
<D:response>
<D:href>http://www.foo.bar/container/index.html</D:href>
<D:prop>
<R:bigbox/>
</D:prop>
<D:status>HTTP 1.1 200 OK</D:status>
</D:response>
</D:multistatus>

@ -0,0 +1,25 @@
<?xml version="1.0"?>
<D:multistatus xmlns:D="http://www.ietf.org/standards/dav/" xmlns:R="http://www.foo.bar/boxschema">
<D:response>
<D:prop>
<R:bigbox>
<R:BoxType>Box type A</R:BoxType>
</R:bigbox>
<R:author>
<R:Name>J.J. Dingleheimerschmidt</R:Name>
</R:author>
</D:prop>
<D:status>HTTP/1.1 200 OK</D:status>
</D:response>
<D:response>
<D:prop>
<R:DingALing/>
<R:Random/>
</D:prop>
<D:status>HTTP/1.1 403 Forbidden</D:status>
<D:responsedescription> The user does not have access to the DingALing property.
</D:responsedescription>
</D:response>
<D:responsedescription> There has been an access violation error.
</D:responsedescription>
</D:multistatus>

@ -0,0 +1,2 @@
<element name="x" xmlns="http://relaxng.org/ns/structure/1.0"/>

@ -0,0 +1,20 @@
<?xml version="1.0"?>
<xsd_hexBinary>
<hex>00</hex>
<hex>0123456789ABCDEF</hex>
<hex>abcdef0123456789</hex>
<hex>0123456789abcdef</hex>
<hex>0123456789ABCDEF</hex>
<hex>0123456789abcdef0123456789ABCDEF</hex>
<hex>0123456789abcdef0123456789ABCDEF0123456789abcdef0123456789ABCDEF0123456789abcdef0123456789ABCDEF0123456789abcdef0123456789ABCDEF0123456789abcdef0123456789ABCDEF</hex>
<hex>01234567899876543210</hex>
<hex>00112233445566778899aAbBcCdDeEfF</hex>
<hex>A0B1C2D3E4F5</hex>
<!-- minLength and maxLength -->
<hex2>00</hex2>
<hex2>0000000000000000</hex2>
<hex2>1122334455667788</hex2>
<!-- length -->
<hex3>abcd</hex3>
<hex3>0ed0</hex3>
</xsd_hexBinary>

@ -0,0 +1,5 @@
<a>
<b>
<c d="attr">text</c>
</b>
</a>

Some files were not shown because too many files have changed in this diff Show More